{"attribution":"This Pulumi package is based on the [`opentelekomcloud` Terraform Provider](https://github.com/opentelekomcloud/terraform-provider-opentelekomcloud).","config":{"variables":{"accessKey":{"description":"The access key for API operations. You can retrieve this\nfrom the 'My Credential' section of the console.","type":"string"},"agencyDomainName":{"description":"The name of domain who created the agency (Identity v3).","type":"string"},"agencyName":{"description":"The name of agency","type":"string"},"allowReauth":{"type":"boolean"},"authUrl":{"description":"The Identity authentication URL.","type":"string"},"backoffRetryTimeout":{"description":"Timeout in seconds for backoff retry","type":"number"},"cacertFile":{"description":"A Custom CA certificate.","type":"string"},"cert":{"description":"A client certificate to authenticate with.","type":"string"},"cloud":{"description":"An entry in a `clouds.yaml` file to use.","type":"string"},"delegatedProject":{"description":"The name of delegated project (Identity v3).","type":"string"},"domainId":{"description":"The ID of the Domain to scope to (Identity v3).","type":"string"},"domainName":{"description":"The name of the Domain to scope to (Identity v3).","type":"string"},"endpointType":{"type":"string"},"enterpriseProjectId":{"description":"enterprise project id","type":"string"},"insecure":{"description":"Trust self-signed certificates.","type":"boolean"},"key":{"description":"A client private key to authenticate with.","type":"string"},"maxBackoffRetries":{"description":"How many times HTTP request should be retried when rate limit reached","type":"number"},"maxRetries":{"description":"How many times HTTP connection should be retried until giving up.","type":"number"},"passcode":{"description":"One-time MFA passcode","type":"string"},"password":{"description":"Password to login with.","secret":true,"type":"string"},"region":{"description":"The OpenTelekomCloud region to connect to.","type":"string"},"secretKey":{"description":"The secret key for API operations. You can retrieve this\nfrom the 'My Credential' section of the console.","secret":true,"type":"string"},"securityToken":{"description":"Security token to use for OBS federated authentication.","secret":true,"type":"string"},"swauth":{"description":"Use Swift's authentication system instead of Keystone. Only used for\ninteraction with Swift.","type":"boolean"},"tenantId":{"description":"The ID of the Tenant (Identity v2) or Project (Identity v3)\nto login with.","type":"string"},"tenantName":{"description":"The name of the Tenant (Identity v2) or Project (Identity v3)\nto login with.","type":"string"},"token":{"description":"Authentication token to use as an alternative to username/password.","secret":true,"type":"string"},"userId":{"description":"User ID to login with.","type":"string"},"userName":{"description":"Username to login with.","type":"string"}}},"description":"A Pulumi provider dynamically bridged from opentelekomcloud.","functions":{"opentelekomcloud:index/getAntiddosV1:getAntiddosV1":{"description":"Up-to-date reference of API arguments for EIP status you can get at\n[documentation portal](https://docs.otc.t-systems.com/anti-ddos/api-ref/api/anti-ddos_apis/querying_the_list_of_defense_statuses_of_eips.html#antiddos-02-0023)\n\nUse this data source to query the status of EIP, regardless whether an EIP has been bound to an Elastic Cloud Server (ECS) or not.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst id = config.requireObject<any>(\"id\");\nconst antiddos = opentelekomcloud.getAntiddosV1({\n    floatingIpId: eipId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nid = config.require_object(\"id\")\nantiddos = opentelekomcloud.get_antiddos_v1(floating_ip_id=eip_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var id = config.RequireObject<dynamic>(\"id\");\n    var antiddos = Opentelekomcloud.GetAntiddosV1.Invoke(new()\n    {\n        FloatingIpId = eipId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tid := cfg.RequireObject(\"id\")\n\t\t_, err := opentelekomcloud.LookupAntiddosV1(ctx, &opentelekomcloud.LookupAntiddosV1Args{\n\t\t\tFloatingIpId: pulumi.StringRef(eipId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetAntiddosV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var id = config.get(\"id\");\n        final var antiddos = OpentelekomcloudFunctions.getAntiddosV1(GetAntiddosV1Args.builder()\n            .floatingIpId(eipId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  id:\n    type: dynamic\nvariables:\n  antiddos:\n    fn::invoke:\n      function: opentelekomcloud:getAntiddosV1\n      arguments:\n        floatingIpId: ${eipId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getAntiddosV1.\n","properties":{"floatingIpAddress":{"description":"The Elastic IP address.\n","type":"string"},"floatingIpId":{"description":"The Elastic IP ID.\n","type":"string"},"id":{"type":"string"},"region":{"type":"string"},"status":{"description":"The defense status.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAntiddosV1.\n","properties":{"bpsAttacks":{"description":"The Attack traffic in (bit/s).\n","items":{"type":"number"},"type":"array"},"bpsIns":{"description":"The inbound traffic in (bit/s).\n","items":{"type":"number"},"type":"array"},"endTimes":{"description":"The end time of cleaning and blackhole event.\n","items":{"type":"number"},"type":"array"},"floatingIpAddress":{"type":"string"},"floatingIpId":{"type":"string"},"id":{"type":"string"},"networkType":{"description":"The EIP type.\n","type":"string"},"periodStarts":{"description":"The Start time.\n","items":{"type":"number"},"type":"array"},"ppsAttacks":{"description":"The attack packet rate (number of packets per second).\n","items":{"type":"number"},"type":"array"},"ppsIns":{"description":"The inbound packet rate (number of packets per second).\n","items":{"type":"number"},"type":"array"},"region":{"type":"string"},"startTimes":{"description":"The start time of cleaning and blackhole event.\n","items":{"type":"number"},"type":"array"},"status":{"type":"string"},"totalBps":{"description":"The total traffic.\n","items":{"type":"number"},"type":"array"},"totalPps":{"description":"The total packet rate.\n","items":{"type":"number"},"type":"array"},"trafficCleaningStatuses":{"description":"The traffic cleaning status.\n","items":{"type":"number"},"type":"array"},"triggerBps":{"description":"The traffic at the triggering point.\n","items":{"type":"number"},"type":"array"},"triggerHttpPps":{"description":"The HTTP request rate at the triggering point.\n","items":{"type":"number"},"type":"array"},"triggerPps":{"description":"The packet rate at the triggering point.\n","items":{"type":"number"},"type":"array"}},"required":["bpsAttacks","bpsIns","endTimes","floatingIpAddress","floatingIpId","id","networkType","periodStarts","ppsAttacks","ppsIns","region","startTimes","status","totalBps","totalPps","trafficCleaningStatuses","triggerBps","triggerHttpPps","triggerPps"],"type":"object"}},"opentelekomcloud:index/getApigwApiHistoryV2:getApigwApiHistoryV2":{"description":"Up-to-date reference of API arguments for APIGW API history you can get at\n[documentation portal](https://docs.otc.t-systems.com/api-gateway/api-ref/dedicated_gateway_apis_v2/api_management/querying_historical_versions_of_an_api.html)\n\nThis API is used to query the historical versions of an API within OpenTelekomCloud.\nAPIGW retains a maximum of 10 historical versions for each API in an environment.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst gatewayId = config.requireObject<any>(\"gatewayId\");\nconst environmentId = config.requireObject<any>(\"environmentId\");\nconst apiId = config.requireObject<any>(\"apiId\");\nconst pub = new opentelekomcloud.ApigwApiPublishmentV2(\"pub\", {\n    gatewayId: instanceId,\n    environmentId: environmentId,\n    apiId: apiId,\n});\nconst hist = opentelekomcloud.getApigwApiHistoryV2({\n    gatewayId: gateway.id,\n    environmentId: env.id,\n    apiId: api.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ngateway_id = config.require_object(\"gatewayId\")\nenvironment_id = config.require_object(\"environmentId\")\napi_id = config.require_object(\"apiId\")\npub = opentelekomcloud.ApigwApiPublishmentV2(\"pub\",\n    gateway_id=instance_id,\n    environment_id=environment_id,\n    api_id=api_id)\nhist = opentelekomcloud.get_apigw_api_history_v2(gateway_id=gateway[\"id\"],\n    environment_id=env[\"id\"],\n    api_id=api[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var gatewayId = config.RequireObject<dynamic>(\"gatewayId\");\n    var environmentId = config.RequireObject<dynamic>(\"environmentId\");\n    var apiId = config.RequireObject<dynamic>(\"apiId\");\n    var pub = new Opentelekomcloud.ApigwApiPublishmentV2(\"pub\", new()\n    {\n        GatewayId = instanceId,\n        EnvironmentId = environmentId,\n        ApiId = apiId,\n    });\n\n    var hist = Opentelekomcloud.GetApigwApiHistoryV2.Invoke(new()\n    {\n        GatewayId = gateway.Id,\n        EnvironmentId = env.Id,\n        ApiId = api.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tgatewayId := cfg.RequireObject(\"gatewayId\")\n\t\tenvironmentId := cfg.RequireObject(\"environmentId\")\n\t\tapiId := cfg.RequireObject(\"apiId\")\n\t\t_, err := opentelekomcloud.NewApigwApiPublishmentV2(ctx, \"pub\", &opentelekomcloud.ApigwApiPublishmentV2Args{\n\t\t\tGatewayId:     pulumi.Any(instanceId),\n\t\t\tEnvironmentId: pulumi.Any(environmentId),\n\t\t\tApiId:         pulumi.Any(apiId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.GetApigwApiHistoryV2(ctx, &opentelekomcloud.GetApigwApiHistoryV2Args{\n\t\t\tGatewayId:     gateway.Id,\n\t\t\tEnvironmentId: pulumi.StringRef(env.Id),\n\t\t\tApiId:         api.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ApigwApiPublishmentV2;\nimport com.pulumi.opentelekomcloud.ApigwApiPublishmentV2Args;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetApigwApiHistoryV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var gatewayId = config.get(\"gatewayId\");\n        final var environmentId = config.get(\"environmentId\");\n        final var apiId = config.get(\"apiId\");\n        var pub = new ApigwApiPublishmentV2(\"pub\", ApigwApiPublishmentV2Args.builder()\n            .gatewayId(instanceId)\n            .environmentId(environmentId)\n            .apiId(apiId)\n            .build());\n\n        final var hist = OpentelekomcloudFunctions.getApigwApiHistoryV2(GetApigwApiHistoryV2Args.builder()\n            .gatewayId(gateway.id())\n            .environmentId(env.id())\n            .apiId(api.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  gatewayId:\n    type: dynamic\n  environmentId:\n    type: dynamic\n  apiId:\n    type: dynamic\nresources:\n  pub:\n    type: opentelekomcloud:ApigwApiPublishmentV2\n    properties:\n      gatewayId: ${instanceId}\n      environmentId: ${environmentId}\n      apiId: ${apiId}\nvariables:\n  hist:\n    fn::invoke:\n      function: opentelekomcloud:getApigwApiHistoryV2\n      arguments:\n        gatewayId: ${gateway.id}\n        environmentId: ${env.id}\n        apiId: ${api.id}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getApigwApiHistoryV2.\n","properties":{"apiId":{"description":"Specifies the ID of the API to be published or already published.\n","type":"string"},"environmentId":{"description":"Specifies the environment ID.\n","type":"string"},"environmentName":{"description":"Specifies the environment name.\n","type":"string"},"gatewayId":{"description":"Specifies an ID of the APIGW dedicated instance to which the API\nenvironment belongs.\n","type":"string"},"id":{"description":"API version ID.\n","type":"string"}},"required":["apiId","gatewayId"],"type":"object"},"outputs":{"description":"A collection of values returned by getApigwApiHistoryV2.\n","properties":{"apiId":{"type":"string"},"environmentId":{"type":"string"},"environmentName":{"type":"string"},"gatewayId":{"type":"string"},"histories":{"description":"List of APIGW history details.\nThe object structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetApigwApiHistoryV2History:getApigwApiHistoryV2History"},"type":"array"},"id":{"description":"API version ID.\n","type":"string"},"region":{"description":"The region in which to APIs was published.\n","type":"string"}},"required":["apiId","gatewayId","histories","id","region"],"type":"object"}},"opentelekomcloud:index/getApigwEnvironmentsV2:getApigwEnvironmentsV2":{"description":"Use this data source to query the environment list under the APIGW instance within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst environmentName = config.requireObject<any>(\"environmentName\");\nconst test = opentelekomcloud.getApigwEnvironmentsV2({\n    instanceId: instanceId,\n    name: environmentName,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nenvironment_name = config.require_object(\"environmentName\")\ntest = opentelekomcloud.get_apigw_environments_v2(instance_id=instance_id,\n    name=environment_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var environmentName = config.RequireObject<dynamic>(\"environmentName\");\n    var test = Opentelekomcloud.GetApigwEnvironmentsV2.Invoke(new()\n    {\n        InstanceId = instanceId,\n        Name = environmentName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tenvironmentName := cfg.RequireObject(\"environmentName\")\n\t\t_, err := opentelekomcloud.GetApigwEnvironmentsV2(ctx, &opentelekomcloud.GetApigwEnvironmentsV2Args{\n\t\t\tInstanceId: instanceId,\n\t\t\tName:       pulumi.StringRef(environmentName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetApigwEnvironmentsV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var environmentName = config.get(\"environmentName\");\n        final var test = OpentelekomcloudFunctions.getApigwEnvironmentsV2(GetApigwEnvironmentsV2Args.builder()\n            .instanceId(instanceId)\n            .name(environmentName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  environmentName:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getApigwEnvironmentsV2\n      arguments:\n        instanceId: ${instanceId}\n        name: ${environmentName}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getApigwEnvironmentsV2.\n","properties":{"id":{"description":"ID of the APIGW environment.\n","type":"string"},"instanceId":{"description":"Specifies an ID of the APIGW dedicated instance to which the API\nenvironment belongs.\n","type":"string"},"name":{"description":"Specifies the name of the API environment. The API environment name consists of 3 to 64\ncharacters, starting with a letter. Only letters, digits and underscores (_) are allowed.\n","type":"string"}},"required":["instanceId"],"type":"object"},"outputs":{"description":"A collection of values returned by getApigwEnvironmentsV2.\n","properties":{"environments":{"description":"List of APIGW environment details. The structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetApigwEnvironmentsV2Environment:getApigwEnvironmentsV2Environment"},"type":"array"},"id":{"description":"ID of the APIGW environment.\n","type":"string"},"instanceId":{"type":"string"},"name":{"description":"The environment name.\n","type":"string"},"region":{"description":"The region in which queried the data source.\n","type":"string"}},"required":["environments","id","instanceId","region"],"type":"object"}},"opentelekomcloud:index/getApigwGatewayFeaturesV2:getApigwGatewayFeaturesV2":{"description":"Up-to-date reference of API arguments for API Gateway environment variable service you can get at\n[documentation portal](https://docs.otc.t-systems.com/api-gateway/api-ref/dedicated_gateway_apis_v2/gateway_feature_management/querying_gateway_features.html)\n\nUse this data source to get the list of the features under the APIGW gateway within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst gatewayId = config.requireObject<any>(\"gatewayId\");\nconst ft = opentelekomcloud.getApigwGatewayFeaturesV2({\n    gatewayId: gatewayId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ngateway_id = config.require_object(\"gatewayId\")\nft = opentelekomcloud.get_apigw_gateway_features_v2(gateway_id=gateway_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var gatewayId = config.RequireObject<dynamic>(\"gatewayId\");\n    var ft = Opentelekomcloud.GetApigwGatewayFeaturesV2.Invoke(new()\n    {\n        GatewayId = gatewayId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tgatewayId := cfg.RequireObject(\"gatewayId\")\n\t\t_, err := opentelekomcloud.GetApigwGatewayFeaturesV2(ctx, &opentelekomcloud.GetApigwGatewayFeaturesV2Args{\n\t\t\tGatewayId: gatewayId,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetApigwGatewayFeaturesV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var gatewayId = config.get(\"gatewayId\");\n        final var ft = OpentelekomcloudFunctions.getApigwGatewayFeaturesV2(GetApigwGatewayFeaturesV2Args.builder()\n            .gatewayId(gatewayId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  gatewayId:\n    type: dynamic\nvariables:\n  ft:\n    fn::invoke:\n      function: opentelekomcloud:getApigwGatewayFeaturesV2\n      arguments:\n        gatewayId: ${gatewayId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getApigwGatewayFeaturesV2.\n","properties":{"gatewayId":{"description":"Specified the ID of the dedicated gateway to which the features belong.\n","type":"string"},"id":{"description":"The ID of the feature.\n","type":"string"},"name":{"description":"Specified the name of the feature.\n","type":"string"}},"required":["gatewayId"],"type":"object"},"outputs":{"description":"A collection of values returned by getApigwGatewayFeaturesV2.\n","properties":{"features":{"description":"All instance features that match the filter parameters.\nThe features structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetApigwGatewayFeaturesV2Feature:getApigwGatewayFeaturesV2Feature"},"type":"array"},"gatewayId":{"type":"string"},"id":{"description":"The ID of the feature.\n","type":"string"},"name":{"description":"The name of the feature.\n","type":"string"},"region":{"description":"The region in which to query the data source.\n","type":"string"}},"required":["features","gatewayId","id","region"],"type":"object"}},"opentelekomcloud:index/getApigwGroupsV2:getApigwGroupsV2":{"description":"Up-to-date reference of API arguments for API Gateway groups service you can get at\n[documentation portal](https://docs.otc.t-systems.com/api-gateway/api-ref/dedicated_gateway_apis_v2/api_group_management/querying_api_groups.html)\n\nUse this data source to query the group list under the APIGW instance within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst groupName = config.requireObject<any>(\"groupName\");\nconst test = opentelekomcloud.getApigwGroupsV2({\n    instanceId: instanceId,\n    name: groupName,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ngroup_name = config.require_object(\"groupName\")\ntest = opentelekomcloud.get_apigw_groups_v2(instance_id=instance_id,\n    name=group_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var groupName = config.RequireObject<dynamic>(\"groupName\");\n    var test = Opentelekomcloud.GetApigwGroupsV2.Invoke(new()\n    {\n        InstanceId = instanceId,\n        Name = groupName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tgroupName := cfg.RequireObject(\"groupName\")\n\t\t_, err := opentelekomcloud.GetApigwGroupsV2(ctx, &opentelekomcloud.GetApigwGroupsV2Args{\n\t\t\tInstanceId: instanceId,\n\t\t\tName:       pulumi.StringRef(groupName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetApigwGroupsV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var groupName = config.get(\"groupName\");\n        final var test = OpentelekomcloudFunctions.getApigwGroupsV2(GetApigwGroupsV2Args.builder()\n            .instanceId(instanceId)\n            .name(groupName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  groupName:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getApigwGroupsV2\n      arguments:\n        instanceId: ${instanceId}\n        name: ${groupName}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getApigwGroupsV2.\n","properties":{"groupId":{"description":"Specifies the API group ID used to query.\n","type":"string"},"id":{"description":"The variable ID.\n","type":"string"},"instanceId":{"description":"Specifies an ID of the APIGW dedicated instance to which the API group belongs.\n","type":"string"},"name":{"description":"Specifies the API group name used to query.\n","type":"string"},"region":{"description":"The region in which to query the data source.\n","type":"string"}},"required":["instanceId"],"type":"object"},"outputs":{"description":"A collection of values returned by getApigwGroupsV2.\n","properties":{"groupId":{"type":"string"},"groups":{"description":"All groups that match the filter parameters.\nThe groups structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetApigwGroupsV2Group:getApigwGroupsV2Group"},"type":"array"},"id":{"description":"The variable ID.\n","type":"string"},"instanceId":{"type":"string"},"name":{"description":"The variable name.\n","type":"string"},"region":{"description":"The region in which to query the data source.\n","type":"string"}},"required":["groups","id","instanceId","region"],"type":"object"}},"opentelekomcloud:index/getAsmServiceMeshV1:getAsmServiceMeshV1":{"description":"Up-to-date reference of API arguments for ASM service mesh you can get at\n[documentation portal](https://docs.otc.t-systems.com/application-service-mesh/api-ref/api/service_mesh_apis/index.html)\n\nManages an ASM Service Mesh v1 data source within OpenTelekomCloud.\n\n## Example Usage\n\n### List all ASM service meshes\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst mesh1 = opentelekomcloud.getAsmServiceMeshV1({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nmesh1 = opentelekomcloud.get_asm_service_mesh_v1()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var mesh1 = Opentelekomcloud.GetAsmServiceMeshV1.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupAsmServiceMeshV1(ctx, &opentelekomcloud.LookupAsmServiceMeshV1Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetAsmServiceMeshV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var mesh1 = OpentelekomcloudFunctions.getAsmServiceMeshV1(GetAsmServiceMeshV1Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  mesh1:\n    fn::invoke:\n      function: opentelekomcloud:getAsmServiceMeshV1\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n\n### Get ASM service mesh using ID\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst meshId = config.requireObject<any>(\"meshId\");\nconst mesh1 = opentelekomcloud.getAsmServiceMeshV1({\n    id: meshId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nmesh_id = config.require_object(\"meshId\")\nmesh1 = opentelekomcloud.get_asm_service_mesh_v1(id=mesh_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var meshId = config.RequireObject<dynamic>(\"meshId\");\n    var mesh1 = Opentelekomcloud.GetAsmServiceMeshV1.Invoke(new()\n    {\n        Id = meshId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tmeshId := cfg.RequireObject(\"meshId\")\n\t\t_, err := opentelekomcloud.LookupAsmServiceMeshV1(ctx, &opentelekomcloud.LookupAsmServiceMeshV1Args{\n\t\t\tId: pulumi.StringRef(meshId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetAsmServiceMeshV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var meshId = config.get(\"meshId\");\n        final var mesh1 = OpentelekomcloudFunctions.getAsmServiceMeshV1(GetAsmServiceMeshV1Args.builder()\n            .id(meshId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  meshId:\n    type: dynamic\nvariables:\n  mesh1:\n    fn::invoke:\n      function: opentelekomcloud:getAsmServiceMeshV1\n      arguments:\n        id: ${meshId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getAsmServiceMeshV1.\n","properties":{"id":{"description":"Specifies the service mesh ID.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAsmServiceMeshV1.\n","properties":{"id":{"type":"string"},"serviceMeshes":{"description":"The service mesh list. The structure is documented below:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetAsmServiceMeshV1ServiceMesh:getAsmServiceMeshV1ServiceMesh"},"type":"array"}},"required":["serviceMeshes"],"type":"object"}},"opentelekomcloud:index/getCbrBackupIdsV3:getCbrBackupIdsV3":{"description":"Up-to-date reference of API arguments for CBR backups you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-backup-recovery/api-ref/cbr_apis/backups/querying_all_backups.html#listbackups)\n\nUse this data source to get details about backup resources from OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst checkpointId = config.requireObject<any>(\"checkpointId\");\nconst cbrBackups = opentelekomcloud.getCbrBackupIdsV3({\n    checkpointId: checkpointId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ncheckpoint_id = config.require_object(\"checkpointId\")\ncbr_backups = opentelekomcloud.get_cbr_backup_ids_v3(checkpoint_id=checkpoint_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var checkpointId = config.RequireObject<dynamic>(\"checkpointId\");\n    var cbrBackups = Opentelekomcloud.GetCbrBackupIdsV3.Invoke(new()\n    {\n        CheckpointId = checkpointId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tcheckpointId := cfg.RequireObject(\"checkpointId\")\n\t\t_, err := opentelekomcloud.GetCbrBackupIdsV3(ctx, &opentelekomcloud.GetCbrBackupIdsV3Args{\n\t\t\tCheckpointId: pulumi.StringRef(checkpointId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCbrBackupIdsV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var checkpointId = config.get(\"checkpointId\");\n        final var cbrBackups = OpentelekomcloudFunctions.getCbrBackupIdsV3(GetCbrBackupIdsV3Args.builder()\n            .checkpointId(checkpointId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  checkpointId:\n    type: dynamic\nvariables:\n  cbrBackups:\n    fn::invoke:\n      function: opentelekomcloud:getCbrBackupIdsV3\n      arguments:\n        checkpointId: ${checkpointId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getCbrBackupIdsV3.\n","properties":{"checkpointId":{"type":"string"},"id":{"description":"Specifies the ID of backup.\n","type":"string"},"imageType":{"description":"Specifies the backup type.\n","type":"string"},"name":{"description":"Specifies the backup name\n","type":"string"},"parentId":{"description":"Specifies the ID of parent backup.\n","type":"string"},"resourceAz":{"description":"Specifies the AZ of backup.\n","type":"string"},"resourceId":{"description":"Specifies the backup object ID.\n","type":"string"},"resourceName":{"description":"Specifies the backup resource name.\n","type":"string"},"resourceType":{"description":"Specifies the type of backup objects.\n","type":"string"},"status":{"description":"Specifies the backup status.\n","type":"string"},"vaultId":{"description":"Specifies the ID of backup vault.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCbrBackupIdsV3.\n","properties":{"checkpointId":{"type":"string"},"id":{"type":"string"},"ids":{"description":"A list of all the backup ids found. This data source will fail if none are found.\n","items":{"type":"string"},"type":"array"},"imageType":{"type":"string"},"name":{"type":"string"},"parentId":{"type":"string"},"resourceAz":{"type":"string"},"resourceId":{"type":"string"},"resourceName":{"type":"string"},"resourceType":{"type":"string"},"status":{"type":"string"},"vaultId":{"type":"string"}},"required":["checkpointId","id","ids","imageType","name","parentId","resourceAz","resourceId","resourceName","resourceType","status","vaultId"],"type":"object"}},"opentelekomcloud:index/getCbrBackupV3:getCbrBackupV3":{"description":"Up-to-date reference of API arguments for CBR backups you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-backup-recovery/api-ref/cbr_apis/backups/querying_all_backups.html#listbackups)\n\n\nUse this data source to get details about backup resources from OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst backupId = config.requireObject<any>(\"backupId\");\nconst cbrBackup = opentelekomcloud.getCbrBackupV3({\n    id: backupId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nbackup_id = config.require_object(\"backupId\")\ncbr_backup = opentelekomcloud.get_cbr_backup_v3(id=backup_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var backupId = config.RequireObject<dynamic>(\"backupId\");\n    var cbrBackup = Opentelekomcloud.GetCbrBackupV3.Invoke(new()\n    {\n        Id = backupId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tbackupId := cfg.RequireObject(\"backupId\")\n\t\t_, err := opentelekomcloud.GetCbrBackupV3(ctx, &opentelekomcloud.GetCbrBackupV3Args{\n\t\t\tId: pulumi.StringRef(backupId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCbrBackupV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var backupId = config.get(\"backupId\");\n        final var cbrBackup = OpentelekomcloudFunctions.getCbrBackupV3(GetCbrBackupV3Args.builder()\n            .id(backupId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  backupId:\n    type: dynamic\nvariables:\n  cbrBackup:\n    fn::invoke:\n      function: opentelekomcloud:getCbrBackupV3\n      arguments:\n        id: ${backupId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getCbrBackupV3.\n","properties":{"autoTrigger":{"description":"Specifies whether the backup is automatically generated.\n","type":"boolean"},"bootable":{"description":"Specifies whether the backup is a system disk backup.\n","type":"boolean"},"checkpointId":{"type":"string"},"containSystemDisk":{"type":"boolean"},"createdAt":{"description":"The time the backup was created.\n","type":"string"},"description":{"description":"Backup description.\n","type":"string"},"encrypted":{"description":"Specifies whether the backup is encrypted.\n","type":"boolean"},"expiredAt":{"description":"The time the backup will be expired.\n","type":"string"},"id":{"description":"Specifies the ID of backup.\n","type":"string"},"imageType":{"description":"Specifies the backup type.\n","type":"string"},"incremental":{"description":"Specifies whether the backup is an incremental backup.\n","type":"boolean"},"name":{"description":"Specifies the backup name\n","type":"string"},"parentId":{"description":"Specifies the ID of parent backup.\n","type":"string"},"projectId":{"description":"The project ID of backup.\n","type":"string"},"providerId":{"description":"Backup provider ID which is used to distinguish backup objects.\n","type":"string"},"resourceAz":{"description":"Specifies the AZ of backup.\n","type":"string"},"resourceId":{"description":"Specifies the backup object ID.\n","type":"string"},"resourceName":{"description":"Specifies the backup resource name.\n","type":"string"},"resourceSize":{"description":"Backup size in GB.\n","type":"number"},"resourceType":{"description":"Specifies the type of backup objects.\n","type":"string"},"snapshotId":{"description":"The snapshot ID of the disk backup.\n","type":"string"},"status":{"description":"Specifies the backup status.\n","type":"string"},"supportLld":{"description":"Specifies whether to allow lazyloading for fast restoration.\n","type":"boolean"},"supportedRestoreMode":{"description":"Restoration mode of the backup.\n","type":"string"},"systemDisk":{"description":"Specifies whether a disk is a system disk.\n","type":"boolean"},"updatedAt":{"description":"Indicates the update time.\n","type":"string"},"vaultId":{"description":"Specifies the ID of backup vault.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCbrBackupV3.\n","properties":{"autoTrigger":{"description":"Specifies whether the backup is automatically generated.\n","type":"boolean"},"bootable":{"description":"Specifies whether the backup is a system disk backup.\n","type":"boolean"},"checkpointId":{"type":"string"},"containSystemDisk":{"type":"boolean"},"createdAt":{"description":"The time the backup was created.\n","type":"string"},"description":{"description":"Backup description.\n","type":"string"},"encrypted":{"description":"Specifies whether the backup is encrypted.\n","type":"boolean"},"expiredAt":{"description":"The time the backup will be expired.\n","type":"string"},"id":{"type":"string"},"imageType":{"type":"string"},"incremental":{"description":"Specifies whether the backup is an incremental backup.\n","type":"boolean"},"name":{"type":"string"},"parentId":{"type":"string"},"projectId":{"description":"The project ID of backup.\n","type":"string"},"providerId":{"description":"Backup provider ID which is used to distinguish backup objects.\n","type":"string"},"resourceAz":{"type":"string"},"resourceId":{"type":"string"},"resourceName":{"type":"string"},"resourceSize":{"description":"Backup size in GB.\n","type":"number"},"resourceType":{"type":"string"},"snapshotId":{"description":"The snapshot ID of the disk backup.\n","type":"string"},"status":{"type":"string"},"supportLld":{"description":"Specifies whether to allow lazyloading for fast restoration.\n","type":"boolean"},"supportedRestoreMode":{"description":"Restoration mode of the backup.\n","type":"string"},"systemDisk":{"description":"Specifies whether a disk is a system disk.\n","type":"boolean"},"updatedAt":{"description":"Indicates the update time.\n","type":"string"},"vaultId":{"type":"string"}},"required":["autoTrigger","bootable","checkpointId","containSystemDisk","createdAt","description","encrypted","expiredAt","id","imageType","incremental","name","parentId","projectId","providerId","resourceAz","resourceId","resourceName","resourceSize","resourceType","snapshotId","status","supportLld","supportedRestoreMode","systemDisk","updatedAt","vaultId"],"type":"object"}},"opentelekomcloud:index/getCceAddonTemplateV3:getCceAddonTemplateV3":{"description":"Up-to-date reference of API arguments for CCE Addon template you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-container-engine/api-ref/apis/add-on_management/reading_add-on_templates.html#cce-02-0321)\n\nUse this data source to get from OpenTelekomCloud a CCE Addon template info.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst template = opentelekomcloud.getCceAddonTemplateV3({\n    addonVersion: \"1.23.1\",\n    addonName: \"coredns\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntemplate = opentelekomcloud.get_cce_addon_template_v3(addon_version=\"1.23.1\",\n    addon_name=\"coredns\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var template = Opentelekomcloud.GetCceAddonTemplateV3.Invoke(new()\n    {\n        AddonVersion = \"1.23.1\",\n        AddonName = \"coredns\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetCceAddonTemplateV3(ctx, &opentelekomcloud.GetCceAddonTemplateV3Args{\n\t\t\tAddonVersion: \"1.23.1\",\n\t\t\tAddonName:    \"coredns\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCceAddonTemplateV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var template = OpentelekomcloudFunctions.getCceAddonTemplateV3(GetCceAddonTemplateV3Args.builder()\n            .addonVersion(\"1.23.1\")\n            .addonName(\"coredns\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  template:\n    fn::invoke:\n      function: opentelekomcloud:getCceAddonTemplateV3\n      arguments:\n        addonVersion: 1.23.1\n        addonName: coredns\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getCceAddonTemplateV3.\n","properties":{"addonName":{"description":"The name of the CCE addon. For example: <span pulumi-lang-nodejs=\"`autoscaler`\" pulumi-lang-dotnet=\"`Autoscaler`\" pulumi-lang-go=\"`autoscaler`\" pulumi-lang-python=\"`autoscaler`\" pulumi-lang-yaml=\"`autoscaler`\" pulumi-lang-java=\"`autoscaler`\">`autoscaler`</span>.\n","type":"string"},"addonVersion":{"description":"The version of the CCE cluster addon. For example: `1.23.6`.\n","type":"string"},"clusterIp":{"description":"The cluster ip.\n","type":"string"},"clusterVersions":{"description":"Supported cluster versions.\n","type":"string"},"id":{"description":"The ID of the addon.\n","type":"string"},"imageVersion":{"description":"The cluster image version.\n","type":"string"},"swrAddr":{"description":"The cluster <span pulumi-lang-nodejs=\"`swrAddr`\" pulumi-lang-dotnet=\"`SwrAddr`\" pulumi-lang-go=\"`swrAddr`\" pulumi-lang-python=\"`swr_addr`\" pulumi-lang-yaml=\"`swrAddr`\" pulumi-lang-java=\"`swrAddr`\">`swr_addr`</span>.\n","type":"string"},"swrUser":{"description":"The cluster <span pulumi-lang-nodejs=\"`swrUser`\" pulumi-lang-dotnet=\"`SwrUser`\" pulumi-lang-go=\"`swrUser`\" pulumi-lang-python=\"`swr_user`\" pulumi-lang-yaml=\"`swrUser`\" pulumi-lang-java=\"`swrUser`\">`swr_user`</span>.\n","type":"string"}},"required":["addonName","addonVersion"],"type":"object"},"outputs":{"description":"A collection of values returned by getCceAddonTemplateV3.\n","properties":{"addonName":{"type":"string"},"addonVersion":{"type":"string"},"clusterIp":{"description":"The cluster ip.\n","type":"string"},"clusterVersions":{"description":"Supported cluster versions.\n","type":"string"},"id":{"description":"The ID of the addon.\n","type":"string"},"imageVersion":{"description":"The cluster image version.\n","type":"string"},"swrAddr":{"description":"The cluster <span pulumi-lang-nodejs=\"`swrAddr`\" pulumi-lang-dotnet=\"`SwrAddr`\" pulumi-lang-go=\"`swrAddr`\" pulumi-lang-python=\"`swr_addr`\" pulumi-lang-yaml=\"`swrAddr`\" pulumi-lang-java=\"`swrAddr`\">`swr_addr`</span>.\n","type":"string"},"swrUser":{"description":"The cluster <span pulumi-lang-nodejs=\"`swrUser`\" pulumi-lang-dotnet=\"`SwrUser`\" pulumi-lang-go=\"`swrUser`\" pulumi-lang-python=\"`swr_user`\" pulumi-lang-yaml=\"`swrUser`\" pulumi-lang-java=\"`swrUser`\">`swr_user`</span>.\n","type":"string"}},"required":["addonName","addonVersion","clusterIp","clusterVersions","id","imageVersion","swrAddr","swrUser"],"type":"object"}},"opentelekomcloud:index/getCceAddonTemplatesV3:getCceAddonTemplatesV3":{"description":"Up-to-date reference of API arguments for CCE Addon template you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-container-engine/api-ref/apis/add-on_management/reading_add-on_templates.html#cce-02-0321)\n\nUse this data source to get from OpenTelekomCloud a CCE Addon template versions and additional info based on cluster version.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst templates = opentelekomcloud.getCceAddonTemplatesV3({\n    clusterVersion: \"1.21.3\",\n    addonName: \"volcano\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntemplates = opentelekomcloud.get_cce_addon_templates_v3(cluster_version=\"1.21.3\",\n    addon_name=\"volcano\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var templates = Opentelekomcloud.GetCceAddonTemplatesV3.Invoke(new()\n    {\n        ClusterVersion = \"1.21.3\",\n        AddonName = \"volcano\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetCceAddonTemplatesV3(ctx, &opentelekomcloud.GetCceAddonTemplatesV3Args{\n\t\t\tClusterVersion: \"1.21.3\",\n\t\t\tAddonName:      \"volcano\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCceAddonTemplatesV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var templates = OpentelekomcloudFunctions.getCceAddonTemplatesV3(GetCceAddonTemplatesV3Args.builder()\n            .clusterVersion(\"1.21.3\")\n            .addonName(\"volcano\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  templates:\n    fn::invoke:\n      function: opentelekomcloud:getCceAddonTemplatesV3\n      arguments:\n        clusterVersion: 1.21.3\n        addonName: volcano\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getCceAddonTemplatesV3.\n","properties":{"addonName":{"description":"The name of the CCE addon. For example: <span pulumi-lang-nodejs=\"`autoscaler`\" pulumi-lang-dotnet=\"`Autoscaler`\" pulumi-lang-go=\"`autoscaler`\" pulumi-lang-python=\"`autoscaler`\" pulumi-lang-yaml=\"`autoscaler`\" pulumi-lang-java=\"`autoscaler`\">`autoscaler`</span>.\n","type":"string"},"clusterType":{"description":"The type of the CCE cluster. Default value: `VirtualMachine`.\nThe valid values are as follows:\n+ **VirtualMachine**: The instance is running properly.\n+ **ARM64**: The instance has been properly stopped.\n+ **BareMetal**: An error has occurred on the instance.\n","type":"string"},"clusterVersion":{"description":"The version of the CCE cluster. For example: `1.23.6`.\n","type":"string"},"id":{"description":"The data source ID.\n","type":"string"}},"required":["addonName","clusterVersion"],"type":"object"},"outputs":{"description":"A collection of values returned by getCceAddonTemplatesV3.\n","properties":{"addonName":{"type":"string"},"addons":{"description":"List of CCE addons details. The object structure of each CCE addon is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetCceAddonTemplatesV3Addon:getCceAddonTemplatesV3Addon"},"type":"array"},"clusterType":{"type":"string"},"clusterVersion":{"type":"string"},"id":{"description":"The data source ID.\n","type":"string"}},"required":["addonName","addons","clusterVersion","id"],"type":"object"}},"opentelekomcloud:index/getCceClusterKubeconfigV3:getCceClusterKubeconfigV3":{"description":"Use this data source to get a cluster's kubeconfig file from OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst clusterId = config.requireObject<any>(\"clusterId\");\nconst _this = opentelekomcloud.getCceClusterKubeconfigV3({\n    clusterId: clusterId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ncluster_id = config.require_object(\"clusterId\")\nthis = opentelekomcloud.get_cce_cluster_kubeconfig_v3(cluster_id=cluster_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var clusterId = config.RequireObject<dynamic>(\"clusterId\");\n    var @this = Opentelekomcloud.GetCceClusterKubeconfigV3.Invoke(new()\n    {\n        ClusterId = clusterId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tclusterId := cfg.RequireObject(\"clusterId\")\n\t\t_, err := opentelekomcloud.GetCceClusterKubeconfigV3(ctx, &opentelekomcloud.GetCceClusterKubeconfigV3Args{\n\t\t\tClusterId: clusterId,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCceClusterKubeconfigV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var clusterId = config.get(\"clusterId\");\n        final var this = OpentelekomcloudFunctions.getCceClusterKubeconfigV3(GetCceClusterKubeconfigV3Args.builder()\n            .clusterId(clusterId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  clusterId:\n    type: dynamic\nvariables:\n  this:\n    fn::invoke:\n      function: opentelekomcloud:getCceClusterKubeconfigV3\n      arguments:\n        clusterId: ${clusterId}\n```\n<!--End PulumiCodeChooser -->\n\n## Example with expiration date\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst clusterId = config.requireObject<any>(\"clusterId\");\nconst _this = opentelekomcloud.getCceClusterKubeconfigV3({\n    clusterId: cluster1.id,\n    expiryDate: \"2024-02-01\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ncluster_id = config.require_object(\"clusterId\")\nthis = opentelekomcloud.get_cce_cluster_kubeconfig_v3(cluster_id=cluster1[\"id\"],\n    expiry_date=\"2024-02-01\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var clusterId = config.RequireObject<dynamic>(\"clusterId\");\n    var @this = Opentelekomcloud.GetCceClusterKubeconfigV3.Invoke(new()\n    {\n        ClusterId = cluster1.Id,\n        ExpiryDate = \"2024-02-01\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tclusterId := cfg.RequireObject(\"clusterId\")\n\t\t_, err := opentelekomcloud.GetCceClusterKubeconfigV3(ctx, &opentelekomcloud.GetCceClusterKubeconfigV3Args{\n\t\t\tClusterId:  cluster1.Id,\n\t\t\tExpiryDate: pulumi.StringRef(\"2024-02-01\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCceClusterKubeconfigV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var clusterId = config.get(\"clusterId\");\n        final var this = OpentelekomcloudFunctions.getCceClusterKubeconfigV3(GetCceClusterKubeconfigV3Args.builder()\n            .clusterId(cluster1.id())\n            .expiryDate(\"2024-02-01\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  clusterId:\n    type: dynamic\nvariables:\n  this:\n    fn::invoke:\n      function: opentelekomcloud:getCceClusterKubeconfigV3\n      arguments:\n        clusterId: ${cluster1.id}\n        expiryDate: 2024-02-01\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getCceClusterKubeconfigV3.\n","properties":{"clusterId":{"description":"The Name of the cluster resource.\n","type":"string"},"duration":{"description":"Period during which a cluster certificate is valid, in days. A cluster certificate can\nbe valid for <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`1825`\" pulumi-lang-dotnet=\"`1825`\" pulumi-lang-go=\"`1825`\" pulumi-lang-python=\"`1825`\" pulumi-lang-yaml=\"`1825`\" pulumi-lang-java=\"`1825`\">`1825`</span> days. If this parameter is set to `-1`, the validity period is <span pulumi-lang-nodejs=\"`1825`\" pulumi-lang-dotnet=\"`1825`\" pulumi-lang-go=\"`1825`\" pulumi-lang-python=\"`1825`\" pulumi-lang-yaml=\"`1825`\" pulumi-lang-java=\"`1825`\">`1825`</span> days (about 5 years).\nDefault vault `-1`.\n","type":"number"},"expiryDate":{"description":"Specifies the date until which the certificate will be valid, in RFC3339 format, like `2023-02-01`.\nConflicts with <span pulumi-lang-nodejs=\"`duration`\" pulumi-lang-dotnet=\"`Duration`\" pulumi-lang-go=\"`duration`\" pulumi-lang-python=\"`duration`\" pulumi-lang-yaml=\"`duration`\" pulumi-lang-java=\"`duration`\">`duration`</span> attribute.\n","type":"string"},"id":{"description":"The ID of the cluster.\n","type":"string"}},"required":["clusterId"],"type":"object"},"outputs":{"description":"A collection of values returned by getCceClusterKubeconfigV3.\n","properties":{"clusterId":{"type":"string"},"duration":{"type":"number"},"expiryDate":{"type":"string"},"id":{"description":"The ID of the cluster.\n","type":"string"},"kubeconfig":{"description":"The cluster's kubeconfig file contents.\n","type":"string"}},"required":["clusterId","duration","id","kubeconfig"],"type":"object"}},"opentelekomcloud:index/getCceClusterV3:getCceClusterV3":{"description":"Up-to-date reference of API arguments for CCE cluster you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-container-engine/api-ref/apis/cluster_management/listing_clusters_in_a_specified_project.html#cce-02-0239)\n\nUse this data source to get details about all clusters and obtains the certificate for accessing cluster information.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst clusterName = config.requireObject<any>(\"clusterName\");\nconst clusterId = config.requireObject<any>(\"clusterId\");\nconst vpcId = config.requireObject<any>(\"vpcId\");\nconst cluster = opentelekomcloud.getCceClusterV3({\n    name: clusterName,\n    status: \"Available\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ncluster_name = config.require_object(\"clusterName\")\ncluster_id = config.require_object(\"clusterId\")\nvpc_id = config.require_object(\"vpcId\")\ncluster = opentelekomcloud.get_cce_cluster_v3(name=cluster_name,\n    status=\"Available\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var clusterName = config.RequireObject<dynamic>(\"clusterName\");\n    var clusterId = config.RequireObject<dynamic>(\"clusterId\");\n    var vpcId = config.RequireObject<dynamic>(\"vpcId\");\n    var cluster = Opentelekomcloud.GetCceClusterV3.Invoke(new()\n    {\n        Name = clusterName,\n        Status = \"Available\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tclusterName := cfg.RequireObject(\"clusterName\")\n\t\tclusterId := cfg.RequireObject(\"clusterId\")\n\t\tvpcId := cfg.RequireObject(\"vpcId\")\n\t\t_, err := opentelekomcloud.LookupCceClusterV3(ctx, &opentelekomcloud.LookupCceClusterV3Args{\n\t\t\tName:   pulumi.StringRef(clusterName),\n\t\t\tStatus: pulumi.StringRef(\"Available\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCceClusterV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var clusterName = config.get(\"clusterName\");\n        final var clusterId = config.get(\"clusterId\");\n        final var vpcId = config.get(\"vpcId\");\n        final var cluster = OpentelekomcloudFunctions.getCceClusterV3(GetCceClusterV3Args.builder()\n            .name(clusterName)\n            .status(\"Available\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  clusterName:\n    type: dynamic\n  clusterId:\n    type: dynamic\n  vpcId:\n    type: dynamic\nvariables:\n  cluster:\n    fn::invoke:\n      function: opentelekomcloud:getCceClusterV3\n      arguments:\n        name: ${clusterName}\n        status: Available\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getCceClusterV3.\n","properties":{"clusterType":{"description":"Type of the cluster. Possible values: `VirtualMachine`, `BareMetal` or `Windows`.\n","type":"string"},"id":{"description":"The ID of the cluster.\n","type":"string"},"name":{"description":"The Name of the cluster resource.\n","type":"string"},"region":{"type":"string"},"status":{"description":"The state of the cluster.\n","type":"string"},"vpcId":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCceClusterV3.\n","properties":{"authenticationMode":{"description":"(Optional) Authentication mode of the cluster, possible values are <span pulumi-lang-nodejs=\"`rbac`\" pulumi-lang-dotnet=\"`Rbac`\" pulumi-lang-go=\"`rbac`\" pulumi-lang-python=\"`rbac`\" pulumi-lang-yaml=\"`rbac`\" pulumi-lang-java=\"`rbac`\">`rbac`</span> and <span pulumi-lang-nodejs=\"`authenticatingProxy`\" pulumi-lang-dotnet=\"`AuthenticatingProxy`\" pulumi-lang-go=\"`authenticatingProxy`\" pulumi-lang-python=\"`authenticating_proxy`\" pulumi-lang-yaml=\"`authenticatingProxy`\" pulumi-lang-java=\"`authenticatingProxy`\">`authenticating_proxy`</span>.\n","type":"string"},"billingMode":{"type":"number"},"certificateClusters":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetCceClusterV3CertificateCluster:getCceClusterV3CertificateCluster"},"type":"array"},"certificateUsers":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetCceClusterV3CertificateUser:getCceClusterV3CertificateUser"},"type":"array"},"clusterType":{"type":"string"},"clusterVersion":{"description":"The version of cluster in string format.\n","type":"string"},"containerNetworkCidr":{"description":"The container network segment.\n","type":"string"},"containerNetworkType":{"description":"The container network type:<span pulumi-lang-nodejs=\" overlayL2 \" pulumi-lang-dotnet=\" OverlayL2 \" pulumi-lang-go=\" overlayL2 \" pulumi-lang-python=\" overlay_l2 \" pulumi-lang-yaml=\" overlayL2 \" pulumi-lang-java=\" overlayL2 \"> overlay_l2 </span>,<span pulumi-lang-nodejs=\" underlayIpvlan \" pulumi-lang-dotnet=\" UnderlayIpvlan \" pulumi-lang-go=\" underlayIpvlan \" pulumi-lang-python=\" underlay_ipvlan \" pulumi-lang-yaml=\" underlayIpvlan \" pulumi-lang-java=\" underlayIpvlan \"> underlay_ipvlan </span>or vpc-router.\n","type":"string"},"description":{"description":"Cluster description.\n","type":"string"},"enableDeletionProtection":{"description":"Whether deletion protection is enabled for the cluster.\n","type":"boolean"},"eniSubnetCidr":{"description":"ENI network segment.\n","type":"string"},"eniSubnetId":{"description":"ENI subnet ID.\n","type":"string"},"external":{"description":"The external network address.\n","type":"string"},"externalOtc":{"description":"The endpoint of the cluster to be accessed through API Gateway.\n","type":"string"},"flavorId":{"description":"The cluster specification in string format.\n","type":"string"},"highwaySubnetId":{"description":"The ID of the high speed network used to create bare metal nodes.\n","type":"string"},"id":{"description":"The ID of the cluster.\n","type":"string"},"internal":{"description":"The internal network address.\n","type":"string"},"name":{"description":"The name of the cluster in string format.\n","type":"string"},"region":{"type":"string"},"status":{"type":"string"},"subnetId":{"description":"The ID of the subnet used to create the node.\n","type":"string"},"vpcId":{"type":"string"}},"required":["authenticationMode","billingMode","certificateClusters","certificateUsers","clusterVersion","containerNetworkCidr","containerNetworkType","description","enableDeletionProtection","eniSubnetCidr","eniSubnetId","external","externalOtc","flavorId","highwaySubnetId","id","internal","region","subnetId"],"type":"object"}},"opentelekomcloud:index/getCceClustersV3:getCceClustersV3":{"description":"Up-to-date reference of API arguments for CCE cluster you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-container-engine/api-ref/apis/cluster_management/listing_clusters_in_a_specified_project.html#cce-02-0239)\n\nUse this data source to get a list of CCE clusters.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst clusterName = config.requireObject<any>(\"clusterName\");\nconst clusters = opentelekomcloud.getCceClustersV3({\n    name: clusterName,\n    status: \"Available\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ncluster_name = config.require_object(\"clusterName\")\nclusters = opentelekomcloud.get_cce_clusters_v3(name=cluster_name,\n    status=\"Available\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var clusterName = config.RequireObject<dynamic>(\"clusterName\");\n    var clusters = Opentelekomcloud.GetCceClustersV3.Invoke(new()\n    {\n        Name = clusterName,\n        Status = \"Available\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tclusterName := cfg.RequireObject(\"clusterName\")\n\t\t_, err := opentelekomcloud.GetCceClustersV3(ctx, &opentelekomcloud.GetCceClustersV3Args{\n\t\t\tName:   pulumi.StringRef(clusterName),\n\t\t\tStatus: pulumi.StringRef(\"Available\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCceClustersV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var clusterName = config.get(\"clusterName\");\n        final var clusters = OpentelekomcloudFunctions.getCceClustersV3(GetCceClustersV3Args.builder()\n            .name(clusterName)\n            .status(\"Available\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  clusterName:\n    type: dynamic\nvariables:\n  clusters:\n    fn::invoke:\n      function: opentelekomcloud:getCceClustersV3\n      arguments:\n        name: ${clusterName}\n        status: Available\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getCceClustersV3.\n","properties":{"clusterId":{"description":"Specifies the ID of the cluster.\n","type":"string"},"clusterType":{"description":"Specifies the type of the cluster. Possible values: `VirtualMachine`, `BareMetal`.\n","type":"string"},"enterpriseProjectId":{"description":"Specifies the enterprise project ID of the cluster.\n","type":"string"},"id":{"description":"The ID of the cluster.\n","type":"string"},"name":{"description":"Specifies the name of the cluster.\n","type":"string"},"region":{"description":"Specifies the region in which to obtain the CCE clusters. If omitted, the\nprovider-level region will be used.\n","type":"string"},"status":{"description":"Specifies the status of the cluster.\n","type":"string"},"vpcId":{"description":"Specifies the VPC ID to which the cluster belongs.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCceClustersV3.\n","properties":{"clusterId":{"type":"string"},"clusterType":{"description":"The type of the cluster. Possible values: `VirtualMachine`, `ARM64`.\n","type":"string"},"clusters":{"description":"Indicates a list of CCE clusters found. Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetCceClustersV3Cluster:getCceClustersV3Cluster"},"type":"array"},"enterpriseProjectId":{"description":"The enterprise project ID of the CCE cluster.\n","type":"string"},"id":{"description":"The ID of the cluster.\n","type":"string"},"ids":{"description":"Indicates a list of IDs of all CCE clusters found.\n","items":{"type":"string"},"type":"array"},"name":{"description":"The user name.\n","type":"string"},"region":{"type":"string"},"status":{"description":"The status of the cluster.\n","type":"string"},"vpcId":{"description":"The vpc ID of the cluster.\n","type":"string"}},"required":["clusters","id","ids","region"],"type":"object"}},"opentelekomcloud:index/getCceNodeIdsV3:getCceNodeIdsV3":{"description":"Up-to-date reference of API arguments for CCE nodes you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-container-engine/api-ref/apis/cluster_management/listing_all_nodes_in_a_cluster.html)\n\nUse this data source to get a list of node ids for a CCE cluster from OpenTelekomCloud.\nThis data source can be useful for getting back a list of node ids for a CCE cluster.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst nodeIds = opentelekomcloud.getCceNodeIdsV3({\n    clusterId: clusterId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nnode_ids = opentelekomcloud.get_cce_node_ids_v3(cluster_id=cluster_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var nodeIds = Opentelekomcloud.GetCceNodeIdsV3.Invoke(new()\n    {\n        ClusterId = clusterId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetCceNodeIdsV3(ctx, &opentelekomcloud.GetCceNodeIdsV3Args{\n\t\t\tClusterId: clusterId,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCceNodeIdsV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var nodeIds = OpentelekomcloudFunctions.getCceNodeIdsV3(GetCceNodeIdsV3Args.builder()\n            .clusterId(clusterId)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  nodeIds:\n    fn::invoke:\n      function: opentelekomcloud:getCceNodeIdsV3\n      arguments:\n        clusterId: ${clusterId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getCceNodeIdsV3.\n","properties":{"clusterId":{"description":"Specifies the CCE cluster ID used as the query filter.\n","type":"string"},"id":{"type":"string"},"region":{"type":"string"}},"required":["clusterId"],"type":"object"},"outputs":{"description":"A collection of values returned by getCceNodeIdsV3.\n","properties":{"clusterId":{"type":"string"},"id":{"type":"string"},"ids":{"description":"A list of all the node ids found. This data source will fail if none are found.\n","items":{"type":"string"},"type":"array"},"region":{"type":"string"}},"required":["clusterId","id","ids","region"],"type":"object"}},"opentelekomcloud:index/getCceNodeV3:getCceNodeV3":{"description":"Up-to-date reference of API arguments for CCE nodes you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-container-engine/api-ref/apis/cluster_management/listing_all_nodes_in_a_cluster.html)\n\nUse this data source to get the specified node in a cluster from OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst clusterId = config.requireObject<any>(\"clusterId\");\nconst nodeId = config.requireObject<any>(\"nodeId\");\nconst node = opentelekomcloud.getCceNodeV3({\n    clusterId: clusterId,\n    nodeId: nodeId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ncluster_id = config.require_object(\"clusterId\")\nnode_id = config.require_object(\"nodeId\")\nnode = opentelekomcloud.get_cce_node_v3(cluster_id=cluster_id,\n    node_id=node_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var clusterId = config.RequireObject<dynamic>(\"clusterId\");\n    var nodeId = config.RequireObject<dynamic>(\"nodeId\");\n    var node = Opentelekomcloud.GetCceNodeV3.Invoke(new()\n    {\n        ClusterId = clusterId,\n        NodeId = nodeId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tclusterId := cfg.RequireObject(\"clusterId\")\n\t\tnodeId := cfg.RequireObject(\"nodeId\")\n\t\t_, err := opentelekomcloud.LookupCceNodeV3(ctx, &opentelekomcloud.LookupCceNodeV3Args{\n\t\t\tClusterId: clusterId,\n\t\t\tNodeId:    pulumi.StringRef(nodeId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCceNodeV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var clusterId = config.get(\"clusterId\");\n        final var nodeId = config.get(\"nodeId\");\n        final var node = OpentelekomcloudFunctions.getCceNodeV3(GetCceNodeV3Args.builder()\n            .clusterId(clusterId)\n            .nodeId(nodeId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  clusterId:\n    type: dynamic\n  nodeId:\n    type: dynamic\nvariables:\n  node:\n    fn::invoke:\n      function: opentelekomcloud:getCceNodeV3\n      arguments:\n        clusterId: ${clusterId}\n        nodeId: ${nodeId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getCceNodeV3.\n","properties":{"clusterId":{"description":"The id of container cluster.\n","type":"string"},"id":{"type":"string"},"name":{"description":"Name of the node.\n","type":"string"},"nodeId":{"description":"The id of the node.\n","type":"string"},"region":{"type":"string"},"status":{"description":"The state of the node.\n","type":"string"}},"required":["clusterId"],"type":"object"},"outputs":{"description":"A collection of values returned by getCceNodeV3.\n","properties":{"availabilityZone":{"description":"Available partitions where the node is located.\n","type":"string"},"bandwidthSize":{"description":"Bandwidth (Mbit/s), in the range of `[1, 2000]`.\n","type":"number"},"billingMode":{"description":"Node's billing mode: The value is <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (on demand).\n","type":"number"},"chargeMode":{"description":"Bandwidth billing type.\n","type":"string"},"clusterId":{"type":"string"},"dataVolumes":{"description":"Represents the data disks configuration.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetCceNodeV3DataVolume:getCceNodeV3DataVolume"},"type":"array"},"diskSize":{"description":"Root volume disk size in GB.\n","type":"number"},"eipCount":{"type":"number"},"eipIds":{"description":"List of existing elastic IP IDs.\n","items":{"type":"string"},"type":"array"},"flavorId":{"description":"The flavor id to be used.\n","type":"string"},"id":{"type":"string"},"ipType":{"description":"Elastic IP address type.\n","type":"string"},"keyPair":{"description":"Key pair name when logging in to select the key pair mode.\n","type":"string"},"name":{"type":"string"},"nodeId":{"type":"string"},"privateIp":{"description":"Private IP of the node\n","type":"string"},"publicIp":{"description":"Elastic IP parameters of the node.\n","type":"string"},"region":{"type":"string"},"runtime":{"description":"The runtime of the node.\n","type":"string"},"serverId":{"description":"The node's virtual machine ID in ECS.\n","type":"string"},"shareType":{"description":"The bandwidth sharing type.\n","type":"string"},"status":{"type":"string"},"volumeType":{"description":"Root volume disk type.\n","type":"string"}},"required":["availabilityZone","bandwidthSize","billingMode","chargeMode","clusterId","dataVolumes","diskSize","eipCount","eipIds","flavorId","id","ipType","keyPair","privateIp","publicIp","region","runtime","serverId","shareType","volumeType"],"type":"object"}},"opentelekomcloud:index/getCciConfigmapsV2:getCciConfigmapsV2":{"description":"Up-to-date reference of API arguments for CCI ConfigMap you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-container-instance/api-ref/proprietary_apis/index.html)\n\nUse this data source to get the list of CCI v2 ConfigMaps under a namespace within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst namespace = config.requireObject<any>(\"namespace\");\nconst test = opentelekomcloud.getCciConfigmapsV2({\n    namespace: namespace,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nnamespace = config.require_object(\"namespace\")\ntest = opentelekomcloud.get_cci_configmaps_v2(namespace=namespace)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var @namespace = config.RequireObject<dynamic>(\"namespace\");\n    var test = Opentelekomcloud.GetCciConfigmapsV2.Invoke(new()\n    {\n        Namespace = @namespace,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tnamespace := cfg.RequireObject(\"namespace\")\n\t\t_, err := opentelekomcloud.GetCciConfigmapsV2(ctx, &opentelekomcloud.GetCciConfigmapsV2Args{\n\t\t\tNamespace: namespace,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCciConfigmapsV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var namespace = config.get(\"namespace\");\n        final var test = OpentelekomcloudFunctions.getCciConfigmapsV2(GetCciConfigmapsV2Args.builder()\n            .namespace(namespace)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  namespace:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getCciConfigmapsV2\n      arguments:\n        namespace: ${namespace}\n```\n<!--End PulumiCodeChooser -->\n\n### Query a Single ConfigMap by Name\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst namespace = config.requireObject<any>(\"namespace\");\nconst configmapName = config.requireObject<any>(\"configmapName\");\nconst test = opentelekomcloud.getCciConfigmapsV2({\n    namespace: namespace,\n    name: configmapName,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nnamespace = config.require_object(\"namespace\")\nconfigmap_name = config.require_object(\"configmapName\")\ntest = opentelekomcloud.get_cci_configmaps_v2(namespace=namespace,\n    name=configmap_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var @namespace = config.RequireObject<dynamic>(\"namespace\");\n    var configmapName = config.RequireObject<dynamic>(\"configmapName\");\n    var test = Opentelekomcloud.GetCciConfigmapsV2.Invoke(new()\n    {\n        Namespace = @namespace,\n        Name = configmapName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tnamespace := cfg.RequireObject(\"namespace\")\n\t\tconfigmapName := cfg.RequireObject(\"configmapName\")\n\t\t_, err := opentelekomcloud.GetCciConfigmapsV2(ctx, &opentelekomcloud.GetCciConfigmapsV2Args{\n\t\t\tNamespace: namespace,\n\t\t\tName:      pulumi.StringRef(configmapName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCciConfigmapsV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var namespace = config.get(\"namespace\");\n        final var configmapName = config.get(\"configmapName\");\n        final var test = OpentelekomcloudFunctions.getCciConfigmapsV2(GetCciConfigmapsV2Args.builder()\n            .namespace(namespace)\n            .name(configmapName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  namespace:\n    type: dynamic\n  configmapName:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getCciConfigmapsV2\n      arguments:\n        namespace: ${namespace}\n        name: ${configmapName}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getCciConfigmapsV2.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"},"name":{"description":"Specifies the name of the ConfigMap used to query a single ConfigMap.\nIf omitted, all ConfigMaps under the namespace are returned.\n","type":"string"},"namespace":{"description":"Specifies the namespace to which the ConfigMaps belong.\n","type":"string"}},"required":["namespace"],"type":"object"},"outputs":{"description":"A collection of values returned by getCciConfigmapsV2.\n","properties":{"configMaps":{"description":"The list of ConfigMaps. The<span pulumi-lang-nodejs=\" configMaps \" pulumi-lang-dotnet=\" ConfigMaps \" pulumi-lang-go=\" configMaps \" pulumi-lang-python=\" config_maps \" pulumi-lang-yaml=\" configMaps \" pulumi-lang-java=\" configMaps \"> config_maps </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetCciConfigmapsV2ConfigMap:getCciConfigmapsV2ConfigMap"},"type":"array"},"id":{"description":"The data source ID.\n","type":"string"},"name":{"description":"The name of the ConfigMap.\n","type":"string"},"namespace":{"description":"The namespace to which the ConfigMap belongs.\n","type":"string"},"region":{"description":"The region in which the ConfigMaps are queried.\n","type":"string"}},"required":["configMaps","id","namespace","region"],"type":"object"}},"opentelekomcloud:index/getCciNamespacesV2:getCciNamespacesV2":{"description":"Up-to-date reference of API arguments for CCI namespace you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-container-instance/api-ref/proprietary_apis/index.html)\n\nUse this data source to get the list of CCI v2 namespaces within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst all = opentelekomcloud.getCciNamespacesV2({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nall = opentelekomcloud.get_cci_namespaces_v2()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var all = Opentelekomcloud.GetCciNamespacesV2.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetCciNamespacesV2(ctx, &opentelekomcloud.GetCciNamespacesV2Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCciNamespacesV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var all = OpentelekomcloudFunctions.getCciNamespacesV2(GetCciNamespacesV2Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  all:\n    fn::invoke:\n      function: opentelekomcloud:getCciNamespacesV2\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst name = config.requireObject<any>(\"name\");\nconst byName = opentelekomcloud.getCciNamespacesV2({\n    name: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nname = config.require_object(\"name\")\nby_name = opentelekomcloud.get_cci_namespaces_v2(name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var name = config.RequireObject<dynamic>(\"name\");\n    var byName = Opentelekomcloud.GetCciNamespacesV2.Invoke(new()\n    {\n        Name = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := cfg.RequireObject(\"name\")\n\t\t_, err := opentelekomcloud.GetCciNamespacesV2(ctx, &opentelekomcloud.GetCciNamespacesV2Args{\n\t\t\tName: pulumi.StringRef(name),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCciNamespacesV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\");\n        final var byName = OpentelekomcloudFunctions.getCciNamespacesV2(GetCciNamespacesV2Args.builder()\n            .name(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: dynamic\nvariables:\n  byName:\n    fn::invoke:\n      function: opentelekomcloud:getCciNamespacesV2\n      arguments:\n        name: ${name}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getCciNamespacesV2.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"},"name":{"description":"Specifies the name of the namespace used to query the namespace detail.\nIf omitted, the list of all namespaces is returned.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCciNamespacesV2.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"},"name":{"description":"The name of the namespace.\n","type":"string"},"namespaces":{"description":"The list of namespaces. The namespaces structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetCciNamespacesV2Namespace:getCciNamespacesV2Namespace"},"type":"array"},"region":{"description":"The region in which the namespaces are queried.\n","type":"string"}},"required":["id","namespaces","region"],"type":"object"}},"opentelekomcloud:index/getCciNetworksV2:getCciNetworksV2":{"description":"Up-to-date reference of API arguments for CCI network you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-container-instance/api-ref/proprietary_apis/index.html)\n\nUse this data source to get the list of CCI v2 networks under a namespace within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst namespace = config.requireObject<any>(\"namespace\");\nconst test = opentelekomcloud.getCciNetworksV2({\n    namespace: namespace,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nnamespace = config.require_object(\"namespace\")\ntest = opentelekomcloud.get_cci_networks_v2(namespace=namespace)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var @namespace = config.RequireObject<dynamic>(\"namespace\");\n    var test = Opentelekomcloud.GetCciNetworksV2.Invoke(new()\n    {\n        Namespace = @namespace,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tnamespace := cfg.RequireObject(\"namespace\")\n\t\t_, err := opentelekomcloud.GetCciNetworksV2(ctx, &opentelekomcloud.GetCciNetworksV2Args{\n\t\t\tNamespace: namespace,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCciNetworksV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var namespace = config.get(\"namespace\");\n        final var test = OpentelekomcloudFunctions.getCciNetworksV2(GetCciNetworksV2Args.builder()\n            .namespace(namespace)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  namespace:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getCciNetworksV2\n      arguments:\n        namespace: ${namespace}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getCciNetworksV2.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"},"namespace":{"description":"Specifies the namespace to which the networks belong.\n","type":"string"}},"required":["namespace"],"type":"object"},"outputs":{"description":"A collection of values returned by getCciNetworksV2.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"},"namespace":{"description":"The namespace to which the network belongs.\n","type":"string"},"networks":{"description":"The list of networks. The networks structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetCciNetworksV2Network:getCciNetworksV2Network"},"type":"array"},"region":{"description":"The region in which the networks are queried.\n","type":"string"}},"required":["id","namespace","networks","region"],"type":"object"}},"opentelekomcloud:index/getCciPodsV2:getCciPodsV2":{"description":"Up-to-date reference of API arguments for CCI Pod you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-container-instance/api-ref/proprietary_apis/index.html)\n\nUse this data source to get the list of CCI v2 Pods under a namespace within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst namespace = config.requireObject<any>(\"namespace\");\nconst test = opentelekomcloud.getCciPodsV2({\n    namespace: namespace,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nnamespace = config.require_object(\"namespace\")\ntest = opentelekomcloud.get_cci_pods_v2(namespace=namespace)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var @namespace = config.RequireObject<dynamic>(\"namespace\");\n    var test = Opentelekomcloud.GetCciPodsV2.Invoke(new()\n    {\n        Namespace = @namespace,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tnamespace := cfg.RequireObject(\"namespace\")\n\t\t_, err := opentelekomcloud.GetCciPodsV2(ctx, &opentelekomcloud.GetCciPodsV2Args{\n\t\t\tNamespace: namespace,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCciPodsV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var namespace = config.get(\"namespace\");\n        final var test = OpentelekomcloudFunctions.getCciPodsV2(GetCciPodsV2Args.builder()\n            .namespace(namespace)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  namespace:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getCciPodsV2\n      arguments:\n        namespace: ${namespace}\n```\n<!--End PulumiCodeChooser -->\n\n### Query a Single Pod by Name\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst namespace = config.requireObject<any>(\"namespace\");\nconst podName = config.requireObject<any>(\"podName\");\nconst test = opentelekomcloud.getCciPodsV2({\n    namespace: namespace,\n    name: podName,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nnamespace = config.require_object(\"namespace\")\npod_name = config.require_object(\"podName\")\ntest = opentelekomcloud.get_cci_pods_v2(namespace=namespace,\n    name=pod_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var @namespace = config.RequireObject<dynamic>(\"namespace\");\n    var podName = config.RequireObject<dynamic>(\"podName\");\n    var test = Opentelekomcloud.GetCciPodsV2.Invoke(new()\n    {\n        Namespace = @namespace,\n        Name = podName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tnamespace := cfg.RequireObject(\"namespace\")\n\t\tpodName := cfg.RequireObject(\"podName\")\n\t\t_, err := opentelekomcloud.GetCciPodsV2(ctx, &opentelekomcloud.GetCciPodsV2Args{\n\t\t\tNamespace: namespace,\n\t\t\tName:      pulumi.StringRef(podName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCciPodsV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var namespace = config.get(\"namespace\");\n        final var podName = config.get(\"podName\");\n        final var test = OpentelekomcloudFunctions.getCciPodsV2(GetCciPodsV2Args.builder()\n            .namespace(namespace)\n            .name(podName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  namespace:\n    type: dynamic\n  podName:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getCciPodsV2\n      arguments:\n        namespace: ${namespace}\n        name: ${podName}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getCciPodsV2.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"},"name":{"description":"Specifies the name of the Pod used to query a single Pod.\nIf omitted, all Pods under the namespace are returned.\n","type":"string"},"namespace":{"description":"Specifies the namespace to which the Pods belong.\n","type":"string"}},"required":["namespace"],"type":"object"},"outputs":{"description":"A collection of values returned by getCciPodsV2.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"},"name":{"description":"The name of the referenced Secret.\n","type":"string"},"namespace":{"description":"The namespace to which the Pod belongs.\n","type":"string"},"pods":{"description":"The list of Pods. The pods structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetCciPodsV2Pod:getCciPodsV2Pod"},"type":"array"},"region":{"description":"The region in which the Pods are queried.\n","type":"string"}},"required":["id","namespace","pods","region"],"type":"object"}},"opentelekomcloud:index/getCciSecretsV2:getCciSecretsV2":{"description":"Up-to-date reference of API arguments for CCI Secret you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-container-instance/api-ref/proprietary_apis/index.html)\n\nUse this data source to get the list of CCI v2 Secrets under a namespace within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst namespace = config.requireObject<any>(\"namespace\");\nconst test = opentelekomcloud.getCciSecretsV2({\n    namespace: namespace,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nnamespace = config.require_object(\"namespace\")\ntest = opentelekomcloud.get_cci_secrets_v2(namespace=namespace)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var @namespace = config.RequireObject<dynamic>(\"namespace\");\n    var test = Opentelekomcloud.GetCciSecretsV2.Invoke(new()\n    {\n        Namespace = @namespace,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tnamespace := cfg.RequireObject(\"namespace\")\n\t\t_, err := opentelekomcloud.GetCciSecretsV2(ctx, &opentelekomcloud.GetCciSecretsV2Args{\n\t\t\tNamespace: namespace,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCciSecretsV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var namespace = config.get(\"namespace\");\n        final var test = OpentelekomcloudFunctions.getCciSecretsV2(GetCciSecretsV2Args.builder()\n            .namespace(namespace)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  namespace:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getCciSecretsV2\n      arguments:\n        namespace: ${namespace}\n```\n<!--End PulumiCodeChooser -->\n\n### Query a Single Secret by Name\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst namespace = config.requireObject<any>(\"namespace\");\nconst secretName = config.requireObject<any>(\"secretName\");\nconst test = opentelekomcloud.getCciSecretsV2({\n    namespace: namespace,\n    name: secretName,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nnamespace = config.require_object(\"namespace\")\nsecret_name = config.require_object(\"secretName\")\ntest = opentelekomcloud.get_cci_secrets_v2(namespace=namespace,\n    name=secret_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var @namespace = config.RequireObject<dynamic>(\"namespace\");\n    var secretName = config.RequireObject<dynamic>(\"secretName\");\n    var test = Opentelekomcloud.GetCciSecretsV2.Invoke(new()\n    {\n        Namespace = @namespace,\n        Name = secretName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tnamespace := cfg.RequireObject(\"namespace\")\n\t\tsecretName := cfg.RequireObject(\"secretName\")\n\t\t_, err := opentelekomcloud.GetCciSecretsV2(ctx, &opentelekomcloud.GetCciSecretsV2Args{\n\t\t\tNamespace: namespace,\n\t\t\tName:      pulumi.StringRef(secretName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCciSecretsV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var namespace = config.get(\"namespace\");\n        final var secretName = config.get(\"secretName\");\n        final var test = OpentelekomcloudFunctions.getCciSecretsV2(GetCciSecretsV2Args.builder()\n            .namespace(namespace)\n            .name(secretName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  namespace:\n    type: dynamic\n  secretName:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getCciSecretsV2\n      arguments:\n        namespace: ${namespace}\n        name: ${secretName}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getCciSecretsV2.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"},"name":{"description":"Specifies the name of the Secret used to query a single Secret.\nIf omitted, all Secrets under the namespace are returned.\n","type":"string"},"namespace":{"description":"Specifies the namespace to which the Secrets belong.\n","type":"string"}},"required":["namespace"],"type":"object"},"outputs":{"description":"A collection of values returned by getCciSecretsV2.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"},"name":{"description":"The name of the Secret.\n","type":"string"},"namespace":{"description":"The namespace to which the Secret belongs.\n","type":"string"},"region":{"description":"The region in which the Secrets are queried.\n","type":"string"},"secrets":{"description":"The list of Secrets. The secrets structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetCciSecretsV2Secret:getCciSecretsV2Secret"},"type":"array"}},"required":["id","namespace","region","secrets"],"type":"object"}},"opentelekomcloud:index/getCesAlarmRulesV2:getCesAlarmRulesV2":{"description":"Up-to-date reference of API arguments for CES alarm rules you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-eye/api-ref/api_v2/alarm_rules/index.html)\n\nUse this data source to get the list of CES alarm rules within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst all = opentelekomcloud.getCesAlarmRulesV2({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nall = opentelekomcloud.get_ces_alarm_rules_v2()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var all = Opentelekomcloud.GetCesAlarmRulesV2.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetCesAlarmRulesV2(ctx, &opentelekomcloud.GetCesAlarmRulesV2Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCesAlarmRulesV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var all = OpentelekomcloudFunctions.getCesAlarmRulesV2(GetCesAlarmRulesV2Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  all:\n    fn::invoke:\n      function: opentelekomcloud:getCesAlarmRulesV2\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n\n### Filter by alarm rule name\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst byName = opentelekomcloud.getCesAlarmRulesV2({\n    name: \"my-alarm-rule\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nby_name = opentelekomcloud.get_ces_alarm_rules_v2(name=\"my-alarm-rule\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var byName = Opentelekomcloud.GetCesAlarmRulesV2.Invoke(new()\n    {\n        Name = \"my-alarm-rule\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetCesAlarmRulesV2(ctx, &opentelekomcloud.GetCesAlarmRulesV2Args{\n\t\t\tName: pulumi.StringRef(\"my-alarm-rule\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCesAlarmRulesV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var byName = OpentelekomcloudFunctions.getCesAlarmRulesV2(GetCesAlarmRulesV2Args.builder()\n            .name(\"my-alarm-rule\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  byName:\n    fn::invoke:\n      function: opentelekomcloud:getCesAlarmRulesV2\n      arguments:\n        name: my-alarm-rule\n```\n<!--End PulumiCodeChooser -->\n\n### Filter by namespace\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst byNamespace = opentelekomcloud.getCesAlarmRulesV2({\n    namespace: \"SYS.ECS\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nby_namespace = opentelekomcloud.get_ces_alarm_rules_v2(namespace=\"SYS.ECS\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var byNamespace = Opentelekomcloud.GetCesAlarmRulesV2.Invoke(new()\n    {\n        Namespace = \"SYS.ECS\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetCesAlarmRulesV2(ctx, &opentelekomcloud.GetCesAlarmRulesV2Args{\n\t\t\tNamespace: pulumi.StringRef(\"SYS.ECS\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCesAlarmRulesV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var byNamespace = OpentelekomcloudFunctions.getCesAlarmRulesV2(GetCesAlarmRulesV2Args.builder()\n            .namespace(\"SYS.ECS\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  byNamespace:\n    fn::invoke:\n      function: opentelekomcloud:getCesAlarmRulesV2\n      arguments:\n        namespace: SYS.ECS\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getCesAlarmRulesV2.\n","properties":{"alarmId":{"description":"Specifies the alarm rule ID.\n","type":"string"},"id":{"description":"The data source ID.\n","type":"string"},"name":{"description":"Specifies the name of an alarm rule.\n","type":"string"},"namespace":{"description":"Specifies the namespace of a service.\n","type":"string"},"resourceId":{"description":"Specifies the alarm resource ID.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCesAlarmRulesV2.\n","properties":{"alarmId":{"description":"The alarm rule ID.\n","type":"string"},"alarms":{"description":"The alarm rule list.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetCesAlarmRulesV2Alarm:getCesAlarmRulesV2Alarm"},"type":"array"},"id":{"description":"The data source ID.\n","type":"string"},"name":{"description":"The name of the metric dimension.\n","type":"string"},"namespace":{"description":"The namespace of a service.\n","type":"string"},"resourceId":{"type":"string"}},"required":["alarms","id"],"type":"object"}},"opentelekomcloud:index/getCesEventDetailsV1:getCesEventDetailsV1":{"description":"Up-to-date reference of API arguments for CES event details v1 you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-eye/api-ref/api_description/event_monitoring/index.html)\n\nGet details about a CES event within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst eventDetails1 = opentelekomcloud.getCesEventDetailsV1({\n    eventName: \"Test_Acc_tf_event\",\n    eventType: \"EVENT.CUSTOM\",\n    from: 1257893000000,\n    to: 1257895000000,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nevent_details1 = opentelekomcloud.get_ces_event_details_v1(event_name=\"Test_Acc_tf_event\",\n    event_type=\"EVENT.CUSTOM\",\n    from_=1257893000000,\n    to=1257895000000)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var eventDetails1 = Opentelekomcloud.GetCesEventDetailsV1.Invoke(new()\n    {\n        EventName = \"Test_Acc_tf_event\",\n        EventType = \"EVENT.CUSTOM\",\n        From = 1257893000000,\n        To = 1257895000000,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetCesEventDetailsV1(ctx, &opentelekomcloud.GetCesEventDetailsV1Args{\n\t\t\tEventName: \"Test_Acc_tf_event\",\n\t\t\tEventType: \"EVENT.CUSTOM\",\n\t\t\tFrom:      pulumi.Float64Ref(1257893000000),\n\t\t\tTo:        pulumi.Float64Ref(1257895000000),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCesEventDetailsV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var eventDetails1 = OpentelekomcloudFunctions.getCesEventDetailsV1(GetCesEventDetailsV1Args.builder()\n            .eventName(\"Test_Acc_tf_event\")\n            .eventType(\"EVENT.CUSTOM\")\n            .from(1257893000000)\n            .to(1257895000000)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  eventDetails1:\n    fn::invoke:\n      function: opentelekomcloud:getCesEventDetailsV1\n      arguments:\n        eventName: Test_Acc_tf_event\n        eventType: EVENT.CUSTOM\n        from: 1.257893e+12\n        to: 1.257895e+12\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getCesEventDetailsV1.\n","properties":{"eventLevel":{"description":"Specifies the event severity. The value can be `Critical`, `Major`, `Minor`, or `Info`.\n","type":"string"},"eventName":{"description":"Specifies the event name.\n","type":"string"},"eventSource":{"description":"Specifies the event name. The name can be a system event name or a custom event name.\n","type":"string"},"eventState":{"description":"Specifies the event status. The value can be <span pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\">`normal`</span>, <span pulumi-lang-nodejs=\"`warning`\" pulumi-lang-dotnet=\"`Warning`\" pulumi-lang-go=\"`warning`\" pulumi-lang-python=\"`warning`\" pulumi-lang-yaml=\"`warning`\" pulumi-lang-java=\"`warning`\">`warning`</span>, or <span pulumi-lang-nodejs=\"`incident`\" pulumi-lang-dotnet=\"`Incident`\" pulumi-lang-go=\"`incident`\" pulumi-lang-python=\"`incident`\" pulumi-lang-yaml=\"`incident`\" pulumi-lang-java=\"`incident`\">`incident`</span>.\n","type":"string"},"eventType":{"description":"Specifies the event type. The value can be `EVENT.SYS` (system event) or `EVENT.CUSTOM` (custom event).\n","type":"string"},"eventUser":{"description":"Specifies the name of the user who reports the event monitoring data. It can also be a project ID.\n","type":"string"},"from":{"description":"Specifies the start time of the query, which is a UNIX timestamp (ms).\n","type":"number"},"id":{"type":"string"},"limit":{"description":"Specifies the maximum number of records that can be queried at a time. Supported range: <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\">`100`</span> (default)\n","type":"number"},"to":{"description":"Specifies the end time of the query, which is a UNIX timestamp (ms).\n","type":"number"}},"required":["eventName","eventType"],"type":"object"},"outputs":{"description":"A collection of values returned by getCesEventDetailsV1.\n","properties":{"eventInfos":{"description":"Specifies details of one or more events. The structure is described below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetCesEventDetailsV1EventInfo:getCesEventDetailsV1EventInfo"},"type":"array"},"eventLevel":{"description":"Specifies the event severity.\n","type":"string"},"eventName":{"description":"Specifies the event name.\n","type":"string"},"eventSource":{"description":"Specifies the event source in the format of service.item.\n","type":"string"},"eventSources":{"description":"Specifies the event source. For a system event, the source is the namespace of each service.\n","items":{"type":"string"},"type":"array"},"eventState":{"description":"Specifies the event status.\n","type":"string"},"eventType":{"description":"Specifies the event type.\n","type":"string"},"eventUser":{"description":"Specifies the event user.\n","type":"string"},"eventUsers":{"description":"Specifies the name of the user who reports the event. It can also be a project ID.\n","items":{"type":"string"},"type":"array"},"from":{"type":"number"},"id":{"type":"string"},"limit":{"type":"number"},"metaDatas":{"description":"Specifies the number of metadata records in the query result. The structure is described below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetCesEventDetailsV1MetaData:getCesEventDetailsV1MetaData"},"type":"array"},"to":{"type":"number"}},"required":["eventInfos","eventName","eventSources","eventType","eventUsers","id","metaDatas"],"type":"object"}},"opentelekomcloud:index/getCesEventsV1:getCesEventsV1":{"description":"Up-to-date reference of API arguments for CES events v1 you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-eye/api-ref/api_description/event_monitoring/index.html)\n\nGet details about CES events within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst events1 = opentelekomcloud.getCesEventsV1({\n    eventType: \"EVENT.CUSTOM\",\n    from: 1257893000000,\n    to: 1257895000000,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nevents1 = opentelekomcloud.get_ces_events_v1(event_type=\"EVENT.CUSTOM\",\n    from_=1257893000000,\n    to=1257895000000)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var events1 = Opentelekomcloud.GetCesEventsV1.Invoke(new()\n    {\n        EventType = \"EVENT.CUSTOM\",\n        From = 1257893000000,\n        To = 1257895000000,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetCesEventsV1(ctx, &opentelekomcloud.GetCesEventsV1Args{\n\t\t\tEventType: pulumi.StringRef(\"EVENT.CUSTOM\"),\n\t\t\tFrom:      pulumi.Float64Ref(1257893000000),\n\t\t\tTo:        pulumi.Float64Ref(1257895000000),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCesEventsV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var events1 = OpentelekomcloudFunctions.getCesEventsV1(GetCesEventsV1Args.builder()\n            .eventType(\"EVENT.CUSTOM\")\n            .from(1257893000000)\n            .to(1257895000000)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  events1:\n    fn::invoke:\n      function: opentelekomcloud:getCesEventsV1\n      arguments:\n        eventType: EVENT.CUSTOM\n        from: 1.257893e+12\n        to: 1.257895e+12\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getCesEventsV1.\n","properties":{"eventName":{"description":"Specifies the event name.\n","type":"string"},"eventType":{"description":"Specifies the event type. The value can be `EVENT.SYS` (system event) or `EVENT.CUSTOM` (custom event).\n","type":"string"},"from":{"description":"Specifies the start time of the query, which is a UNIX timestamp (ms).\n","type":"number"},"id":{"type":"string"},"limit":{"description":"Specifies the maximum number of records that can be queried at a time. Supported range: <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\">`100`</span> (default)\n","type":"number"},"to":{"description":"Specifies the end time of the query, which is a UNIX timestamp (ms).\n","type":"number"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCesEventsV1.\n","properties":{"eventName":{"description":"Specifies the event name.\n","type":"string"},"eventType":{"description":"Specifies the event type.\n","type":"string"},"events":{"description":"Specifies one or more pieces of event data. The structure is described below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetCesEventsV1Event:getCesEventsV1Event"},"type":"array"},"from":{"type":"number"},"id":{"type":"string"},"limit":{"type":"number"},"metaDatas":{"description":"Specifies the number of metadata records in the query result. The structure is described below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetCesEventsV1MetaData:getCesEventsV1MetaData"},"type":"array"},"to":{"type":"number"}},"required":["events","id","metaDatas"],"type":"object"}},"opentelekomcloud:index/getCesMetricDataV1:getCesMetricDataV1":{"description":"Up-to-date reference of API arguments for CES metric data v1 you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-eye/api-ref/api_description/monitoring_data/index.html)\n\nGet details about CES metric data within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst metricData1 = opentelekomcloud.getCesMetricDataV1({\n    namespace: \"TEST.TF_ACC\",\n    metricName: \"cpu_util\",\n    from: \"1257892000000\",\n    to: \"1257895000000\",\n    period: 1,\n    filter: \"average\",\n    dim0: \"instance_id,72d1377e-09e4-47bd-8ea4-71a815d4815d\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nmetric_data1 = opentelekomcloud.get_ces_metric_data_v1(namespace=\"TEST.TF_ACC\",\n    metric_name=\"cpu_util\",\n    from_=\"1257892000000\",\n    to=\"1257895000000\",\n    period=1,\n    filter=\"average\",\n    dim0=\"instance_id,72d1377e-09e4-47bd-8ea4-71a815d4815d\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var metricData1 = Opentelekomcloud.GetCesMetricDataV1.Invoke(new()\n    {\n        Namespace = \"TEST.TF_ACC\",\n        MetricName = \"cpu_util\",\n        From = \"1257892000000\",\n        To = \"1257895000000\",\n        Period = 1,\n        Filter = \"average\",\n        Dim0 = \"instance_id,72d1377e-09e4-47bd-8ea4-71a815d4815d\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupCesMetricDataV1(ctx, &opentelekomcloud.LookupCesMetricDataV1Args{\n\t\t\tNamespace:  \"TEST.TF_ACC\",\n\t\t\tMetricName: \"cpu_util\",\n\t\t\tFrom:       \"1257892000000\",\n\t\t\tTo:         \"1257895000000\",\n\t\t\tPeriod:     1,\n\t\t\tFilter:     \"average\",\n\t\t\tDim0:       \"instance_id,72d1377e-09e4-47bd-8ea4-71a815d4815d\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCesMetricDataV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var metricData1 = OpentelekomcloudFunctions.getCesMetricDataV1(GetCesMetricDataV1Args.builder()\n            .namespace(\"TEST.TF_ACC\")\n            .metricName(\"cpu_util\")\n            .from(\"1257892000000\")\n            .to(\"1257895000000\")\n            .period(1)\n            .filter(\"average\")\n            .dim0(\"instance_id,72d1377e-09e4-47bd-8ea4-71a815d4815d\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  metricData1:\n    fn::invoke:\n      function: opentelekomcloud:getCesMetricDataV1\n      arguments:\n        namespace: TEST.TF_ACC\n        metricName: cpu_util\n        from: '1257892000000'\n        to: '1257895000000'\n        period: 1\n        filter: average\n        dim0: instance_id,72d1377e-09e4-47bd-8ea4-71a815d4815d\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getCesMetricDataV1.\n","properties":{"dim0":{"description":"Specifies the metric dimension. The format is `key,value`. <span pulumi-lang-nodejs=\"`key`\" pulumi-lang-dotnet=\"`Key`\" pulumi-lang-go=\"`key`\" pulumi-lang-python=\"`key`\" pulumi-lang-yaml=\"`key`\" pulumi-lang-java=\"`key`\">`key`</span> cannot exceed 32 characters and <span pulumi-lang-nodejs=\"`value`\" pulumi-lang-dotnet=\"`Value`\" pulumi-lang-go=\"`value`\" pulumi-lang-python=\"`value`\" pulumi-lang-yaml=\"`value`\" pulumi-lang-java=\"`value`\">`value`</span> cannot exceed 256 characters. For example: `instance_id,72d1377e-09e4-47bd-8ea4-71a815d4815d`\n","type":"string"},"dim1":{"description":"Specifies the additional metric dimension. The format is same as <span pulumi-lang-nodejs=\"`dim0`\" pulumi-lang-dotnet=\"`Dim0`\" pulumi-lang-go=\"`dim0`\" pulumi-lang-python=\"`dim0`\" pulumi-lang-yaml=\"`dim0`\" pulumi-lang-java=\"`dim0`\">`dim0`</span>.\n","type":"string"},"filter":{"description":"Specifies the data rollup method. Possible values are:\n","type":"string"},"from":{"description":"Specifies the start time of the query. The time is a UNIX timestamp and the unit is ms. Rollup aggregates the raw data generated within a period to the start time of the period. If <span pulumi-lang-nodejs=\"`from`\" pulumi-lang-dotnet=\"`From`\" pulumi-lang-go=\"`from`\" pulumi-lang-python=\"`from`\" pulumi-lang-yaml=\"`from`\" pulumi-lang-java=\"`from`\">`from`</span> and <span pulumi-lang-nodejs=\"`to`\" pulumi-lang-dotnet=\"`To`\" pulumi-lang-go=\"`to`\" pulumi-lang-python=\"`to`\" pulumi-lang-yaml=\"`to`\" pulumi-lang-java=\"`to`\">`to`</span> are within a period, the query result will be empty due to the rollup failure. Set <span pulumi-lang-nodejs=\"`from`\" pulumi-lang-dotnet=\"`From`\" pulumi-lang-go=\"`from`\" pulumi-lang-python=\"`from`\" pulumi-lang-yaml=\"`from`\" pulumi-lang-java=\"`from`\">`from`</span> to at least one period earlier than the current time. Take the 5-minute period as an example. If it is 10:35 now, the raw data generated between 10:30 and 10:35 will be aggregated to 10:30. In this example, if period is 5 minutes, from should be 10:30.\n","type":"string"},"id":{"type":"string"},"metricName":{"description":"Specifies the metric name.\n","type":"string"},"namespace":{"description":"Specifies the namespace of a service.\n","type":"string"},"period":{"description":"Specifies how often Cloud Eye aggregates data. Possible values are:\n","type":"number"},"to":{"description":"Specifies the end time of the query. The time is a UNIX timestamp and the unit is ms. <span pulumi-lang-nodejs=\"`from`\" pulumi-lang-dotnet=\"`From`\" pulumi-lang-go=\"`from`\" pulumi-lang-python=\"`from`\" pulumi-lang-yaml=\"`from`\" pulumi-lang-java=\"`from`\">`from`</span> must be earlier than <span pulumi-lang-nodejs=\"`to`\" pulumi-lang-dotnet=\"`To`\" pulumi-lang-go=\"`to`\" pulumi-lang-python=\"`to`\" pulumi-lang-yaml=\"`to`\" pulumi-lang-java=\"`to`\">`to`</span>.\n","type":"string"}},"required":["dim0","filter","from","metricName","namespace","period","to"],"type":"object"},"outputs":{"description":"A collection of values returned by getCesMetricDataV1.\n","properties":{"datapoints":{"description":"Specifies the metric data list. Since Cloud Eye rounds up from based on the level of granularity for data query, datapoints may contain more data points than expected. The structure is described below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetCesMetricDataV1Datapoint:getCesMetricDataV1Datapoint"},"type":"array"},"dim0":{"type":"string"},"dim1":{"type":"string"},"filter":{"type":"string"},"from":{"type":"string"},"id":{"type":"string"},"metricName":{"type":"string"},"namespace":{"type":"string"},"period":{"type":"number"},"to":{"type":"string"}},"required":["datapoints","dim0","filter","from","id","metricName","namespace","period","to"],"type":"object"}},"opentelekomcloud:index/getCesMetricsV1:getCesMetricsV1":{"description":"Up-to-date reference of API arguments for CES metrics v1 you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-eye/api-ref/api_description/metrics/index.html)\n\nGet details about CES metrics within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst metrics1 = opentelekomcloud.getCesMetricsV1({\n    namespace: \"SYS.ECS\",\n    metricName: \"cpu_util\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nmetrics1 = opentelekomcloud.get_ces_metrics_v1(namespace=\"SYS.ECS\",\n    metric_name=\"cpu_util\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var metrics1 = Opentelekomcloud.GetCesMetricsV1.Invoke(new()\n    {\n        Namespace = \"SYS.ECS\",\n        MetricName = \"cpu_util\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetCesMetricsV1(ctx, &opentelekomcloud.GetCesMetricsV1Args{\n\t\t\tNamespace:  pulumi.StringRef(\"SYS.ECS\"),\n\t\t\tMetricName: pulumi.StringRef(\"cpu_util\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCesMetricsV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var metrics1 = OpentelekomcloudFunctions.getCesMetricsV1(GetCesMetricsV1Args.builder()\n            .namespace(\"SYS.ECS\")\n            .metricName(\"cpu_util\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  metrics1:\n    fn::invoke:\n      function: opentelekomcloud:getCesMetricsV1\n      arguments:\n        namespace: SYS.ECS\n        metricName: cpu_util\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getCesMetricsV1.\n","properties":{"dim":{"description":"Specifies the dimension. A maximum of three dimensions are supported, and the dimensions are numbered from <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> in `dim.{i}=key,value` format. key cannot exceed <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> characters and value cannot exceed 256 characters.\nSingle dimension: `dim.0=instance_id,xxxx-xxxx-xxxx`,\nMultiple dimensions: `dim.0=key,value&dim.1=key,value`\n","type":"string"},"id":{"type":"string"},"limit":{"description":"Specifies the maximum number of records that can be queried at a time. Supported range: <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\">`1000`</span> (default)\n","type":"number"},"metricName":{"description":"Specifies the metric ID.\n","type":"string"},"namespace":{"description":"Specifies the namespace of a service.\n","type":"string"},"order":{"description":"Specifies the result sorting method, which is sorted by timestamp. The default method is <span pulumi-lang-nodejs=\"`desc`\" pulumi-lang-dotnet=\"`Desc`\" pulumi-lang-go=\"`desc`\" pulumi-lang-python=\"`desc`\" pulumi-lang-yaml=\"`desc`\" pulumi-lang-java=\"`desc`\">`desc`</span>. Supported values:\n<span pulumi-lang-nodejs=\"`asc`\" pulumi-lang-dotnet=\"`Asc`\" pulumi-lang-go=\"`asc`\" pulumi-lang-python=\"`asc`\" pulumi-lang-yaml=\"`asc`\" pulumi-lang-java=\"`asc`\">`asc`</span>: The query results are displayed in the ascending order.\n<span pulumi-lang-nodejs=\"`desc`\" pulumi-lang-dotnet=\"`Desc`\" pulumi-lang-go=\"`desc`\" pulumi-lang-python=\"`desc`\" pulumi-lang-yaml=\"`desc`\" pulumi-lang-java=\"`desc`\">`desc`</span>: The query results are displayed in the descending order.\n\n> **NOTE:**\n<span pulumi-lang-nodejs=\"`namespaces`\" pulumi-lang-dotnet=\"`Namespaces`\" pulumi-lang-go=\"`namespaces`\" pulumi-lang-python=\"`namespaces`\" pulumi-lang-yaml=\"`namespaces`\" pulumi-lang-java=\"`namespaces`\">`namespaces`</span> and <span pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\">`dimensions`</span> are available on our github link or [official documentation](https://docs.otc.t-systems.com/cloud-eye/api-ref/appendix/services_interconnected_with_cloud_eye.html).\n","type":"string"},"start":{"description":"Specifies the paging start value. The format is `namespace.metric_name.key:value`.\nExample: start=SYS.ECS.cpu_util.instance_id:d9112af5-6913-4f3b-bd0a-3f96711e004d.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCesMetricsV1.\n","properties":{"dim":{"type":"string"},"id":{"type":"string"},"limit":{"type":"number"},"metaDatas":{"description":"Specifies the metadata of query results, including the pagination information. The structure is described below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetCesMetricsV1MetaData:getCesMetricsV1MetaData"},"type":"array"},"metricName":{"description":"Specifies the metric name, such as cpu_util.\n","type":"string"},"metrics":{"description":"Specifies the list of metric objects. The structure is described below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetCesMetricsV1Metric:getCesMetricsV1Metric"},"type":"array"},"namespace":{"description":"Specifies the metric namespace.\n","type":"string"},"order":{"type":"string"},"start":{"type":"string"}},"required":["id","metaDatas","metrics"],"type":"object"}},"opentelekomcloud:index/getCesMultipleMetricDataV1:getCesMultipleMetricDataV1":{"description":"Up-to-date reference of API arguments for CES multiple metric data v1 you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-eye/api-ref/api_description/monitoring_data/index.html)\n\nGet details about CES metric data in a batch within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst metricData1 = opentelekomcloud.getCesMultipleMetricDataV1({\n    metrics: [{\n        namespace: \"TEST.TF_ACC\",\n        metricName: \"cpu_util\",\n        dimensions: [{\n            name: \"instance_id\",\n            value: \"72d1377e-09e4-47bd-8ea4-71a815d4815d\",\n        }],\n    }],\n    from: 1257892000000,\n    to: 1257895000000,\n    period: \"1\",\n    filter: \"average\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nmetric_data1 = opentelekomcloud.get_ces_multiple_metric_data_v1(metrics=[{\n        \"namespace\": \"TEST.TF_ACC\",\n        \"metric_name\": \"cpu_util\",\n        \"dimensions\": [{\n            \"name\": \"instance_id\",\n            \"value\": \"72d1377e-09e4-47bd-8ea4-71a815d4815d\",\n        }],\n    }],\n    from_=1257892000000,\n    to=1257895000000,\n    period=\"1\",\n    filter=\"average\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var metricData1 = Opentelekomcloud.GetCesMultipleMetricDataV1.Invoke(new()\n    {\n        Metrics = new[]\n        {\n            new Opentelekomcloud.Inputs.GetCesMultipleMetricDataV1MetricInputArgs\n            {\n                Namespace = \"TEST.TF_ACC\",\n                MetricName = \"cpu_util\",\n                Dimensions = new[]\n                {\n                    new Opentelekomcloud.Inputs.GetCesMultipleMetricDataV1MetricDimensionInputArgs\n                    {\n                        Name = \"instance_id\",\n                        Value = \"72d1377e-09e4-47bd-8ea4-71a815d4815d\",\n                    },\n                },\n            },\n        },\n        From = 1257892000000,\n        To = 1257895000000,\n        Period = \"1\",\n        Filter = \"average\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetCesMultipleMetricDataV1(ctx, &opentelekomcloud.GetCesMultipleMetricDataV1Args{\n\t\t\tMetrics: []opentelekomcloud.GetCesMultipleMetricDataV1Metric{\n\t\t\t\t{\n\t\t\t\t\tNamespace:  \"TEST.TF_ACC\",\n\t\t\t\t\tMetricName: \"cpu_util\",\n\t\t\t\t\tDimensions: []opentelekomcloud.GetCesMultipleMetricDataV1MetricDimension{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tName:  \"instance_id\",\n\t\t\t\t\t\t\tValue: \"72d1377e-09e4-47bd-8ea4-71a815d4815d\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tFrom:   1257892000000,\n\t\t\tTo:     1257895000000,\n\t\t\tPeriod: \"1\",\n\t\t\tFilter: \"average\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCesMultipleMetricDataV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var metricData1 = OpentelekomcloudFunctions.getCesMultipleMetricDataV1(GetCesMultipleMetricDataV1Args.builder()\n            .metrics(GetCesMultipleMetricDataV1MetricArgs.builder()\n                .namespace(\"TEST.TF_ACC\")\n                .metricName(\"cpu_util\")\n                .dimensions(GetCesMultipleMetricDataV1MetricDimensionArgs.builder()\n                    .name(\"instance_id\")\n                    .value(\"72d1377e-09e4-47bd-8ea4-71a815d4815d\")\n                    .build())\n                .build())\n            .from(1257892000000)\n            .to(1257895000000)\n            .period(\"1\")\n            .filter(\"average\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  metricData1:\n    fn::invoke:\n      function: opentelekomcloud:getCesMultipleMetricDataV1\n      arguments:\n        metrics:\n          - namespace: TEST.TF_ACC\n            metricName: cpu_util\n            dimensions:\n              - name: instance_id\n                value: 72d1377e-09e4-47bd-8ea4-71a815d4815d\n        from: 1.257892e+12\n        to: 1.257895e+12\n        period: '1'\n        filter: average\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getCesMultipleMetricDataV1.\n","properties":{"filter":{"description":"Specifies the data rollup method. Possible values are:\n","type":"string"},"from":{"description":"Specifies the start time of the query. The time is a UNIX timestamp and the unit is ms. Rollup aggregates the raw data generated within a period to the start time of the period. If <span pulumi-lang-nodejs=\"`from`\" pulumi-lang-dotnet=\"`From`\" pulumi-lang-go=\"`from`\" pulumi-lang-python=\"`from`\" pulumi-lang-yaml=\"`from`\" pulumi-lang-java=\"`from`\">`from`</span> and <span pulumi-lang-nodejs=\"`to`\" pulumi-lang-dotnet=\"`To`\" pulumi-lang-go=\"`to`\" pulumi-lang-python=\"`to`\" pulumi-lang-yaml=\"`to`\" pulumi-lang-java=\"`to`\">`to`</span> are within a period, the query result will be empty due to the rollup failure. Set <span pulumi-lang-nodejs=\"`from`\" pulumi-lang-dotnet=\"`From`\" pulumi-lang-go=\"`from`\" pulumi-lang-python=\"`from`\" pulumi-lang-yaml=\"`from`\" pulumi-lang-java=\"`from`\">`from`</span> to at least one period earlier than the current time. Take the 5-minute period as an example. If it is 10:35 now, the raw data generated between 10:30 and 10:35 will be aggregated to 10:30. In this example, if period is 5 minutes, from should be 10:30.\n","type":"number"},"id":{"type":"string"},"metrics":{"description":"Specifies the metric data. The maximum length of the array is 10. The structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetCesMultipleMetricDataV1Metric:getCesMultipleMetricDataV1Metric"},"type":"array"},"period":{"description":"Specifies how often Cloud Eye aggregates data. Possible values are:\n","type":"string"},"to":{"description":"Specifies the end time of the query. The time is a UNIX timestamp and the unit is ms. <span pulumi-lang-nodejs=\"`from`\" pulumi-lang-dotnet=\"`From`\" pulumi-lang-go=\"`from`\" pulumi-lang-python=\"`from`\" pulumi-lang-yaml=\"`from`\" pulumi-lang-java=\"`from`\">`from`</span> must be earlier than <span pulumi-lang-nodejs=\"`to`\" pulumi-lang-dotnet=\"`To`\" pulumi-lang-go=\"`to`\" pulumi-lang-python=\"`to`\" pulumi-lang-yaml=\"`to`\" pulumi-lang-java=\"`to`\">`to`</span>.\n","type":"number"}},"required":["filter","from","metrics","period","to"],"type":"object"},"outputs":{"description":"A collection of values returned by getCesMultipleMetricDataV1.\n","properties":{"filter":{"type":"string"},"from":{"type":"number"},"id":{"type":"string"},"metrics":{"description":"Specifies the metric data. The structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetCesMultipleMetricDataV1Metric:getCesMultipleMetricDataV1Metric"},"type":"array"},"period":{"type":"string"},"to":{"type":"number"}},"required":["filter","from","id","metrics","period","to"],"type":"object"}},"opentelekomcloud:index/getCesQuotasV1:getCesQuotasV1":{"description":"Up-to-date reference of API arguments for CES quotas v1 you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-eye/api-ref/api_description/quotas/index.html)\n\nGet details about CES quotas within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst quotas1 = opentelekomcloud.getCesQuotasV1({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nquotas1 = opentelekomcloud.get_ces_quotas_v1()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var quotas1 = Opentelekomcloud.GetCesQuotasV1.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetCesQuotasV1(ctx, &opentelekomcloud.GetCesQuotasV1Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCesQuotasV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var quotas1 = OpentelekomcloudFunctions.getCesQuotasV1(GetCesQuotasV1Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  quotas1:\n    fn::invoke:\n      function: opentelekomcloud:getCesQuotasV1\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getCesQuotasV1.\n","properties":{"id":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCesQuotasV1.\n","properties":{"id":{"type":"string"},"quotas":{"description":"Specifies the quota list. The structure is described below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetCesQuotasV1Quota:getCesQuotasV1Quota"},"type":"array"}},"required":["id","quotas"],"type":"object"}},"opentelekomcloud:index/getCfwFirewallV1:getCfwFirewallV1":{"description":"Up-to-date reference of API arguments for CFW firewall instance you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-firewall/api-ref/api/firewall_management/index.html)\n\nGet details about a CFW Firewall Instance resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Creating A Basic CFW Firewall Instance\n<!--Start PulumiCodeChooser -->\n```yaml\nconfiguration:\n  firewallId:\n    type: dynamic\nresources:\n  firewall1:\n    type: opentelekomcloud:CfwFirewallV1\n    name: firewall_1\n    properties:\n      id: ${firewallId}\n      serviceType: '0'\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getCfwFirewallV1.\n","properties":{"id":{"description":"Specifies the Firewall instance ID.\n","type":"string"},"serviceType":{"description":"Specifies the Firewall protection type. Currently, its value can only be <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (Internet protection).\n","type":"string"}},"required":["id"],"type":"object"},"outputs":{"description":"A collection of values returned by getCfwFirewallV1.\n","properties":{"chargeMode":{"description":"Indicates the billing mode: 0 (yearly/monthly), 1 (pay-per-use).\n","type":"number"},"engineType":{"description":"Indicates the engine type. Its value can only be 1 (Hillstone engine).\n","type":"number"},"enterpriseProjectId":{"description":"Indicates the Enterprise project ID, which is the ID of a project planned based on organizations.\n","type":"string"},"featureToggle":{"additionalProperties":{"type":"boolean"},"description":"Provides a map of features indicating whether a feature is enabled: true (yes), false (no).\n","type":"object"},"flavors":{"description":"Indicates the Firewall specifications. The flavor structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetCfwFirewallV1Flavor:getCfwFirewallV1Flavor"},"type":"array"},"haType":{"description":"Indicates the Cluster type: 0 (active/standby), 1 (cluster). In active/standby mode, there are four nodes. Two active nodes form a cluster, and the other two are the standby of the active nodes. In cluster mode, only two nodes are started to form a cluster..\n","type":"number"},"id":{"type":"string"},"isAvailableObs":{"description":"Indicates whether OBS is supported: true (yes), false (no).\n","type":"boolean"},"isOldFirewallInstance":{"description":"Indicates whether an engine is old: true (yes), false (no)..\n","type":"boolean"},"isSupportThreatTags":{"description":"Indicates whether threat intelligence tags are supported: true (yes), false (no).\n","type":"boolean"},"name":{"description":"Specifies the CFW firewall instance name. The CFW firewall instance name of the same\ntype is unique in the same tenant.\n","type":"string"},"protectObjects":{"description":"Indicates the protected object list. The<span pulumi-lang-nodejs=\" protectObjects \" pulumi-lang-dotnet=\" ProtectObjects \" pulumi-lang-go=\" protectObjects \" pulumi-lang-python=\" protect_objects \" pulumi-lang-yaml=\" protectObjects \" pulumi-lang-java=\" protectObjects \"> protect_objects </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetCfwFirewallV1ProtectObject:getCfwFirewallV1ProtectObject"},"type":"array"},"resourceId":{"description":"Indicates the resource ID. It can be the firewall ID, bandwidth ID, EIP ID, VPC ID, or the ID returned after CBC callback.\n","type":"string"},"resources":{"description":"Indicates the firewall resource list. The resources structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetCfwFirewallV1Resource:getCfwFirewallV1Resource"},"type":"array"},"serviceType":{"type":"string"},"status":{"description":"Indicates the firewall status: -1 (waiting for payment), 0 (creating), 1 (deleting), 2 (running), 3 (upgrading), 4 (deleted), 5 (frozen), 6 (creation failed), 7 (deletion failed), 8 (freezing failed), or 9 (being stored), 10 (storage failed), or 11 (upgrade failed).\n","type":"number"},"supportIpv6":{"description":"Indicates whether IPv6 is supported: true (yes), false (no).\n","type":"boolean"},"supportUrlFiltering":{"description":"Indicates whether website filtering is supported: true (yes), false (no).\n","type":"boolean"}},"required":["chargeMode","engineType","enterpriseProjectId","featureToggle","flavors","haType","id","isAvailableObs","isOldFirewallInstance","isSupportThreatTags","name","protectObjects","resourceId","resources","status","supportIpv6","supportUrlFiltering"],"type":"object"}},"opentelekomcloud:index/getComputeAvailabilityZonesV2:getComputeAvailabilityZonesV2":{"description":"Up-to-date reference of API arguments for Compute AZs you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-cloud-server/api-ref/native_openstack_nova_apis/az/querying_azs.html#en-us-topic-0065817728)\n\nUse this data source to get a list of availability zones from OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst zones = opentelekomcloud.getComputeAvailabilityZonesV2({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nzones = opentelekomcloud.get_compute_availability_zones_v2()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var zones = Opentelekomcloud.GetComputeAvailabilityZonesV2.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetComputeAvailabilityZonesV2(ctx, &opentelekomcloud.GetComputeAvailabilityZonesV2Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetComputeAvailabilityZonesV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var zones = OpentelekomcloudFunctions.getComputeAvailabilityZonesV2(GetComputeAvailabilityZonesV2Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  zones:\n    fn::invoke:\n      function: opentelekomcloud:getComputeAvailabilityZonesV2\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getComputeAvailabilityZonesV2.\n","properties":{"id":{"type":"string"},"region":{"description":"The <span pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\">`region`</span> to fetch availability zones from, defaults to the provider's <span pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\">`region`</span>.\n","type":"string"},"state":{"description":"The <span pulumi-lang-nodejs=\"`state`\" pulumi-lang-dotnet=\"`State`\" pulumi-lang-go=\"`state`\" pulumi-lang-python=\"`state`\" pulumi-lang-yaml=\"`state`\" pulumi-lang-java=\"`state`\">`state`</span> of the availability zones to match, default (\"available\").\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getComputeAvailabilityZonesV2.\n","properties":{"id":{"type":"string"},"names":{"description":"The names of the availability zones, ordered alphanumerically, that match the queried <span pulumi-lang-nodejs=\"`state`\" pulumi-lang-dotnet=\"`State`\" pulumi-lang-go=\"`state`\" pulumi-lang-python=\"`state`\" pulumi-lang-yaml=\"`state`\" pulumi-lang-java=\"`state`\">`state`</span>.\n","items":{"type":"string"},"type":"array"},"region":{"type":"string"},"state":{"type":"string"}},"required":["id","names","region"],"type":"object"}},"opentelekomcloud:index/getComputeBmsFlavorsV2:getComputeBmsFlavorsV2":{"description":"Up-to-date reference of API arguments for BMSs flavors you can get at\n[documentation portal](https://docs.otc.t-systems.com/bare-metal-server/api-ref/native_openstack_nova_v2.1_apis/bms_flavor_query/querying_bms_flavors_native_openstack_api.html#en-us-topic-0053158684)\n\nUse this data source to get details about flavors of BMSs from OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst flavorId = config.requireObject<any>(\"flavorId\");\nconst diskSize = config.requireObject<any>(\"diskSize\");\nconst queryBmsFlavors = opentelekomcloud.getComputeBmsFlavorsV2({\n    id: bmsId,\n    minDisk: diskSize,\n    sortKey: \"id\",\n    sortDir: \"desc\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nflavor_id = config.require_object(\"flavorId\")\ndisk_size = config.require_object(\"diskSize\")\nquery_bms_flavors = opentelekomcloud.get_compute_bms_flavors_v2(id=bms_id,\n    min_disk=disk_size,\n    sort_key=\"id\",\n    sort_dir=\"desc\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var flavorId = config.RequireObject<dynamic>(\"flavorId\");\n    var diskSize = config.RequireObject<dynamic>(\"diskSize\");\n    var queryBmsFlavors = Opentelekomcloud.GetComputeBmsFlavorsV2.Invoke(new()\n    {\n        Id = bmsId,\n        MinDisk = diskSize,\n        SortKey = \"id\",\n        SortDir = \"desc\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tflavorId := cfg.RequireObject(\"flavorId\")\n\t\tdiskSize := cfg.RequireObject(\"diskSize\")\n\t\t_, err := opentelekomcloud.GetComputeBmsFlavorsV2(ctx, &opentelekomcloud.GetComputeBmsFlavorsV2Args{\n\t\t\tId:      pulumi.StringRef(bmsId),\n\t\t\tMinDisk: pulumi.Float64Ref(diskSize),\n\t\t\tSortKey: pulumi.StringRef(\"id\"),\n\t\t\tSortDir: pulumi.StringRef(\"desc\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetComputeBmsFlavorsV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var flavorId = config.get(\"flavorId\");\n        final var diskSize = config.get(\"diskSize\");\n        final var queryBmsFlavors = OpentelekomcloudFunctions.getComputeBmsFlavorsV2(GetComputeBmsFlavorsV2Args.builder()\n            .id(bmsId)\n            .minDisk(diskSize)\n            .sortKey(\"id\")\n            .sortDir(\"desc\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  flavorId:\n    type: dynamic\n  diskSize:\n    type: dynamic\nvariables:\n  queryBmsFlavors:\n    fn::invoke:\n      function: opentelekomcloud:getComputeBmsFlavorsV2\n      arguments:\n        id: ${bmsId}\n        minDisk: ${diskSize}\n        sortKey: id\n        sortDir: desc\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getComputeBmsFlavorsV2.\n","properties":{"id":{"description":"The BMS flavor id.\n","type":"string"},"minDisk":{"description":"The minimum disk size in GB. Only the BMSs with a disk size greater than or equal to the minimum size can be queried.\n","type":"number"},"minRam":{"description":"The minimum memory size in MB. Only the BMSs with the memory size greater than or equal to the minimum size can be queried.\n","type":"number"},"name":{"description":"The name of the BMS flavor.\n","type":"string"},"region":{"type":"string"},"sortDir":{"description":"The sorting order, which can be **ascending** (**asc**) or **descending** (**desc**). The default value is **asc**.\n","type":"string"},"sortKey":{"description":"The sorting field. The default value is **flavorid**. The other values are **name**, **memory_mb**, **vcpus**, **root_gb**, or **flavorid**.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getComputeBmsFlavorsV2.\n","properties":{"disk":{"description":"Specifies the disk size (GB) in the BMS flavor.\n","type":"number"},"id":{"type":"string"},"minDisk":{"type":"number"},"minRam":{"type":"number"},"name":{"type":"string"},"ram":{"description":"It is the memory size (in MB) of the flavor.\n","type":"number"},"region":{"type":"string"},"rxTxFactor":{"description":"This is a reserved attribute.\n","type":"number"},"sortDir":{"type":"string"},"sortKey":{"type":"string"},"swap":{"description":"This is a reserved attribute.\n","type":"number"},"vcpus":{"description":"It is the number of CPU cores in the BMS flavor.\n","type":"number"}},"required":["disk","ram","region","rxTxFactor","swap","vcpus"],"type":"object"}},"opentelekomcloud:index/getComputeBmsKeypairsV2:getComputeBmsKeypairsV2":{"description":"Up-to-date reference of API arguments for BMSs SSH key pairs you can get at\n[documentation portal](https://docs.otc.t-systems.com/bare-metal-server/api-ref/native_openstack_nova_v2.1_apis/bms_ssh_key_pair_management/querying_ssh_key_pairs_native_openstack_api.html#en-us-topic-0060384658)\n\nUse this data source to get details about SSH key pairs of BMSs from OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst keypairName = config.requireObject<any>(\"keypairName\");\nconst queryBmsKeypair = opentelekomcloud.getComputeBmsKeypairsV2({\n    name: keypairName,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nkeypair_name = config.require_object(\"keypairName\")\nquery_bms_keypair = opentelekomcloud.get_compute_bms_keypairs_v2(name=keypair_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var keypairName = config.RequireObject<dynamic>(\"keypairName\");\n    var queryBmsKeypair = Opentelekomcloud.GetComputeBmsKeypairsV2.Invoke(new()\n    {\n        Name = keypairName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tkeypairName := cfg.RequireObject(\"keypairName\")\n\t\t_, err := opentelekomcloud.GetComputeBmsKeypairsV2(ctx, &opentelekomcloud.GetComputeBmsKeypairsV2Args{\n\t\t\tName: keypairName,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetComputeBmsKeypairsV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var keypairName = config.get(\"keypairName\");\n        final var queryBmsKeypair = OpentelekomcloudFunctions.getComputeBmsKeypairsV2(GetComputeBmsKeypairsV2Args.builder()\n            .name(keypairName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  keypairName:\n    type: dynamic\nvariables:\n  queryBmsKeypair:\n    fn::invoke:\n      function: opentelekomcloud:getComputeBmsKeypairsV2\n      arguments:\n        name: ${keypairName}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getComputeBmsKeypairsV2.\n","properties":{"id":{"type":"string"},"name":{"description":"It is the key pair name.\n","type":"string"},"region":{"type":"string"}},"required":["name"],"type":"object"},"outputs":{"description":"A collection of values returned by getComputeBmsKeypairsV2.\n","properties":{"fingerprint":{"description":"It is the fingerprint information about the key pair.\n","type":"string"},"id":{"type":"string"},"name":{"type":"string"},"publicKey":{"description":"It gives the information about the public key in the key pair.\n","type":"string"},"region":{"type":"string"}},"required":["fingerprint","id","name","publicKey","region"],"type":"object"}},"opentelekomcloud:index/getComputeBmsNicV2:getComputeBmsNicV2":{"description":"Up-to-date reference of API arguments for BMS NIC you can get at\n[documentation portal](https://docs.otc.t-systems.com/bare-metal-server/api-ref/native_openstack_nova_v2.1_apis/bms_nic_management/querying_information_about_bms_nics_native_openstack_api.html#en-us-topic-0053158678)\n\nUse this data source to get details about a BMS NIC based on the NIC ID from OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst bmsId = config.requireObject<any>(\"bmsId\");\nconst nicId = config.requireObject<any>(\"nicId\");\nconst queryBmsNic = opentelekomcloud.getComputeBmsNicV2({\n    serverId: bmsId,\n    id: nicId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nbms_id = config.require_object(\"bmsId\")\nnic_id = config.require_object(\"nicId\")\nquery_bms_nic = opentelekomcloud.get_compute_bms_nic_v2(server_id=bms_id,\n    id=nic_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var bmsId = config.RequireObject<dynamic>(\"bmsId\");\n    var nicId = config.RequireObject<dynamic>(\"nicId\");\n    var queryBmsNic = Opentelekomcloud.GetComputeBmsNicV2.Invoke(new()\n    {\n        ServerId = bmsId,\n        Id = nicId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tbmsId := cfg.RequireObject(\"bmsId\")\n\t\tnicId := cfg.RequireObject(\"nicId\")\n\t\t_, err := opentelekomcloud.GetComputeBmsNicV2(ctx, &opentelekomcloud.GetComputeBmsNicV2Args{\n\t\t\tServerId: bmsId,\n\t\t\tId:       pulumi.StringRef(nicId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetComputeBmsNicV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var bmsId = config.get(\"bmsId\");\n        final var nicId = config.get(\"nicId\");\n        final var queryBmsNic = OpentelekomcloudFunctions.getComputeBmsNicV2(GetComputeBmsNicV2Args.builder()\n            .serverId(bmsId)\n            .id(nicId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  bmsId:\n    type: dynamic\n  nicId:\n    type: dynamic\nvariables:\n  queryBmsNic:\n    fn::invoke:\n      function: opentelekomcloud:getComputeBmsNicV2\n      arguments:\n        serverId: ${bmsId}\n        id: ${nicId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getComputeBmsNicV2.\n","properties":{"id":{"description":"The ID of the NIC.\n","type":"string"},"region":{"type":"string"},"serverId":{"description":"This is the unique BMS id.\n","type":"string"},"status":{"description":"The NIC port status.\n","type":"string"}},"required":["serverId"],"type":"object"},"outputs":{"description":"A collection of values returned by getComputeBmsNicV2.\n","properties":{"fixedIps":{"description":"The NIC IP address.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetComputeBmsNicV2FixedIp:getComputeBmsNicV2FixedIp"},"type":"array"},"id":{"type":"string"},"macAddress":{"description":"It is NIC's mac address.\n","type":"string"},"networkId":{"description":"The ID of the network to which the NIC port belongs.\n","type":"string"},"region":{"type":"string"},"serverId":{"type":"string"},"status":{"type":"string"}},"required":["fixedIps","macAddress","networkId","region","serverId"],"type":"object"}},"opentelekomcloud:index/getComputeBmsServerV2:getComputeBmsServerV2":{"description":"Up-to-date reference of API arguments for BMS you can get at\n[documentation portal](https://docs.otc.t-systems.com/bare-metal-server/api-ref/native_openstack_nova_v2.1_apis/bms_lifecycle_management/querying_details_about_bmss_native_openstack_api.html#en-us-topic-0053158679)\n\nUse this data source to get details about a BMS or BMSs from OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst bmsId = config.requireObject<any>(\"bmsId\");\nconst bmsName = config.requireObject<any>(\"bmsName\");\nconst queryBms = opentelekomcloud.getComputeBmsServerV2({\n    id: bmsId,\n    name: bmsName,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nbms_id = config.require_object(\"bmsId\")\nbms_name = config.require_object(\"bmsName\")\nquery_bms = opentelekomcloud.get_compute_bms_server_v2(id=bms_id,\n    name=bms_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var bmsId = config.RequireObject<dynamic>(\"bmsId\");\n    var bmsName = config.RequireObject<dynamic>(\"bmsName\");\n    var queryBms = Opentelekomcloud.GetComputeBmsServerV2.Invoke(new()\n    {\n        Id = bmsId,\n        Name = bmsName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tbmsId := cfg.RequireObject(\"bmsId\")\n\t\tbmsName := cfg.RequireObject(\"bmsName\")\n\t\t_, err := opentelekomcloud.LookupComputeBmsServerV2(ctx, &opentelekomcloud.LookupComputeBmsServerV2Args{\n\t\t\tId:   pulumi.StringRef(bmsId),\n\t\t\tName: pulumi.StringRef(bmsName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetComputeBmsServerV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var bmsId = config.get(\"bmsId\");\n        final var bmsName = config.get(\"bmsName\");\n        final var queryBms = OpentelekomcloudFunctions.getComputeBmsServerV2(GetComputeBmsServerV2Args.builder()\n            .id(bmsId)\n            .name(bmsName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  bmsId:\n    type: dynamic\n  bmsName:\n    type: dynamic\nvariables:\n  queryBms:\n    fn::invoke:\n      function: opentelekomcloud:getComputeBmsServerV2\n      arguments:\n        id: ${bmsId}\n        name: ${bmsName}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getComputeBmsServerV2.\n","properties":{"flavorId":{"description":"It gives the BMS flavor information.\n","type":"string"},"hostStatus":{"description":"The nova-compute status: `UP`, `UNKNOWN`, `DOWN`, `MAINTENANCE` and `Null`.\n","type":"string"},"id":{"description":"The unique ID of the BMS.\n","type":"string"},"imageId":{"description":"The BMS image.\n","type":"string"},"keyName":{"description":"It is the SSH key name.\n","type":"string"},"name":{"description":"The name of BMS.\n","type":"string"},"region":{"type":"string"},"status":{"description":"The BMS status.\n","type":"string"},"userId":{"description":"The ID of the user to which the BMS belongs.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getComputeBmsServerV2.\n","properties":{"accessIpV4":{"description":"This is a reserved attribute.\n","type":"string"},"accessIpV6":{"description":"This is a reserved attribute.\n","type":"string"},"availabilityZone":{"description":"Specifies the AZ ID.\n","type":"string"},"configDrive":{"description":"This is a reserved attribute.\n","type":"string"},"description":{"description":"Provides supplementary information about the pool.\n","type":"string"},"flavorId":{"type":"string"},"hostId":{"description":"It is the host ID of the BMS.\n","type":"string"},"hostStatus":{"type":"string"},"hypervisorHostname":{"description":"It is the name of a host on the hypervisor.\n","type":"string"},"id":{"type":"string"},"imageId":{"type":"string"},"instanceName":{"description":"Instance name is specified.\n","type":"string"},"kernelId":{"description":"The UUID of the kernel image when the AMI image is used.\n","type":"string"},"keyName":{"type":"string"},"locked":{"description":"It specifies whether a BMS is locked, true: The BMS is locked, false: The BMS is not locked.\n","type":"boolean"},"metadata":{"additionalProperties":{"type":"string"},"description":"The BMS metadata is specified.\n","type":"object"},"name":{"type":"string"},"networks":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetComputeBmsServerV2Network:getComputeBmsServerV2Network"},"type":"array"},"progress":{"description":"This is a reserved attribute.\n","type":"number"},"region":{"type":"string"},"securityGroups":{"description":"The list of security groups to which the BMS belongs.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetComputeBmsServerV2SecurityGroup:getComputeBmsServerV2SecurityGroup"},"type":"array"},"status":{"type":"string"},"tags":{"description":"Specifies the BMS tag.\n","items":{"type":"string"},"type":"array"},"tenantId":{"type":"string"},"userId":{"type":"string"}},"required":["accessIpV4","accessIpV6","availabilityZone","configDrive","description","hostId","hypervisorHostname","instanceName","kernelId","locked","metadata","networks","progress","region","securityGroups","tags","tenantId"],"type":"object"}},"opentelekomcloud:index/getComputeFlavorV2:getComputeFlavorV2":{"description":"Up-to-date reference of API arguments for ECS flavor you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-cloud-server/api-ref/native_openstack_nova_apis/flavor_management/querying_ecs_flavors.html#en-us-topic-0065817705)\n\nUse this data source to get the ID of an available OpenTelekomCloud flavor.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst medium_s2 = opentelekomcloud.getComputeFlavorV2({\n    vcpus: 1,\n    ram: 4096,\n    resourceType: \"IOoptimizedS2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nmedium_s2 = opentelekomcloud.get_compute_flavor_v2(vcpus=1,\n    ram=4096,\n    resource_type=\"IOoptimizedS2\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var medium_s2 = Opentelekomcloud.GetComputeFlavorV2.Invoke(new()\n    {\n        Vcpus = 1,\n        Ram = 4096,\n        ResourceType = \"IOoptimizedS2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetComputeFlavorV2(ctx, &opentelekomcloud.GetComputeFlavorV2Args{\n\t\t\tVcpus:        pulumi.Float64Ref(1),\n\t\t\tRam:          pulumi.Float64Ref(4096),\n\t\t\tResourceType: pulumi.StringRef(\"IOoptimizedS2\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetComputeFlavorV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var medium-s2 = OpentelekomcloudFunctions.getComputeFlavorV2(GetComputeFlavorV2Args.builder()\n            .vcpus(1)\n            .ram(4096)\n            .resourceType(\"IOoptimizedS2\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  medium-s2:\n    fn::invoke:\n      function: opentelekomcloud:getComputeFlavorV2\n      arguments:\n        vcpus: 1\n        ram: 4096\n        resourceType: IOoptimizedS2\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getComputeFlavorV2.\n","properties":{"availabilityZone":{"description":"Whether flavor should be in <span pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\">`normal`</span> state.\n","type":"string"},"disk":{"description":"The exact amount of disk (in gigabytes).\n","type":"number"},"flavorId":{"description":"The ID of the flavor. Conflicts with the <span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span>,\n<span pulumi-lang-nodejs=\"`minRam`\" pulumi-lang-dotnet=\"`MinRam`\" pulumi-lang-go=\"`minRam`\" pulumi-lang-python=\"`min_ram`\" pulumi-lang-yaml=\"`minRam`\" pulumi-lang-java=\"`minRam`\">`min_ram`</span> and <span pulumi-lang-nodejs=\"`minDisk`\" pulumi-lang-dotnet=\"`MinDisk`\" pulumi-lang-go=\"`minDisk`\" pulumi-lang-python=\"`min_disk`\" pulumi-lang-yaml=\"`minDisk`\" pulumi-lang-java=\"`minDisk`\">`min_disk`</span>\n","type":"string"},"id":{"type":"string"},"minDisk":{"description":"The minimum amount of disk (in gigabytes). Conflicts\nwith the <span pulumi-lang-nodejs=\"`flavorId`\" pulumi-lang-dotnet=\"`FlavorId`\" pulumi-lang-go=\"`flavorId`\" pulumi-lang-python=\"`flavor_id`\" pulumi-lang-yaml=\"`flavorId`\" pulumi-lang-java=\"`flavorId`\">`flavor_id`</span>.\n","type":"number"},"minRam":{"description":"The minimum amount of RAM (in megabytes). Conflicts\nwith the <span pulumi-lang-nodejs=\"`flavorId`\" pulumi-lang-dotnet=\"`FlavorId`\" pulumi-lang-go=\"`flavorId`\" pulumi-lang-python=\"`flavor_id`\" pulumi-lang-yaml=\"`flavorId`\" pulumi-lang-java=\"`flavorId`\">`flavor_id`</span>.\n","type":"number"},"name":{"description":"The name of the flavor. Conflicts with the <span pulumi-lang-nodejs=\"`flavorId`\" pulumi-lang-dotnet=\"`FlavorId`\" pulumi-lang-go=\"`flavorId`\" pulumi-lang-python=\"`flavor_id`\" pulumi-lang-yaml=\"`flavorId`\" pulumi-lang-java=\"`flavorId`\">`flavor_id`</span>.\n","type":"string"},"ram":{"description":"The exact amount of RAM (in megabytes).\n","type":"number"},"region":{"description":"The region in which to obtain the V2 Compute client.\nIf omitted, the <span pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\">`region`</span> argument of the provider is used.\n","type":"string"},"resourceType":{"description":"Flavor resource type.\n","type":"string"},"rxTxFactor":{"description":"The <span pulumi-lang-nodejs=\"`rxTxFactor`\" pulumi-lang-dotnet=\"`RxTxFactor`\" pulumi-lang-go=\"`rxTxFactor`\" pulumi-lang-python=\"`rx_tx_factor`\" pulumi-lang-yaml=\"`rxTxFactor`\" pulumi-lang-java=\"`rxTxFactor`\">`rx_tx_factor`</span> of the flavor.\n","type":"number"},"swap":{"description":"The amount of swap (in gigabytes).\n","type":"number"},"vcpus":{"description":"The amount of VCPUs.\n","type":"number"}},"type":"object"},"outputs":{"description":"A collection of values returned by getComputeFlavorV2.\n","properties":{"availabilityZone":{"type":"string"},"disk":{"type":"number"},"extraSpecs":{"additionalProperties":{"type":"string"},"description":"Key/Value pairs of metadata for the flavor.\n","type":"object"},"flavorId":{"type":"string"},"id":{"type":"string"},"minDisk":{"type":"number"},"minRam":{"type":"number"},"name":{"type":"string"},"ram":{"type":"number"},"region":{"type":"string"},"resourceType":{"type":"string"},"rxTxFactor":{"type":"number"},"swap":{"type":"number"},"vcpus":{"type":"number"}},"required":["extraSpecs","id","region"],"type":"object"}},"opentelekomcloud:index/getComputeInstanceV2:getComputeInstanceV2":{"description":"Up-to-date reference of API arguments for ECS instance you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-cloud-server/api-ref/native_openstack_nova_apis/lifecycle_management/querying_ecss.html#en-us-topic-0020212688)\n\nGet information on an ECS instance.\n\n","inputs":{"description":"A collection of arguments for invoking getComputeInstanceV2.\n","properties":{"id":{"description":"The UUID of the instance\n","type":"string"},"name":{"description":"The name of the network\n","type":"string"},"networks":{"description":"An array of maps, detailed below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetComputeInstanceV2Network:getComputeInstanceV2Network"},"type":"array"},"region":{"type":"string"},"sshPrivateKeyPath":{"description":"The path to the private key to use for SSH access. Required only if you want to\nget the password from the windows instance.\n","secret":true,"type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"A set of string tags assigned to this server.\n","type":"object"},"userData":{"description":"The user data added when the server was created.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getComputeInstanceV2.\n","properties":{"accessIpV4":{"description":"The first IPv4 address assigned to this server.\n","type":"string"},"accessIpV6":{"description":"The first IPv6 address assigned to this server.\n","type":"string"},"adminPass":{"secret":true,"type":"string"},"availabilityZone":{"description":"The availability zone of this server.\n","type":"string"},"description":{"description":"Server description.\n","type":"string"},"encryptedPassword":{"description":"The encrypted password of the server. This is only available if the server is a Windows server.\nIf privateKey == nil the encrypted password is returned and can be decrypted with:\necho '<pwd>' | base64 -D | openssl rsautl -decrypt -inkey <private_key>\n","secret":true,"type":"string"},"flavorId":{"description":"The flavor ID used to create the server.\n","type":"string"},"flavorName":{"description":"The flavor name used to create the server.\n","type":"string"},"id":{"type":"string"},"imageId":{"description":"The image ID used to create the server.\n","type":"string"},"imageName":{"description":"The image name used to create the server.\n","type":"string"},"keyPair":{"description":"The name of the key pair assigned to this server.\n","type":"string"},"metadata":{"additionalProperties":{"type":"string"},"description":"A set of key/value pairs made available to the server.\n","type":"object"},"name":{"description":"The name of the network\n","type":"string"},"networks":{"description":"An array of maps, detailed below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetComputeInstanceV2Network:getComputeInstanceV2Network"},"type":"array"},"password":{"description":"The password of the server. This is only available if the server is a Windows server.\nIf privateKey != nil the password is decrypted with the private key.\n","secret":true,"type":"string"},"powerState":{"type":"string"},"region":{"type":"string"},"securityGroups":{"description":"An array of security group names associated with this server.\n","items":{"type":"string"},"type":"array"},"sshPrivateKeyPath":{"secret":true,"type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"A set of string tags assigned to this server.\n","type":"object"},"userData":{"description":"The user data added when the server was created.\n","type":"string"}},"required":["accessIpV4","accessIpV6","adminPass","availabilityZone","description","encryptedPassword","flavorId","flavorName","id","imageId","imageName","keyPair","metadata","name","password","powerState","region","securityGroups","userData"],"type":"object"}},"opentelekomcloud:index/getComputeInstancesV2:getComputeInstancesV2":{"description":"Up-to-date reference of API arguments for ECS instances you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-cloud-server/api-ref/native_openstack_nova_apis/lifecycle_management/querying_ecss.html#en-us-topic-0020212688)\n\nGet information on an ECS instances.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst nameRegex = config.requireObject<any>(\"nameRegex\");\nconst test = opentelekomcloud.getComputeInstancesV2({\n    name: nameRegex,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nname_regex = config.require_object(\"nameRegex\")\ntest = opentelekomcloud.get_compute_instances_v2(name=name_regex)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var nameRegex = config.RequireObject<dynamic>(\"nameRegex\");\n    var test = Opentelekomcloud.GetComputeInstancesV2.Invoke(new()\n    {\n        Name = nameRegex,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tnameRegex := cfg.RequireObject(\"nameRegex\")\n\t\t_, err := opentelekomcloud.GetComputeInstancesV2(ctx, &opentelekomcloud.GetComputeInstancesV2Args{\n\t\t\tName: pulumi.StringRef(nameRegex),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetComputeInstancesV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var nameRegex = config.get(\"nameRegex\");\n        final var test = OpentelekomcloudFunctions.getComputeInstancesV2(GetComputeInstancesV2Args.builder()\n            .name(nameRegex)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  nameRegex:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getComputeInstancesV2\n      arguments:\n        name: ${nameRegex}\n```\n<!--End PulumiCodeChooser -->\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = opentelekomcloud.getComputeInstancesV2({\n    status: \"ACTIVE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.get_compute_instances_v2(status=\"ACTIVE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = Opentelekomcloud.GetComputeInstancesV2.Invoke(new()\n    {\n        Status = \"ACTIVE\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetComputeInstancesV2(ctx, &opentelekomcloud.GetComputeInstancesV2Args{\n\t\t\tStatus: pulumi.StringRef(\"ACTIVE\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetComputeInstancesV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = OpentelekomcloudFunctions.getComputeInstancesV2(GetComputeInstancesV2Args.builder()\n            .status(\"ACTIVE\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getComputeInstancesV2\n      arguments:\n        status: ACTIVE\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getComputeInstancesV2.\n","properties":{"availabilityZone":{"description":"The availability zone of this server.\n","type":"string"},"flavorId":{"description":"Specifies the flavor ID.\n","type":"string"},"flavorName":{"description":"Specifies the flavor name of the instance.\n","type":"string"},"id":{"description":"The instance ID in UUID format.\n","type":"string"},"imageId":{"description":"Specifies the image ID of the instance.\n","type":"string"},"instanceId":{"description":"Specifies the ECS ID.\n","type":"string"},"keyPair":{"description":"Specifies the key pair that is used to authenticate the instance.\n","type":"string"},"limit":{"description":"Specifies the number of instances to be queried. The value is an integer and is 100 by default.\n","type":"number"},"name":{"description":"Specifies the instance name, which can be queried with a regular expression.\nThe instance name supports fuzzy matching query too.\n","type":"string"},"projectId":{"description":"Specifies the project where instance hosted.\n","type":"string"},"status":{"description":"Specifies the status of the instance. The valid values are as follows:\n+ **ACTIVE**: The instance is running properly.\n+ **SHUTOFF**: The instance has been properly stopped.\n+ **ERROR**: An error has occurred on the instance.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getComputeInstancesV2.\n","properties":{"availabilityZone":{"description":"The availability zone of this server.\n","type":"string"},"flavorId":{"description":"The flavor ID used to create the server.\n","type":"string"},"flavorName":{"type":"string"},"id":{"description":"The instance ID in UUID format.\n","type":"string"},"imageId":{"description":"The image ID used to create the server.\n","type":"string"},"instanceId":{"type":"string"},"instances":{"description":"List of ECS instance details. The object structure of each ECS instance is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetComputeInstancesV2Instance:getComputeInstancesV2Instance"},"type":"array"},"keyPair":{"description":"The key pair that is used to authenticate the instance.\n","type":"string"},"limit":{"type":"number"},"name":{"description":"The name of the network\n","type":"string"},"projectId":{"description":"The instance project ID.\n","type":"string"},"status":{"description":"The instance status.\n","type":"string"}},"required":["id","instances"],"type":"object"}},"opentelekomcloud:index/getComputeKeypairV2:getComputeKeypairV2":{"description":"Up-to-date reference of API arguments for ECS keypair you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-cloud-server/api-ref/native_openstack_nova_apis/key_and_password_management/querying_ssh_key_pairs.html#en-us-topic-0020212676)\n\nUse this data source to get details about Compute SSH key pairs from OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst kp1 = new opentelekomcloud.ComputeKeypairV2(\"kp_1\", {\n    name: \"key_1\",\n    publicKey: \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIALRzbIOR9HUYNwfKtII/et98eGXDJhf8YxHf9BtRdAU\",\n});\nconst key1 = opentelekomcloud.getComputeKeypairV2({\n    name: \"key_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nkp1 = opentelekomcloud.ComputeKeypairV2(\"kp_1\",\n    name=\"key_1\",\n    public_key=\"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIALRzbIOR9HUYNwfKtII/et98eGXDJhf8YxHf9BtRdAU\")\nkey1 = opentelekomcloud.get_compute_keypair_v2(name=\"key_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var kp1 = new Opentelekomcloud.ComputeKeypairV2(\"kp_1\", new()\n    {\n        Name = \"key_1\",\n        PublicKey = \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIALRzbIOR9HUYNwfKtII/et98eGXDJhf8YxHf9BtRdAU\",\n    });\n\n    var key1 = Opentelekomcloud.GetComputeKeypairV2.Invoke(new()\n    {\n        Name = \"key_1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewComputeKeypairV2(ctx, \"kp_1\", &opentelekomcloud.ComputeKeypairV2Args{\n\t\t\tName:      pulumi.String(\"key_1\"),\n\t\t\tPublicKey: pulumi.String(\"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIALRzbIOR9HUYNwfKtII/et98eGXDJhf8YxHf9BtRdAU\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.LookupComputeKeypairV2(ctx, &opentelekomcloud.LookupComputeKeypairV2Args{\n\t\t\tName: pulumi.StringRef(\"key_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ComputeKeypairV2;\nimport com.pulumi.opentelekomcloud.ComputeKeypairV2Args;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetComputeKeypairV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var kp1 = new ComputeKeypairV2(\"kp1\", ComputeKeypairV2Args.builder()\n            .name(\"key_1\")\n            .publicKey(\"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIALRzbIOR9HUYNwfKtII/et98eGXDJhf8YxHf9BtRdAU\")\n            .build());\n\n        final var key1 = OpentelekomcloudFunctions.getComputeKeypairV2(GetComputeKeypairV2Args.builder()\n            .name(\"key_1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  kp1:\n    type: opentelekomcloud:ComputeKeypairV2\n    name: kp_1\n    properties:\n      name: key_1\n      publicKey: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIALRzbIOR9HUYNwfKtII/et98eGXDJhf8YxHf9BtRdAU\nvariables:\n  key1:\n    fn::invoke:\n      function: opentelekomcloud:getComputeKeypairV2\n      arguments:\n        name: key_1\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getComputeKeypairV2.\n","properties":{"id":{"type":"string"},"name":{"description":"The name of the keypair.\n","type":"string"},"nameRegex":{"description":"A regex string to apply to the keypairs list.\nThis allows more advanced filtering not supported from the OpenTelekomCloud API.\nThis filtering is done locally on what OpenTelekomCloud returns.\n","type":"string"},"region":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getComputeKeypairV2.\n","properties":{"fingerprint":{"description":"It is the fingerprint information about the key pair.\n","type":"string"},"id":{"type":"string"},"name":{"description":"See Argument Reference above.\n","type":"string"},"nameRegex":{"type":"string"},"publicKey":{"description":"It gives the information about the public key in the key pair.\n","type":"string"},"region":{"type":"string"},"userId":{"description":"The user id of the owner of the key pair. Not filled by API now.\n","type":"string"}},"required":["fingerprint","id","publicKey","region","userId"],"type":"object"}},"opentelekomcloud:index/getCsbsBackupPolicyV1:getCsbsBackupPolicyV1":{"description":"Up-to-date reference of API arguments for CSBS backup policy you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-server-backup-service/api-ref/api_description/backup_policy_management/querying_the_backup_policy_list.html#en-us-topic-0059304227)\n\nUse this data source to get details about backup Policy resources from OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst policyId = config.requireObject<any>(\"policyId\");\nconst csbsPolicy = opentelekomcloud.getCsbsBackupPolicyV1({\n    id: policyId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\npolicy_id = config.require_object(\"policyId\")\ncsbs_policy = opentelekomcloud.get_csbs_backup_policy_v1(id=policy_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var policyId = config.RequireObject<dynamic>(\"policyId\");\n    var csbsPolicy = Opentelekomcloud.GetCsbsBackupPolicyV1.Invoke(new()\n    {\n        Id = policyId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tpolicyId := cfg.RequireObject(\"policyId\")\n\t\t_, err := opentelekomcloud.LookupCsbsBackupPolicyV1(ctx, &opentelekomcloud.LookupCsbsBackupPolicyV1Args{\n\t\t\tId: pulumi.StringRef(policyId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCsbsBackupPolicyV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var policyId = config.get(\"policyId\");\n        final var csbsPolicy = OpentelekomcloudFunctions.getCsbsBackupPolicyV1(GetCsbsBackupPolicyV1Args.builder()\n            .id(policyId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  policyId:\n    type: dynamic\nvariables:\n  csbsPolicy:\n    fn::invoke:\n      function: opentelekomcloud:getCsbsBackupPolicyV1\n      arguments:\n        id: ${policyId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getCsbsBackupPolicyV1.\n","properties":{"id":{"description":"Specifies the ID of backup policy.\n","type":"string"},"name":{"description":"Specifies the backup policy name.\n","type":"string"},"region":{"type":"string"},"status":{"description":"Specifies the backup policy status.\n","type":"string"},"tags":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetCsbsBackupPolicyV1Tag:getCsbsBackupPolicyV1Tag"},"type":"array"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCsbsBackupPolicyV1.\n","properties":{"common":{"additionalProperties":{"type":"string"},"type":"object"},"description":{"description":"Specifies Scheduling period description.\n","type":"string"},"id":{"description":"Specifies the ID of the object to be backed up.\n","type":"string"},"name":{"description":"Specifies backup object name.\n","type":"string"},"providerId":{"description":"Provides the Backup provider ID.\n","type":"string"},"region":{"type":"string"},"resources":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetCsbsBackupPolicyV1Resource:getCsbsBackupPolicyV1Resource"},"type":"array"},"scheduledOperations":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetCsbsBackupPolicyV1ScheduledOperation:getCsbsBackupPolicyV1ScheduledOperation"},"type":"array"},"status":{"type":"string"},"tags":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetCsbsBackupPolicyV1Tag:getCsbsBackupPolicyV1Tag"},"type":"array"}},"required":["common","description","id","name","providerId","region","resources","scheduledOperations","status"],"type":"object"}},"opentelekomcloud:index/getCsbsBackupV1:getCsbsBackupV1":{"description":"Up-to-date reference of API arguments for CSBS backup you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-server-backup-service/api-ref/api_description/backup_management/querying_all_backups.html#en-us-topic-0059304235)\n\nUse this data source to get details about backup resources from OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst backupName = config.requireObject<any>(\"backupName\");\nconst csbs = opentelekomcloud.getCsbsBackupV1({\n    backupName: backupName,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nbackup_name = config.require_object(\"backupName\")\ncsbs = opentelekomcloud.get_csbs_backup_v1(backup_name=backup_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var backupName = config.RequireObject<dynamic>(\"backupName\");\n    var csbs = Opentelekomcloud.GetCsbsBackupV1.Invoke(new()\n    {\n        BackupName = backupName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tbackupName := cfg.RequireObject(\"backupName\")\n\t\t_, err := opentelekomcloud.LookupCsbsBackupV1(ctx, &opentelekomcloud.LookupCsbsBackupV1Args{\n\t\t\tBackupName: pulumi.StringRef(backupName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCsbsBackupV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var backupName = config.get(\"backupName\");\n        final var csbs = OpentelekomcloudFunctions.getCsbsBackupV1(GetCsbsBackupV1Args.builder()\n            .backupName(backupName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  backupName:\n    type: dynamic\nvariables:\n  csbs:\n    fn::invoke:\n      function: opentelekomcloud:getCsbsBackupV1\n      arguments:\n        backupName: ${backupName}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getCsbsBackupV1.\n","properties":{"backupName":{"description":"Specifies the backup name.\n","type":"string"},"backupRecordId":{"description":"Specifies the backup record ID.\n","type":"string"},"id":{"description":"Specifies the ID of backup.\n","type":"string"},"policyId":{"description":"Specifies the Policy Id.\n","type":"string"},"region":{"type":"string"},"resourceId":{"description":"Specifies the backup object ID.\n","type":"string"},"resourceName":{"description":"Specifies the backup object name.\n","type":"string"},"resourceType":{"description":"Specifies the type of backup objects.\n","type":"string"},"status":{"description":"Specifies the backup status.\n","type":"string"},"tags":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetCsbsBackupV1Tag:getCsbsBackupV1Tag"},"type":"array"},"vmIp":{"description":"Specifies the ip of VM.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCsbsBackupV1.\n","properties":{"autoTrigger":{"description":"Specifies whether automatic trigger is enabled.\n","type":"boolean"},"averageSpeed":{"description":"Specifies the average speed.\n","type":"number"},"backupName":{"type":"string"},"backupRecordId":{"type":"string"},"description":{"description":"Provides the backup description.\n","type":"string"},"id":{"description":"Specifies Cinder backup ID.\n","type":"string"},"policyId":{"type":"string"},"region":{"type":"string"},"resourceId":{"type":"string"},"resourceName":{"type":"string"},"resourceType":{"type":"string"},"size":{"description":"Specifies accumulated size (MB) of backups.\n","type":"number"},"status":{"description":"Status of backup Volume.\n","type":"string"},"tags":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetCsbsBackupV1Tag:getCsbsBackupV1Tag"},"type":"array"},"vmIp":{"type":"string"},"vmMetadatas":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetCsbsBackupV1VmMetadata:getCsbsBackupV1VmMetadata"},"type":"array"},"volumeBackups":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetCsbsBackupV1VolumeBackup:getCsbsBackupV1VolumeBackup"},"type":"array"}},"required":["autoTrigger","averageSpeed","backupName","backupRecordId","description","region","resourceId","resourceName","resourceType","size","status","vmMetadatas","volumeBackups"],"type":"object"}},"opentelekomcloud:index/getCssCertificateV1:getCssCertificateV1":{"description":"Up-to-date reference of API arguments for CSS flavor you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-search-service/api-ref/cluster_management_apis/downloading_the_certificate.html#css-03-0050)\n\nUse this data source to search matching CSS cluster flavor from OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst cert = opentelekomcloud.getCssCertificateV1({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ncert = opentelekomcloud.get_css_certificate_v1()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var cert = Opentelekomcloud.GetCssCertificateV1.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetCssCertificateV1(ctx, &opentelekomcloud.GetCssCertificateV1Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCssCertificateV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var cert = OpentelekomcloudFunctions.getCssCertificateV1(GetCssCertificateV1Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  cert:\n    fn::invoke:\n      function: opentelekomcloud:getCssCertificateV1\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getCssCertificateV1.\n","properties":{"id":{"description":"Certificate ID.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCssCertificateV1.\n","properties":{"certificate":{"description":"String representation of server certificate.\n","type":"string"},"id":{"description":"Certificate ID.\n","type":"string"},"projectId":{"description":"Indicates the project id of the certificate.\n","type":"string"},"region":{"description":"Indicates the region of the certificate.\n","type":"string"}},"required":["certificate","id","projectId","region"],"type":"object"}},"opentelekomcloud:index/getCssFlavorV1:getCssFlavorV1":{"description":"Up-to-date reference of API arguments for CSS flavor you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-search-service/api-ref/cluster_management_apis/obtaining_the_list_of_instance_flavors.html#listflavors)\n\nUse this data source to search matching CSS cluster flavor from OpenTelekomCloud.\n\n## Example Usage\n\n### Search by name\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst flavor = opentelekomcloud.getCssFlavorV1({\n    name: \"css.medium.8\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nflavor = opentelekomcloud.get_css_flavor_v1(name=\"css.medium.8\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var flavor = Opentelekomcloud.GetCssFlavorV1.Invoke(new()\n    {\n        Name = \"css.medium.8\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetCssFlavorV1(ctx, &opentelekomcloud.GetCssFlavorV1Args{\n\t\t\tName: pulumi.StringRef(\"css.medium.8\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCssFlavorV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var flavor = OpentelekomcloudFunctions.getCssFlavorV1(GetCssFlavorV1Args.builder()\n            .name(\"css.medium.8\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  flavor:\n    fn::invoke:\n      function: opentelekomcloud:getCssFlavorV1\n      arguments:\n        name: css.medium.8\n```\n<!--End PulumiCodeChooser -->\n\n### Search by specs\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst flavor = opentelekomcloud.getCssFlavorV1({\n    minCpu: 4,\n    minRam: 32,\n    diskRange: {\n        minFrom: 320,\n        minTo: 800,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nflavor = opentelekomcloud.get_css_flavor_v1(min_cpu=4,\n    min_ram=32,\n    disk_range={\n        \"min_from\": 320,\n        \"min_to\": 800,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var flavor = Opentelekomcloud.GetCssFlavorV1.Invoke(new()\n    {\n        MinCpu = 4,\n        MinRam = 32,\n        DiskRange = new Opentelekomcloud.Inputs.GetCssFlavorV1DiskRangeInputArgs\n        {\n            MinFrom = 320,\n            MinTo = 800,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetCssFlavorV1(ctx, &opentelekomcloud.GetCssFlavorV1Args{\n\t\t\tMinCpu: pulumi.Float64Ref(4),\n\t\t\tMinRam: pulumi.Float64Ref(32),\n\t\t\tDiskRange: opentelekomcloud.GetCssFlavorV1DiskRange{\n\t\t\t\tMinFrom: pulumi.Float64Ref(320),\n\t\t\t\tMinTo:   pulumi.Float64Ref(800),\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCssFlavorV1Args;\nimport com.pulumi.opentelekomcloud.inputs.GetCssFlavorV1DiskRangeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var flavor = OpentelekomcloudFunctions.getCssFlavorV1(GetCssFlavorV1Args.builder()\n            .minCpu(4)\n            .minRam(32)\n            .diskRange(GetCssFlavorV1DiskRangeArgs.builder()\n                .minFrom(320)\n                .minTo(800)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  flavor:\n    fn::invoke:\n      function: opentelekomcloud:getCssFlavorV1\n      arguments:\n        minCpu: 4\n        minRam: 32\n        diskRange:\n          minFrom: 320\n          minTo: 800\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getCssFlavorV1.\n","properties":{"diskRange":{"$ref":"#/types/opentelekomcloud:index%2FgetCssFlavorV1DiskRange:getCssFlavorV1DiskRange","description":"Disk range restrictions the flavor should match. Disk range describes available storage\nvolume of the CSS node. Unit: `GB`.\n"},"id":{"description":"Flavor ID.\n","type":"string"},"minCpu":{"description":"Minimal count of CPU the flavor should have.\n","type":"number"},"minRam":{"description":"Minimal RAM size (`GB`) the flavor should have.\n","type":"number"},"name":{"description":"Name of the flavor.\n","type":"string"},"type":{"description":"Flavor type, one of <span pulumi-lang-nodejs=\"`ess`\" pulumi-lang-dotnet=\"`Ess`\" pulumi-lang-go=\"`ess`\" pulumi-lang-python=\"`ess`\" pulumi-lang-yaml=\"`ess`\" pulumi-lang-java=\"`ess`\">`ess`</span>, `ess-master`, `ess-client`, `ess-cold`. Default is <span pulumi-lang-nodejs=\"`ess`\" pulumi-lang-dotnet=\"`Ess`\" pulumi-lang-go=\"`ess`\" pulumi-lang-python=\"`ess`\" pulumi-lang-yaml=\"`ess`\" pulumi-lang-java=\"`ess`\">`ess`</span>.\n","type":"string"},"version":{"description":"Version of cluster.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCssFlavorV1.\n","properties":{"cpu":{"description":"Flavor CPU count.\n","type":"number"},"diskRange":{"$ref":"#/types/opentelekomcloud:index%2FgetCssFlavorV1DiskRange:getCssFlavorV1DiskRange","description":"Disk range specifications.\n"},"id":{"description":"Flavor ID.\n","type":"string"},"minCpu":{"type":"number"},"minRam":{"type":"number"},"name":{"description":"Flavor name.\n","type":"string"},"ram":{"description":"Flavor RAM (`GB`).\n","type":"number"},"region":{"description":"Region the flavor is available.\n","type":"string"},"type":{"type":"string"},"version":{"type":"string"}},"required":["cpu","id","name","ram","region","version"],"type":"object"}},"opentelekomcloud:index/getCtsTrackerV1:getCtsTrackerV1":{"description":"Up-to-date reference of API arguments for CTS tracker you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-trace-service/api-ref/out-of-date_apis/tracker_management/querying_a_tracker.html#cts-api-0016)\n\nUse this data source to get details about OpenTelekomCloud Cloud Trace Service.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst trackerV1 = opentelekomcloud.getCtsTrackerV1({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntracker_v1 = opentelekomcloud.get_cts_tracker_v1()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var trackerV1 = Opentelekomcloud.GetCtsTrackerV1.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupCtsTrackerV1(ctx, &opentelekomcloud.LookupCtsTrackerV1Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetCtsTrackerV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var trackerV1 = OpentelekomcloudFunctions.getCtsTrackerV1(GetCtsTrackerV1Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  trackerV1:\n    fn::invoke:\n      function: opentelekomcloud:getCtsTrackerV1\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getCtsTrackerV1.\n","properties":{"id":{"type":"string"},"trackerName":{"description":"The tracker name. Currently, only tracker <span pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\">`system`</span> is available.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCtsTrackerV1.\n","properties":{"bucketName":{"description":"The OBS bucket name for a tracker to store trace info.\n","type":"string"},"filePrefixName":{"description":"The prefix of a log that needs to be stored in an OBS bucket.\n","type":"string"},"id":{"type":"string"},"isLtsEnabled":{"description":"Specifies whether to enable trace analysis.\n","type":"boolean"},"logGroupName":{"description":"Specifies LTS log group name.\n","type":"string"},"logTopicName":{"description":"Specifies LTS log stream.\n","type":"string"},"region":{"description":"Specifies the tracker region.\n","type":"string"},"status":{"description":"Specifies current status of the tracker.\n","type":"string"},"trackerName":{"description":"The tracker name. Currently, only tracker <span pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\">`system`</span> is available.\n","type":"string"}},"required":["bucketName","filePrefixName","id","isLtsEnabled","logGroupName","logTopicName","region","status","trackerName"],"type":"object"}},"opentelekomcloud:index/getDcsAzV1:getDcsAzV1":{"description":"Up-to-date reference of API arguments for DCS AZ you can get at\n[documentation portal](https://docs.otc.t-systems.com/distributed-cache-service/api-ref/apis_v2_recommended/other_apis/querying_azs.html#listavailablezones)\n\nUse this data source to get the ID of an available DCS AZ from OpenTelekomCloud.\n\n## Example Usage\n\n### Query AZ <span pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\">`id`</span> by providing <span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span> argument\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst az1 = opentelekomcloud.getDcsAzV1({\n    name: \"eu-de-01\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\naz1 = opentelekomcloud.get_dcs_az_v1(name=\"eu-de-01\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var az1 = Opentelekomcloud.GetDcsAzV1.Invoke(new()\n    {\n        Name = \"eu-de-01\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetDcsAzV1(ctx, &opentelekomcloud.GetDcsAzV1Args{\n\t\t\tName: pulumi.StringRef(\"eu-de-01\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDcsAzV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var az1 = OpentelekomcloudFunctions.getDcsAzV1(GetDcsAzV1Args.builder()\n            .name(\"eu-de-01\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  az1:\n    fn::invoke:\n      function: opentelekomcloud:getDcsAzV1\n      arguments:\n        name: eu-de-01\n```\n<!--End PulumiCodeChooser -->\n\n### Query AZ <span pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\">`id`</span> by providing <span pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\">`port`</span> and <span pulumi-lang-nodejs=\"`code`\" pulumi-lang-dotnet=\"`Code`\" pulumi-lang-go=\"`code`\" pulumi-lang-python=\"`code`\" pulumi-lang-yaml=\"`code`\" pulumi-lang-java=\"`code`\">`code`</span> arguments\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst az2 = opentelekomcloud.getDcsAzV1({\n    port: \"8003\",\n    code: \"eu-de-02\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\naz2 = opentelekomcloud.get_dcs_az_v1(port=\"8003\",\n    code=\"eu-de-02\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var az2 = Opentelekomcloud.GetDcsAzV1.Invoke(new()\n    {\n        Port = \"8003\",\n        Code = \"eu-de-02\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetDcsAzV1(ctx, &opentelekomcloud.GetDcsAzV1Args{\n\t\t\tPort: pulumi.StringRef(\"8003\"),\n\t\t\tCode: pulumi.StringRef(\"eu-de-02\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDcsAzV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var az2 = OpentelekomcloudFunctions.getDcsAzV1(GetDcsAzV1Args.builder()\n            .port(\"8003\")\n            .code(\"eu-de-02\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  az2:\n    fn::invoke:\n      function: opentelekomcloud:getDcsAzV1\n      arguments:\n        port: '8003'\n        code: eu-de-02\n```\n<!--End PulumiCodeChooser -->\n\n### Query AZ <span pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\">`id`</span> by providing all arguments\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst az2 = opentelekomcloud.getDcsAzV1({\n    name: \"eu-de-02\",\n    port: \"8003\",\n    code: \"eu-de-02\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\naz2 = opentelekomcloud.get_dcs_az_v1(name=\"eu-de-02\",\n    port=\"8003\",\n    code=\"eu-de-02\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var az2 = Opentelekomcloud.GetDcsAzV1.Invoke(new()\n    {\n        Name = \"eu-de-02\",\n        Port = \"8003\",\n        Code = \"eu-de-02\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetDcsAzV1(ctx, &opentelekomcloud.GetDcsAzV1Args{\n\t\t\tName: pulumi.StringRef(\"eu-de-02\"),\n\t\t\tPort: pulumi.StringRef(\"8003\"),\n\t\t\tCode: pulumi.StringRef(\"eu-de-02\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDcsAzV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var az2 = OpentelekomcloudFunctions.getDcsAzV1(GetDcsAzV1Args.builder()\n            .name(\"eu-de-02\")\n            .port(\"8003\")\n            .code(\"eu-de-02\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  az2:\n    fn::invoke:\n      function: opentelekomcloud:getDcsAzV1\n      arguments:\n        name: eu-de-02\n        port: '8003'\n        code: eu-de-02\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getDcsAzV1.\n","properties":{"code":{"description":"Indicates the code of an AZ.\n","type":"string"},"id":{"type":"string"},"name":{"description":"Indicates the name of an AZ.\n","type":"string"},"port":{"description":"Indicates the port number of an AZ.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDcsAzV1.\n","properties":{"code":{"description":"See Argument Reference above.\n","type":"string"},"id":{"type":"string"},"name":{"description":"See Argument Reference above.\n","type":"string"},"port":{"description":"See Argument Reference above.\n","type":"string"}},"required":["code","id","name","port"],"type":"object"}},"opentelekomcloud:index/getDcsCertificateV2:getDcsCertificateV2":{"description":"Up-to-date reference of API arguments for DCS certificate you can get at\n[documentation portal](https://docs.otc.t-systems.com/distributed-cache-service/api-ref/apis_v2_recommended/network_security/downloading_the_ssl_certificate_of_an_instance.html#downloadsslcert)\n\nUse this data source to get the certificate of OpenTelekomCloud DCS instance.\n\n~>\n    SSL certificate download is available only for DCS 6.0 instances with enabled SSL.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst dcsId = config.requireObject<any>(\"dcsId\");\nconst cert = opentelekomcloud.getDcsCertificateV2({\n    instanceId: dcsId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ndcs_id = config.require_object(\"dcsId\")\ncert = opentelekomcloud.get_dcs_certificate_v2(instance_id=dcs_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var dcsId = config.RequireObject<dynamic>(\"dcsId\");\n    var cert = Opentelekomcloud.GetDcsCertificateV2.Invoke(new()\n    {\n        InstanceId = dcsId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tdcsId := cfg.RequireObject(\"dcsId\")\n\t\t_, err := opentelekomcloud.GetDcsCertificateV2(ctx, &opentelekomcloud.GetDcsCertificateV2Args{\n\t\t\tInstanceId: dcsId,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDcsCertificateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var dcsId = config.get(\"dcsId\");\n        final var cert = OpentelekomcloudFunctions.getDcsCertificateV2(GetDcsCertificateV2Args.builder()\n            .instanceId(dcsId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  dcsId:\n    type: dynamic\nvariables:\n  cert:\n    fn::invoke:\n      function: opentelekomcloud:getDcsCertificateV2\n      arguments:\n        instanceId: ${dcsId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getDcsCertificateV2.\n","properties":{"id":{"type":"string"},"instanceId":{"description":"A DCS instance ID.\n","type":"string"}},"required":["instanceId"],"type":"object"},"outputs":{"description":"A collection of values returned by getDcsCertificateV2.\n","properties":{"bucketName":{"description":"Name of the OBS bucket for storing the SSL certificate.\n","type":"string"},"certificate":{"description":"SSL certificate of an instance.\n","type":"string"},"fileName":{"description":"SSL certificate file name.\n","type":"string"},"id":{"type":"string"},"instanceId":{"type":"string"},"link":{"description":"Download link of the SSL certificate.\n","type":"string"}},"required":["bucketName","certificate","fileName","id","instanceId","link"],"type":"object"}},"opentelekomcloud:index/getDcsMaintainwindowV1:getDcsMaintainwindowV1":{"description":"Up-to-date reference of API arguments for DCS certificate you can get at\n[documentation portal](https://docs.otc.t-systems.com/distributed-cache-service/api-ref/apis_v2_recommended/other_apis/listing_maintenance_time_windows.html)\n\nUse this data source to get the ID of an available OpenTelekomCloud DCS maintain window.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst maintainwindow1 = opentelekomcloud.getDcsMaintainwindowV1({\n    seq: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nmaintainwindow1 = opentelekomcloud.get_dcs_maintainwindow_v1(seq=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var maintainwindow1 = Opentelekomcloud.GetDcsMaintainwindowV1.Invoke(new()\n    {\n        Seq = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetDcsMaintainwindowV1(ctx, &opentelekomcloud.GetDcsMaintainwindowV1Args{\n\t\t\tSeq: pulumi.Float64Ref(1),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDcsMaintainwindowV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var maintainwindow1 = OpentelekomcloudFunctions.getDcsMaintainwindowV1(GetDcsMaintainwindowV1Args.builder()\n            .seq(1)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  maintainwindow1:\n    fn::invoke:\n      function: opentelekomcloud:getDcsMaintainwindowV1\n      arguments:\n        seq: 1\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getDcsMaintainwindowV1.\n","properties":{"begin":{"description":"Indicates the time at which a maintenance time window starts.\n","type":"string"},"default":{"description":"Indicates whether a maintenance time window is set to the default time segment.\n","type":"boolean"},"end":{"description":"Indicates the time at which a maintenance time window ends.\n","type":"string"},"id":{"type":"string"},"seq":{"description":"Indicates the sequential number of a maintenance time window.\n","type":"number"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDcsMaintainwindowV1.\n","properties":{"begin":{"description":"See Argument Reference above.\n","type":"string"},"default":{"description":"See Argument Reference above.\n","type":"boolean"},"end":{"description":"See Argument Reference above.\n","type":"string"},"id":{"type":"string"},"seq":{"type":"number"}},"required":["begin","default","end","id","seq"],"type":"object"}},"opentelekomcloud:index/getDcsProductV1:getDcsProductV1":{"description":"Up-to-date reference of API arguments for DCS product you can get at\n[documentation portal](https://docs.otc.t-systems.com/distributed-cache-service/api-ref/outdated_apis_v1/other_apis/querying_service_specifications.html#dcs-api-0312040)\n\nUse this data source to get the ID of an available DCS product.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst product1 = opentelekomcloud.getDcsProductV1({\n    specCode: \"dcs.single_node\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nproduct1 = opentelekomcloud.get_dcs_product_v1(spec_code=\"dcs.single_node\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var product1 = Opentelekomcloud.GetDcsProductV1.Invoke(new()\n    {\n        SpecCode = \"dcs.single_node\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetDcsProductV1(ctx, &opentelekomcloud.GetDcsProductV1Args{\n\t\t\tSpecCode: pulumi.StringRef(\"dcs.single_node\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDcsProductV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var product1 = OpentelekomcloudFunctions.getDcsProductV1(GetDcsProductV1Args.builder()\n            .specCode(\"dcs.single_node\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  product1:\n    fn::invoke:\n      function: opentelekomcloud:getDcsProductV1\n      arguments:\n        specCode: dcs.single_node\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getDcsProductV1.\n","properties":{"id":{"type":"string"},"specCode":{"description":"Indicates an I/O specification.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDcsProductV1.\n","properties":{"id":{"type":"string"},"specCode":{"description":"See Argument Reference above.\n","type":"string"}},"required":["id","specCode"],"type":"object"}},"opentelekomcloud:index/getDdmEnginesV1:getDdmEnginesV1":{"description":"Up-to-date reference of API arguments for DDM engines you can get at\n[documentation portal](https://docs.otc.t-systems.com/distributed-database-middleware/api-ref/apis_recommended/ddm_instances/querying_ddm_engine_information.html)\n\nUse this data source to get info of OpenTelekomCloud DDM engines.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst engineList = opentelekomcloud.getDdmEnginesV1({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nengine_list = opentelekomcloud.get_ddm_engines_v1()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var engineList = Opentelekomcloud.GetDdmEnginesV1.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetDdmEnginesV1(ctx, &opentelekomcloud.GetDdmEnginesV1Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDdmEnginesV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var engineList = OpentelekomcloudFunctions.getDdmEnginesV1(GetDdmEnginesV1Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  engineList:\n    fn::invoke:\n      function: opentelekomcloud:getDdmEnginesV1\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getDdmEnginesV1.\n","properties":{"id":{"description":"Indicates the DDM engine ID.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDdmEnginesV1.\n","properties":{"engines":{"description":"Indicates the DDM engines information. Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetDdmEnginesV1Engine:getDdmEnginesV1Engine"},"type":"array"},"id":{"description":"Indicates the DDM engine ID.\n","type":"string"},"region":{"description":"Indicates the region of the DDM engines.\n","type":"string"}},"required":["engines","id","region"],"type":"object"}},"opentelekomcloud:index/getDdmFlavorsV1:getDdmFlavorsV1":{"description":"Up-to-date reference of API arguments for DDM compute flavors you can get at\n[documentation portal](https://docs.otc.t-systems.com/distributed-database-middleware/api-ref/apis_recommended/ddm_instances/querying_ddm_node_classes_available_in_an_az.html)\n\nUse this data source to get info of OpenTelekomCloud DDM compute flavors.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst engineList = opentelekomcloud.getDdmEnginesV1({});\nconst flavorList = engineList.then(engineList => opentelekomcloud.getDdmFlavorsV1({\n    engineId: engineList.engines?.[0]?.id,\n}));\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nengine_list = opentelekomcloud.get_ddm_engines_v1()\nflavor_list = opentelekomcloud.get_ddm_flavors_v1(engine_id=engine_list.engines[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var engineList = Opentelekomcloud.GetDdmEnginesV1.Invoke();\n\n    var flavorList = Opentelekomcloud.GetDdmFlavorsV1.Invoke(new()\n    {\n        EngineId = engineList.Apply(getDdmEnginesV1Result => getDdmEnginesV1Result.Engines[0]?.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tengineList, err := opentelekomcloud.GetDdmEnginesV1(ctx, &opentelekomcloud.GetDdmEnginesV1Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.GetDdmFlavorsV1(ctx, &opentelekomcloud.GetDdmFlavorsV1Args{\n\t\t\tEngineId: engineList.Engines[0].Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDdmEnginesV1Args;\nimport com.pulumi.opentelekomcloud.inputs.GetDdmFlavorsV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var engineList = OpentelekomcloudFunctions.getDdmEnginesV1(GetDdmEnginesV1Args.builder()\n            .build());\n\n        final var flavorList = OpentelekomcloudFunctions.getDdmFlavorsV1(GetDdmFlavorsV1Args.builder()\n            .engineId(engineList.engines()[0].id())\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  engineList:\n    fn::invoke:\n      function: opentelekomcloud:getDdmEnginesV1\n      arguments: {}\n  flavorList:\n    fn::invoke:\n      function: opentelekomcloud:getDdmFlavorsV1\n      arguments:\n        engineId: ${engineList.engines[0].id}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getDdmFlavorsV1.\n","properties":{"engineId":{"description":"Specifies the DDM engine ID.\n","type":"string"},"id":{"description":"Indicates the compute flavor ID.\n","type":"string"}},"required":["engineId"],"type":"object"},"outputs":{"description":"A collection of values returned by getDdmFlavorsV1.\n","properties":{"engineId":{"description":"See Argument Reference above.\n","type":"string"},"flavorGroups":{"description":"Indicates the DDM compute flvaor groups information. Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetDdmFlavorsV1FlavorGroup:getDdmFlavorsV1FlavorGroup"},"type":"array"},"id":{"description":"Indicates the compute flavor ID.\n","type":"string"},"region":{"description":"Indicates the region of the DDM compute flavors.\n","type":"string"}},"required":["engineId","flavorGroups","id","region"],"type":"object"}},"opentelekomcloud:index/getDdmInstanceV1:getDdmInstanceV1":{"description":"Up-to-date reference of API arguments for DDM instance you can get at\n[documentation portal](https://docs.otc.t-systems.com/distributed-database-middleware/api-ref/apis_recommended/ddm_instances/querying_details_of_a_ddm_instance.html)\n\nUse this data source to get info of the OpenTelekomCloud DDM instance.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst instance = opentelekomcloud.getDdmInstanceV1({\n    instanceId: instanceId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ninstance = opentelekomcloud.get_ddm_instance_v1(instance_id=instance_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var instance = Opentelekomcloud.GetDdmInstanceV1.Invoke(new()\n    {\n        InstanceId = instanceId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\t_, err := opentelekomcloud.LookupDdmInstanceV1(ctx, &opentelekomcloud.LookupDdmInstanceV1Args{\n\t\t\tInstanceId: instanceId,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDdmInstanceV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var instance = OpentelekomcloudFunctions.getDdmInstanceV1(GetDdmInstanceV1Args.builder()\n            .instanceId(instanceId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\nvariables:\n  instance:\n    fn::invoke:\n      function: opentelekomcloud:getDdmInstanceV1\n      arguments:\n        instanceId: ${instanceId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getDdmInstanceV1.\n","properties":{"id":{"type":"string"},"instanceId":{"description":"Specifies the DDM instance ID.\n","type":"string"}},"required":["instanceId"],"type":"object"},"outputs":{"description":"A collection of values returned by getDdmInstanceV1.\n","properties":{"accessIp":{"type":"string"},"accessPort":{"description":"Indicates the DDM access port.\n","type":"string"},"availabilityZone":{"description":"Indicates the availability zone of DDM instance.\n","type":"string"},"createdAt":{"description":"Indicates the creation time.\n","type":"string"},"id":{"type":"string"},"instanceId":{"description":"See Argument Reference above.\n","type":"string"},"name":{"description":"Indicates the name of DDM instance.\n","type":"string"},"nodeNum":{"description":"Indicates the disk encryption ID of the instance.\n","type":"number"},"nodeStatus":{"description":"Indicates the DDM nodes status.\n","type":"string"},"nodes":{"description":"Indicates the instance nodes information. Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetDdmInstanceV1Node:getDdmInstanceV1Node"},"type":"array"},"region":{"description":"Indicates the region of the DDM instance.\n","type":"string"},"securityGroupId":{"description":"Indicates the security group ID of the DDM instance.\n","type":"string"},"status":{"description":"Indicates the node status.\n","type":"string"},"subnetId":{"description":"Indicates the subnet Network ID.\n","type":"string"},"updatedAt":{"description":"Indicates the update time.\n","type":"string"},"username":{"description":"Indicates the Administrator username of the DDM instance.\n","type":"string"},"vpcId":{"description":"Indicates the VPC ID.\n","type":"string"}},"required":["accessIp","accessPort","availabilityZone","createdAt","id","instanceId","name","nodeNum","nodeStatus","nodes","region","securityGroupId","status","subnetId","updatedAt","username","vpcId"],"type":"object"}},"opentelekomcloud:index/getDdsFlavorsV3:getDdsFlavorsV3":{"description":"Up-to-date reference of API arguments for DDS flavors you can get at\n[documentation portal](https://docs.otc.t-systems.com/document-database-service/api-ref/apis_v3.0_recommended/querying_database_specifications.html)\n\nUse this data source to get info of available OpenTelekomCloud DDS flavors.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst flavor = opentelekomcloud.getDdsFlavorsV3({\n    engineName: \"DDS-Community\",\n    vcpus: \"8\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nflavor = opentelekomcloud.get_dds_flavors_v3(engine_name=\"DDS-Community\",\n    vcpus=\"8\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var flavor = Opentelekomcloud.GetDdsFlavorsV3.Invoke(new()\n    {\n        EngineName = \"DDS-Community\",\n        Vcpus = \"8\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetDdsFlavorsV3(ctx, &opentelekomcloud.GetDdsFlavorsV3Args{\n\t\t\tEngineName: \"DDS-Community\",\n\t\t\tVcpus:      pulumi.StringRef(\"8\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDdsFlavorsV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var flavor = OpentelekomcloudFunctions.getDdsFlavorsV3(GetDdsFlavorsV3Args.builder()\n            .engineName(\"DDS-Community\")\n            .vcpus(\"8\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  flavor:\n    fn::invoke:\n      function: opentelekomcloud:getDdsFlavorsV3\n      arguments:\n        engineName: DDS-Community\n        vcpus: 8\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getDdsFlavorsV3.\n","properties":{"engineName":{"description":"Specifies the engine name of the DDS, `DDS-Community` is supported.\n","type":"string"},"id":{"type":"string"},"memory":{"description":"Specifies the RAM of the DDS flavor in GB.\n","type":"string"},"type":{"description":"Specifies the type of the DDS flavor. <span pulumi-lang-nodejs=\"`mongos`\" pulumi-lang-dotnet=\"`Mongos`\" pulumi-lang-go=\"`mongos`\" pulumi-lang-python=\"`mongos`\" pulumi-lang-yaml=\"`mongos`\" pulumi-lang-java=\"`mongos`\">`mongos`</span>, <span pulumi-lang-nodejs=\"`shard`\" pulumi-lang-dotnet=\"`Shard`\" pulumi-lang-go=\"`shard`\" pulumi-lang-python=\"`shard`\" pulumi-lang-yaml=\"`shard`\" pulumi-lang-java=\"`shard`\">`shard`</span>, <span pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\">`config`</span> and <span pulumi-lang-nodejs=\"`replica`\" pulumi-lang-dotnet=\"`Replica`\" pulumi-lang-go=\"`replica`\" pulumi-lang-python=\"`replica`\" pulumi-lang-yaml=\"`replica`\" pulumi-lang-java=\"`replica`\">`replica`</span> are supported.\n","type":"string"},"vcpus":{"description":"Specifies the vCPUs of the DDS flavor.\n","type":"string"}},"required":["engineName"],"type":"object"},"outputs":{"description":"A collection of values returned by getDdsFlavorsV3.\n","properties":{"engineName":{"type":"string"},"flavors":{"description":"Indicates the flavors information. Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetDdsFlavorsV3Flavor:getDdsFlavorsV3Flavor"},"type":"array"},"id":{"type":"string"},"memory":{"description":"See <span pulumi-lang-nodejs=\"`memory`\" pulumi-lang-dotnet=\"`Memory`\" pulumi-lang-go=\"`memory`\" pulumi-lang-python=\"`memory`\" pulumi-lang-yaml=\"`memory`\" pulumi-lang-java=\"`memory`\">`memory`</span> above.\n","type":"string"},"region":{"description":"See Argument Reference above.\n","type":"string"},"type":{"description":"See <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> above.\n","type":"string"},"vcpus":{"description":"See <span pulumi-lang-nodejs=\"`vcpus`\" pulumi-lang-dotnet=\"`Vcpus`\" pulumi-lang-go=\"`vcpus`\" pulumi-lang-python=\"`vcpus`\" pulumi-lang-yaml=\"`vcpus`\" pulumi-lang-java=\"`vcpus`\">`vcpus`</span> above.\n","type":"string"}},"required":["engineName","flavors","id","region"],"type":"object"}},"opentelekomcloud:index/getDdsInstanceV3:getDdsInstanceV3":{"description":"Up-to-date reference of API arguments for DDS instance you can get at\n[documentation portal](https://docs.otc.t-systems.com/document-database-service/api-ref/apis_v3.0_recommended/db_instance_management/querying_instances_and_details.html)\n\nUse this data source to get info of the OpenTelekomCloud DDS instance.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst instance = opentelekomcloud.getDdsInstanceV3({\n    instanceId: instanceId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ninstance = opentelekomcloud.get_dds_instance_v3(instance_id=instance_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var instance = Opentelekomcloud.GetDdsInstanceV3.Invoke(new()\n    {\n        InstanceId = instanceId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\t_, err := opentelekomcloud.LookupDdsInstanceV3(ctx, &opentelekomcloud.LookupDdsInstanceV3Args{\n\t\t\tInstanceId: pulumi.StringRef(instanceId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDdsInstanceV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var instance = OpentelekomcloudFunctions.getDdsInstanceV3(GetDdsInstanceV3Args.builder()\n            .instanceId(instanceId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\nvariables:\n  instance:\n    fn::invoke:\n      function: opentelekomcloud:getDdsInstanceV3\n      arguments:\n        instanceId: ${instanceId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getDdsInstanceV3.\n","properties":{"datastoreType":{"description":"Specifies the database type. The value is `DDS-Community`.\n","type":"string"},"id":{"description":"Indicates the DB instance ID.\n","type":"string"},"instanceId":{"description":"Specifies the DB instance ID.\n","type":"string"},"name":{"description":"Specifies the DB instance name.\n","type":"string"},"subnetId":{"description":"Specifies the network ID of the subnet. You can log in to\nthe VPC console and obtain the network ID of the subnet in the VPC where the DDS\ninstance is located.\n","type":"string"},"vpcId":{"description":"Specifies the VPC ID. You can log in to the VPC console and\nobtain the ID of the VPC where the DDS instance is located.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDdsInstanceV3.\n","properties":{"backupStrategies":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetDdsInstanceV3BackupStrategy:getDdsInstanceV3BackupStrategy"},"type":"array"},"datastoreType":{"type":"string"},"datastores":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetDdsInstanceV3Datastore:getDdsInstanceV3Datastore"},"type":"array"},"dbUsername":{"description":"Indicates the default username.\n","type":"string"},"diskEncryptionId":{"description":"Indicates the disk encryption key ID. This parameter is returned\nonly when the instance disk is encrypted.\n","type":"string"},"id":{"description":"Indicates the DB instance ID.\n","type":"string"},"instanceId":{"type":"string"},"mode":{"description":"Indicates the instance type, which is the same as the request parameter.\n","type":"string"},"name":{"description":"Indicates the DB instance name.\n","type":"string"},"nodes":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetDdsInstanceV3Node:getDdsInstanceV3Node"},"type":"array"},"payMode":{"type":"string"},"port":{"type":"number"},"region":{"description":"Indicates the region where the DB instance is deployed.\n","type":"string"},"securityGroupId":{"description":"Indicates the security group ID.\n","type":"string"},"ssl":{"description":"Indicates that SSL is enabled or not.\n","type":"boolean"},"status":{"description":"Indicates the DB instance status.\n","type":"string"},"subnetId":{"description":"Indicates the subnet ID.\n","type":"string"},"vpcId":{"description":"Indicates the VPC ID.\n","type":"string"}},"required":["backupStrategies","datastores","dbUsername","diskEncryptionId","id","mode","nodes","payMode","port","region","securityGroupId","ssl","status"],"type":"object"}},"opentelekomcloud:index/getDehHostV1:getDehHostV1":{"description":"Up-to-date reference of API arguments for DEH host you can get at\n[documentation portal](https://docs.otc.t-systems.com/dedicated-host/api-ref/api/querying_dehs.html#deh-02-0020)\n\nUse this data source to get details about the allocated dedicated hosts from OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst dehId = config.requireObject<any>(\"dehId\");\nconst dehHost = opentelekomcloud.getDehHostV1({\n    id: dehId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ndeh_id = config.require_object(\"dehId\")\ndeh_host = opentelekomcloud.get_deh_host_v1(id=deh_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var dehId = config.RequireObject<dynamic>(\"dehId\");\n    var dehHost = Opentelekomcloud.GetDehHostV1.Invoke(new()\n    {\n        Id = dehId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tdehId := cfg.RequireObject(\"dehId\")\n\t\t_, err := opentelekomcloud.LookupDehHostV1(ctx, &opentelekomcloud.LookupDehHostV1Args{\n\t\t\tId: pulumi.StringRef(dehId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDehHostV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var dehId = config.get(\"dehId\");\n        final var dehHost = OpentelekomcloudFunctions.getDehHostV1(GetDehHostV1Args.builder()\n            .id(dehId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  dehId:\n    type: dynamic\nvariables:\n  dehHost:\n    fn::invoke:\n      function: opentelekomcloud:getDehHostV1\n      arguments:\n        id: ${dehId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getDehHostV1.\n","properties":{"availabilityZone":{"description":"The Availability Zone to which the Dedicated Host belongs.\n","type":"string"},"id":{"description":"The Dedicated Host ID.\n","type":"string"},"name":{"description":"The Dedicated Host name.\n","type":"string"},"region":{"type":"string"},"status":{"description":"The Dedicated Host status.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDehHostV1.\n","properties":{"autoPlacement":{"description":"Allows a instance to be automatically placed onto the available Dedicated Hosts.\n","type":"string"},"availabilityZone":{"description":"The Availability Zone to which the Dedicated Host belongs.\n","type":"string"},"availableInstanceCapacities":{"description":"The VM flavors placed on the Dedicated Host.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetDehHostV1AvailableInstanceCapacity:getDehHostV1AvailableInstanceCapacity"},"type":"array"},"availableMemory":{"description":"The size of available memory for the Dedicated Host.\n","type":"number"},"availableVcpus":{"description":"Thenumber of available vCPUs for the Dedicated Host.\n","type":"number"},"cores":{"description":"The number of hosts physical cores.\n","type":"number"},"hostType":{"description":"The Dedicated Host type.\n","type":"string"},"hostTypeName":{"description":"The Dedicated Host name of type.\n","type":"string"},"id":{"type":"string"},"instanceTotal":{"description":"The number of the placed VMs.\n","type":"number"},"instanceUuids":{"description":"The VMs started on the Dedicated Host.\n","items":{"type":"string"},"type":"array"},"memory":{"description":"The size of host physical memory (MB).\n","type":"number"},"name":{"type":"string"},"region":{"type":"string"},"sockets":{"description":"The number of host physical sockets.\n","type":"number"},"status":{"description":"The Dedicated Host status.\n","type":"string"},"tenantId":{"description":"The UUID of the tenant in a multi-tenancy cloud.\n","type":"string"},"vcpus":{"description":"The number of host vCPUs.\n","type":"number"}},"required":["autoPlacement","availableInstanceCapacities","availableMemory","availableVcpus","cores","hostType","hostTypeName","instanceTotal","instanceUuids","memory","region","sockets","tenantId","vcpus"],"type":"object"}},"opentelekomcloud:index/getDehServerV1:getDehServerV1":{"description":"Up-to-date reference of API arguments for DEH ECSs you can get at\n[documentation portal](https://docs.otc.t-systems.com/dedicated-host/api-ref/api/querying_ecss_on_a_deh.html)\n\nUse this data source to get details about the server on a specified Dedicated Host.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst dehId = config.requireObject<any>(\"dehId\");\nconst serverId = config.requireObject<any>(\"serverId\");\nconst dehServer = opentelekomcloud.getDehServerV1({\n    id: dehId,\n    serverId: serverId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ndeh_id = config.require_object(\"dehId\")\nserver_id = config.require_object(\"serverId\")\ndeh_server = opentelekomcloud.get_deh_server_v1(id=deh_id,\n    server_id=server_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var dehId = config.RequireObject<dynamic>(\"dehId\");\n    var serverId = config.RequireObject<dynamic>(\"serverId\");\n    var dehServer = Opentelekomcloud.GetDehServerV1.Invoke(new()\n    {\n        Id = dehId,\n        ServerId = serverId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tdehId := cfg.RequireObject(\"dehId\")\n\t\tserverId := cfg.RequireObject(\"serverId\")\n\t\t_, err := opentelekomcloud.GetDehServerV1(ctx, &opentelekomcloud.GetDehServerV1Args{\n\t\t\tId:       pulumi.StringRef(dehId),\n\t\t\tServerId: pulumi.StringRef(serverId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDehServerV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var dehId = config.get(\"dehId\");\n        final var serverId = config.get(\"serverId\");\n        final var dehServer = OpentelekomcloudFunctions.getDehServerV1(GetDehServerV1Args.builder()\n            .id(dehId)\n            .serverId(serverId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  dehId:\n    type: dynamic\n  serverId:\n    type: dynamic\nvariables:\n  dehServer:\n    fn::invoke:\n      function: opentelekomcloud:getDehServerV1\n      arguments:\n        id: ${dehId}\n        serverId: ${serverId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getDehServerV1.\n","properties":{"addresses":{"description":"The network addresses of the server.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetDehServerV1Address:getDehServerV1Address"},"type":"array"},"dedicatedHostId":{"description":"The Dedicated Host ID.\n","type":"string"},"id":{"type":"string"},"region":{"type":"string"},"serverId":{"description":"The Server ID.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDehServerV1.\n","properties":{"addresses":{"description":"The network addresses of the server.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetDehServerV1Address:getDehServerV1Address"},"type":"array"},"dedicatedHostId":{"type":"string"},"flavor":{"additionalProperties":{"type":"string"},"description":"The ID of server specifications.\n","type":"object"},"id":{"type":"string"},"metadata":{"additionalProperties":{"type":"string"},"description":"The metadata of the server.\n","type":"object"},"name":{"description":"The server name.\n","type":"string"},"region":{"type":"string"},"serverId":{"type":"string"},"status":{"description":"The status of the server.\n","type":"string"},"tenantId":{"description":"The ID of the tenant to which the server belongs.\n","type":"string"},"userId":{"description":"The ID of the user to which the server belongs.\n","type":"string"}},"required":["flavor","id","metadata","name","region","status","tenantId","userId"],"type":"object"}},"opentelekomcloud:index/getDirectConnectV2:getDirectConnectV2":{"description":"Up-to-date reference of API arguments for DCaaS connection you can get at\n[documentation portal](https://docs.otc.t-systems.com/direct-connect/api-ref/apis/connection/querying_the_connection_list.html)\n\nUse this data source to get details about a specific Direct Connect (DCaaS) connection.\n\n## Example usage\n\n-----------------\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst directConnect = opentelekomcloud.getDirectConnectV2({\n    id: \"direct_connect_id\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ndirect_connect = opentelekomcloud.get_direct_connect_v2(id=\"direct_connect_id\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var directConnect = Opentelekomcloud.GetDirectConnectV2.Invoke(new()\n    {\n        Id = \"direct_connect_id\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupDirectConnectV2(ctx, &opentelekomcloud.LookupDirectConnectV2Args{\n\t\t\tId: pulumi.StringRef(\"direct_connect_id\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDirectConnectV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var directConnect = OpentelekomcloudFunctions.getDirectConnectV2(GetDirectConnectV2Args.builder()\n            .id(\"direct_connect_id\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  directConnect:\n    fn::invoke:\n      function: opentelekomcloud:getDirectConnectV2\n      arguments:\n        id: direct_connect_id\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getDirectConnectV2.\n","properties":{"bandwidth":{"description":"(Number) - Specifies the bandwidth of the connection in Mbit/s.\n","type":"number"},"description":{"description":"(String) - Provides supplementary information about the connection.\n","type":"string"},"deviceId":{"description":"(String) - Specifies the gateway device ID of the connection.\n","type":"string"},"id":{"description":"Specifies the direct connection ID.\n","type":"string"},"location":{"description":"(String) - Specifies the connection access location.\n","type":"string"},"name":{"description":"(String) - Specifies the connection name.\n","type":"string"},"portType":{"description":"(String) - Specifies the type of the port used by the connection. The value can be 1G, 10G, 40G, or 100G.\n","type":"string"},"region":{"type":"string"},"vlan":{"description":"(Number) - Specifies the VLAN ID of the connection.\n","type":"number"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDirectConnectV2.\n","properties":{"adminStateUp":{"description":"(Boolean)  - Specifies the administrative status of the connection. The value can be true or false.\n","type":"boolean"},"applicant":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"applyTime":{"description":"(String) - Specifies the time when the connection was requested.\n","type":"string"},"bandwidth":{"description":"(Number) - Specifies the bandwidth of the connection in Mbit/s.\n","type":"number"},"buildingLineProductId":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"cableLabel":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"chargeMode":{"description":"(String) - Specifies the billing mode. The value can only be port for operations connections.\n","type":"string"},"createTime":{"description":"(String) - Specifies the time when the connection is created.\n","type":"string"},"deleteTime":{"description":"(String) - Specifies the time when the connection was deleted.\n","type":"string"},"description":{"description":"(String) - Provides supplementary information about the connection.\n","type":"string"},"deviceId":{"description":"(String) - Specifies the gateway device ID of the connection.\n","type":"string"},"email":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"hostingId":{"description":"(String) - Specifies the ID of the operations connection on which the hosted connection is created.\n","type":"string"},"id":{"description":"(String) - Specifies the connection ID.\n","type":"string"},"interfaceName":{"description":"(String) - Specifies the name of the interface accessed by the connection.\n","type":"string"},"lagId":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"lastOnestopProductId":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"location":{"description":"(String) - Specifies the connection access location.\n","type":"string"},"mobile":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"name":{"description":"(String) - Specifies the connection name.\n","type":"string"},"onestopProductId":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"orderId":{"description":"(String) - Specifies the connection order ID, which is used to support duration-based billing and identify user orders.\n","type":"string"},"peerLocation":{"description":"(String) - Specifies the physical location of the peer device accessed by the connection, specific to the street or data center name.\n","type":"string"},"peerPortType":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"peerProvider":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"periodNum":{"description":"(Number) - This is a reserved field, which is not used currently.\n","type":"number"},"periodType":{"description":"(Number) - This is a reserved field, which is not used currently.\n","type":"number"},"portType":{"description":"(String) - Specifies the type of the port used by the connection. The value can be 1G, 10G, 40G, or 100G.\n","type":"string"},"productId":{"description":"(String) - Specifies the product ID corresponding to the connection's order, which is used to custom billing policies such as duration-based packages.\n","type":"string"},"providerName":{"description":"(String) - Specifies the carrier who provides the leased line.\n","type":"string"},"providerStatus":{"description":"(String) - Specifies the status of the carrier's leased line. The value can be ACTIVE or DOWN.\n","type":"string"},"reason":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"redundantId":{"description":"(String) - Specifies the ID of the redundant connection using the same gateway.\n","type":"string"},"region":{"type":"string"},"regionId":{"description":"(String) - Specifies the region ID.\n","type":"string"},"serviceKey":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"specCode":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"status":{"description":"(String) - Specifies the connection status.\nThe value can be ACTIVE, DOWN, BUILD, ERROR, PENDING_DELETE, DELETED, APPLY, DENY, PENDING_PAY, PAID, ORDERING, ACCEPT, or REJECTED.\n","type":"string"},"tenantId":{"description":"(String) - Specifies the project ID.\n","type":"string"},"type":{"description":"(String) - Specifies the connection type. The value can only be hosted.\n","type":"string"},"vgwType":{"description":"(String) - Specifies the type of the gateway. Currently, only the default type is supported.\n","type":"string"},"vlan":{"description":"(Number) - Specifies the VLAN ID of the connection.\n","type":"number"}},"required":["adminStateUp","applicant","applyTime","bandwidth","buildingLineProductId","cableLabel","chargeMode","createTime","deleteTime","description","deviceId","email","hostingId","id","interfaceName","lagId","lastOnestopProductId","location","mobile","name","onestopProductId","orderId","peerLocation","peerPortType","peerProvider","periodNum","periodType","portType","productId","providerName","providerStatus","reason","redundantId","region","regionId","serviceKey","specCode","status","tenantId","type","vgwType","vlan"],"type":"object"}},"opentelekomcloud:index/getDmsAzV1:getDmsAzV1":{"description":"Up-to-date reference of API arguments for DMS AZ you can get at\n[documentation portal](https://docs.otc.t-systems.com/distributed-message-service/api-ref/apis_v2_recommended/other_apis/listing_az_information.html#listavailablezones)\n\nUse this data source to get the ID of an available OpenTelekomCloud DMS AZ.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst az1 = opentelekomcloud.getDmsAzV1({\n    name: \"eu-de-01\",\n    port: \"8002\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\naz1 = opentelekomcloud.get_dms_az_v1(name=\"eu-de-01\",\n    port=\"8002\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var az1 = Opentelekomcloud.GetDmsAzV1.Invoke(new()\n    {\n        Name = \"eu-de-01\",\n        Port = \"8002\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetDmsAzV1(ctx, &opentelekomcloud.GetDmsAzV1Args{\n\t\t\tName: pulumi.StringRef(\"eu-de-01\"),\n\t\t\tPort: pulumi.StringRef(\"8002\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDmsAzV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var az1 = OpentelekomcloudFunctions.getDmsAzV1(GetDmsAzV1Args.builder()\n            .name(\"eu-de-01\")\n            .port(\"8002\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  az1:\n    fn::invoke:\n      function: opentelekomcloud:getDmsAzV1\n      arguments:\n        name: eu-de-01\n        port: '8002'\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getDmsAzV1.\n","properties":{"code":{"description":"Indicates the code of an AZ.\n","type":"string"},"id":{"type":"string"},"name":{"description":"Indicates the name of an AZ.\n","type":"string"},"port":{"description":"Indicates the port number of an AZ.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDmsAzV1.\n","properties":{"code":{"description":"See Argument Reference above.\n","type":"string"},"id":{"type":"string"},"name":{"description":"See Argument Reference above.\n","type":"string"},"port":{"description":"See Argument Reference above.\n","type":"string"}},"required":["code","id","name","port"],"type":"object"}},"opentelekomcloud:index/getDmsFlavorV2:getDmsFlavorV2":{"description":"Use this data source to get the list of available flavor details within OpenTelekomCloud.\n\n## Example Usage\n\n### Query the list of kafka flavors for cluster type\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = opentelekomcloud.getDmsFlavorV2({\n    type: \"cluster\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.get_dms_flavor_v2(type=\"cluster\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = Opentelekomcloud.GetDmsFlavorV2.Invoke(new()\n    {\n        Type = \"cluster\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetDmsFlavorV2(ctx, &opentelekomcloud.GetDmsFlavorV2Args{\n\t\t\tType: pulumi.StringRef(\"cluster\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDmsFlavorV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = OpentelekomcloudFunctions.getDmsFlavorV2(GetDmsFlavorV2Args.builder()\n            .type(\"cluster\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getDmsFlavorV2\n      arguments:\n        type: cluster\n```\n<!--End PulumiCodeChooser -->\n\n### Query the kafka flavor details of the specified ID\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = opentelekomcloud.getDmsFlavorV2({\n    flavorId: \"c6.2u4g.cluster\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.get_dms_flavor_v2(flavor_id=\"c6.2u4g.cluster\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = Opentelekomcloud.GetDmsFlavorV2.Invoke(new()\n    {\n        FlavorId = \"c6.2u4g.cluster\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetDmsFlavorV2(ctx, &opentelekomcloud.GetDmsFlavorV2Args{\n\t\t\tFlavorId: pulumi.StringRef(\"c6.2u4g.cluster\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDmsFlavorV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = OpentelekomcloudFunctions.getDmsFlavorV2(GetDmsFlavorV2Args.builder()\n            .flavorId(\"c6.2u4g.cluster\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getDmsFlavorV2\n      arguments:\n        flavorId: c6.2u4g.cluster\n```\n<!--End PulumiCodeChooser -->\n\n### Query list of kafka flavors that available in the availability zone list\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst az1 = config.requireObject<any>(\"az1\");\nconst az2 = config.requireObject<any>(\"az2\");\nconst test = opentelekomcloud.getDmsFlavorV2({\n    availabilityZones: [\n        az1,\n        az2,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\naz1 = config.require_object(\"az1\")\naz2 = config.require_object(\"az2\")\ntest = opentelekomcloud.get_dms_flavor_v2(availability_zones=[\n    az1,\n    az2,\n])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var az1 = config.RequireObject<dynamic>(\"az1\");\n    var az2 = config.RequireObject<dynamic>(\"az2\");\n    var test = Opentelekomcloud.GetDmsFlavorV2.Invoke(new()\n    {\n        AvailabilityZones = new[]\n        {\n            az1,\n            az2,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\naz1 := cfg.RequireObject(\"az1\")\naz2 := cfg.RequireObject(\"az2\")\n_, err := opentelekomcloud.GetDmsFlavorV2(ctx, &opentelekomcloud.GetDmsFlavorV2Args{\nAvailabilityZones: interface{}{\naz1,\naz2,\n},\n}, nil);\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDmsFlavorV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var az1 = config.get(\"az1\");\n        final var az2 = config.get(\"az2\");\n        final var test = OpentelekomcloudFunctions.getDmsFlavorV2(GetDmsFlavorV2Args.builder()\n            .availabilityZones(            \n                az1,\n                az2)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  az1:\n    type: dynamic\n  az2:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getDmsFlavorV2\n      arguments:\n        availabilityZones:\n          - ${az1}\n          - ${az2}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getDmsFlavorV2.\n","properties":{"archType":{"description":"Specifies the type of CPU architecture, e.g. **X86**.\n","type":"string"},"availabilityZones":{"description":"Specifies the list of availability zones with available resources.\n","items":{"type":"string"},"type":"array"},"chargingMode":{"description":"Specifies the flavor billing mode.\nThe valid values are **prePaid** and **postPaid**.\n","type":"string"},"flavorId":{"description":"Specifies the DMS flavor ID, e.g. **c6.2u4g.cluster**.\n","type":"string"},"id":{"description":"The flavor ID.\n","type":"string"},"storageSpecCode":{"description":"Specifies the disk IO encoding.\n+ **dms.physical.storage.high.v2**: Type of the disk that uses high I/O.\n+ **dms.physical.storage.ultra.v2**: Type of the disk that uses ultra-high I/O.\n","type":"string"},"type":{"description":"Specifies flavor type. The valid values are **single** and **cluster**.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDmsFlavorV2.\n","properties":{"archType":{"type":"string"},"availabilityZones":{"description":"The list of availability zones with available resources.\n","items":{"type":"string"},"type":"array"},"chargingMode":{"type":"string"},"flavorId":{"type":"string"},"flavors":{"description":"The list of flavor details.\nThe object structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetDmsFlavorV2Flavor:getDmsFlavorV2Flavor"},"type":"array"},"id":{"description":"The flavor ID.\n","type":"string"},"region":{"description":"The region in which to obtain the dms kafka flavors.\n","type":"string"},"storageSpecCode":{"description":"The disk IO encoding.\n","type":"string"},"type":{"description":"The disk type.\n","type":"string"},"versions":{"description":"The supported flavor versions.\n","items":{"type":"string"},"type":"array"}},"required":["flavors","id","region","versions"],"type":"object"}},"opentelekomcloud:index/getDmsMaintainwindowV1:getDmsMaintainwindowV1":{"description":"Up-to-date reference of API arguments for DMS maintain window you can get at\n[documentation portal](https://docs.otc.t-systems.com/distributed-message-service/api-ref/apis_v2_recommended/other_apis/listing_maintenance_time_windows.html)\n\nUse this data source to get the ID of an available OpenTelekomCloud DMS maintainwindow.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst maintainwindow1 = opentelekomcloud.getDmsMaintainwindowV1({\n    seq: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nmaintainwindow1 = opentelekomcloud.get_dms_maintainwindow_v1(seq=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var maintainwindow1 = Opentelekomcloud.GetDmsMaintainwindowV1.Invoke(new()\n    {\n        Seq = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetDmsMaintainwindowV1(ctx, &opentelekomcloud.GetDmsMaintainwindowV1Args{\n\t\t\tSeq: pulumi.Float64Ref(1),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDmsMaintainwindowV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var maintainwindow1 = OpentelekomcloudFunctions.getDmsMaintainwindowV1(GetDmsMaintainwindowV1Args.builder()\n            .seq(1)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  maintainwindow1:\n    fn::invoke:\n      function: opentelekomcloud:getDmsMaintainwindowV1\n      arguments:\n        seq: 1\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getDmsMaintainwindowV1.\n","properties":{"begin":{"description":"Indicates the time at which a maintenance time window starts.\n","type":"string"},"default":{"description":"Indicates whether a maintenance time window is set to the default time segment.\n","type":"boolean"},"end":{"description":"Indicates the time at which a maintenance time window ends.\n","type":"string"},"id":{"type":"string"},"seq":{"description":"Indicates the sequential number of a maintenance time window.\n","type":"number"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDmsMaintainwindowV1.\n","properties":{"begin":{"description":"See Argument Reference above.\n","type":"string"},"default":{"description":"See Argument Reference above.\n","type":"boolean"},"end":{"description":"See Argument Reference above.\n","type":"string"},"id":{"type":"string"},"seq":{"description":"See Argument Reference above.\n","type":"number"}},"required":["begin","default","end","id","seq"],"type":"object"}},"opentelekomcloud:index/getDmsProductV1:getDmsProductV1":{"description":"Up-to-date reference of API arguments for DMS product you can get at\n[documentation portal](https://docs.otc.t-systems.com/distributed-message-service/api-ref/apis_v2_recommended/other_apis/querying_product_specifications_list.html)\n\nUse this data source to get the ID of an available DMS product within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst product1 = opentelekomcloud.getDmsProductV1({\n    engine: \"kafka\",\n    version: \"2.3.0\",\n    instanceType: \"cluster\",\n    partitionNum: \"300\",\n    storage: \"600\",\n    storageSpecCode: \"dms.physical.storage.high\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nproduct1 = opentelekomcloud.get_dms_product_v1(engine=\"kafka\",\n    version=\"2.3.0\",\n    instance_type=\"cluster\",\n    partition_num=\"300\",\n    storage=\"600\",\n    storage_spec_code=\"dms.physical.storage.high\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var product1 = Opentelekomcloud.GetDmsProductV1.Invoke(new()\n    {\n        Engine = \"kafka\",\n        Version = \"2.3.0\",\n        InstanceType = \"cluster\",\n        PartitionNum = \"300\",\n        Storage = \"600\",\n        StorageSpecCode = \"dms.physical.storage.high\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetDmsProductV1(ctx, &opentelekomcloud.GetDmsProductV1Args{\n\t\t\tEngine:          \"kafka\",\n\t\t\tVersion:         pulumi.StringRef(\"2.3.0\"),\n\t\t\tInstanceType:    \"cluster\",\n\t\t\tPartitionNum:    pulumi.StringRef(\"300\"),\n\t\t\tStorage:         pulumi.StringRef(\"600\"),\n\t\t\tStorageSpecCode: pulumi.StringRef(\"dms.physical.storage.high\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDmsProductV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var product1 = OpentelekomcloudFunctions.getDmsProductV1(GetDmsProductV1Args.builder()\n            .engine(\"kafka\")\n            .version(\"2.3.0\")\n            .instanceType(\"cluster\")\n            .partitionNum(\"300\")\n            .storage(\"600\")\n            .storageSpecCode(\"dms.physical.storage.high\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  product1:\n    fn::invoke:\n      function: opentelekomcloud:getDmsProductV1\n      arguments:\n        engine: kafka\n        version: 2.3.0\n        instanceType: cluster\n        partitionNum: 300\n        storage: 600\n        storageSpecCode: dms.physical.storage.high\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getDmsProductV1.\n","properties":{"bandwidth":{"description":"Indicates the baseline bandwidth of a Kafka instance.\n","type":"string"},"engine":{"description":"Indicates the name of a message engine. Only \"kafka\" is supported now.\n","type":"string"},"id":{"type":"string"},"instanceType":{"description":"Indicates an instance type. Only \"cluster\" is supported now.\n","type":"string"},"ioType":{"description":"Indicates an I/O type.\n","type":"string"},"nodeNum":{"description":"Indicates the number of nodes in a cluster.\n","type":"string"},"partitionNum":{"description":"Indicates the maximum number of topics that can be created for a Kafka instance.\n","type":"string"},"storage":{"description":"Indicates the message storage space.\n","type":"string"},"storageSpecCode":{"description":"Indicates an I/O specification.\n","type":"string"},"version":{"description":"Indicates the version of a message engine. Only \"2.3.0\" is supported now.\n","type":"string"},"vmSpecification":{"description":"Indicates VM specifications.\n","type":"string"}},"required":["engine","instanceType"],"type":"object"},"outputs":{"description":"A collection of values returned by getDmsProductV1.\n","properties":{"bandwidth":{"description":"See Argument Reference above.\n","type":"string"},"engine":{"description":"See Argument Reference above.\n","type":"string"},"id":{"type":"string"},"instanceType":{"description":"See Argument Reference above.\n","type":"string"},"ioType":{"description":"See Argument Reference above.\n","type":"string"},"nodeNum":{"description":"See Argument Reference above.\n","type":"string"},"partitionNum":{"description":"See Argument Reference above.\n","type":"string"},"storage":{"type":"string"},"storageSpecCode":{"description":"See Argument Reference above.\n","type":"string"},"version":{"description":"See Argument Reference above.\n","type":"string"},"vmSpecification":{"description":"See Argument Reference above.\n","type":"string"}},"required":["engine","id","instanceType","ioType","nodeNum","storage","storageSpecCode","version","vmSpecification"],"type":"object"}},"opentelekomcloud:index/getDnsNameserversV2:getDnsNameserversV2":{"inputs":{"description":"A collection of arguments for invoking getDnsNameserversV2.\n","properties":{"id":{"type":"string"},"nameservers":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetDnsNameserversV2Nameserver:getDnsNameserversV2Nameserver"},"type":"array"},"zoneId":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDnsNameserversV2.\n","properties":{"id":{"type":"string"},"nameservers":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetDnsNameserversV2Nameserver:getDnsNameserversV2Nameserver"},"type":"array"},"zoneId":{"type":"string"}},"required":["id","zoneId"],"type":"object"}},"opentelekomcloud:index/getDnsZoneV2:getDnsZoneV2":{"description":"Up-to-date reference of API arguments for DNS zone you can get at\n[documentation portal (private zone)](https://docs.otc.t-systems.com/domain-name-service/api-ref/apis/private_zone_management/querying_private_zones.html#dns-api-63006) and\n[documentation portal (public zone)](https://docs.otc.t-systems.com/domain-name-service/api-ref/apis/public_zone_management/querying_public_zones.html#dns-api-62003)\n\nUse this data source to get the ID of an available OpenTelekomCloud DNS zone.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst zone1 = opentelekomcloud.getDnsZoneV2({\n    name: \"example.com.\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nzone1 = opentelekomcloud.get_dns_zone_v2(name=\"example.com.\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var zone1 = Opentelekomcloud.GetDnsZoneV2.Invoke(new()\n    {\n        Name = \"example.com.\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupDnsZoneV2(ctx, &opentelekomcloud.LookupDnsZoneV2Args{\n\t\t\tName: pulumi.StringRef(\"example.com.\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDnsZoneV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var zone1 = OpentelekomcloudFunctions.getDnsZoneV2(GetDnsZoneV2Args.builder()\n            .name(\"example.com.\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  zone1:\n    fn::invoke:\n      function: opentelekomcloud:getDnsZoneV2\n      arguments:\n        name: example.com.\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getDnsZoneV2.\n","properties":{"description":{"description":"A description of the zone.\n","type":"string"},"email":{"description":"The email contact for the zone record.\n","type":"string"},"id":{"description":"The ID of the zone. If specified, the zone is retrieved\ndirectly by ID and other lookup arguments are ignored.\n","type":"string"},"name":{"description":"The name of the zone. A fuzzy search will be performed.\n","type":"string"},"status":{"description":"The zone's status.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags map to be matched.\nAn exact match will be performed. If the value starts with an\nasterisk (*), the string following the asterisk is fuzzy matched.\n","type":"object"},"ttl":{"description":"The time to live (TTL) of the zone.\n","type":"number"},"zoneType":{"description":"The type of the zone: <span pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\">`private`</span> or <span pulumi-lang-nodejs=\"`public`\" pulumi-lang-dotnet=\"`Public`\" pulumi-lang-go=\"`public`\" pulumi-lang-python=\"`public`\" pulumi-lang-yaml=\"`public`\" pulumi-lang-java=\"`public`\">`public`</span>.\nThis argument is **required** to match <span pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\">`private`</span> zones.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDnsZoneV2.\n","properties":{"createdAt":{"description":"The time the zone was created.\n","type":"string"},"description":{"type":"string"},"email":{"type":"string"},"id":{"description":"The ID of the zone.\n","type":"string"},"links":{"additionalProperties":{"type":"string"},"type":"object"},"masters":{"description":"An array of master DNS servers.\n","items":{"type":"string"},"type":"array"},"name":{"type":"string"},"poolId":{"description":"The ID of the pool hosting the zone.\n","type":"string"},"projectId":{"description":"The project ID that owns the zone.\n","type":"string"},"serial":{"description":"The serial number of the zone.\n","type":"number"},"status":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"ttl":{"type":"number"},"updatedAt":{"description":"The time the zone was last updated.\n","type":"string"},"zoneType":{"type":"string"}},"required":["createdAt","description","email","id","links","masters","name","poolId","projectId","serial","status","ttl","updatedAt","zoneType"],"type":"object"}},"opentelekomcloud:index/getDwsFlavorsV2:getDwsFlavorsV2":{"description":"Use this data source to get details about flavors from OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst flavor = opentelekomcloud.getDwsFlavorsV2({\n    vcpus: 32,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nflavor = opentelekomcloud.get_dws_flavors_v2(vcpus=32)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var flavor = Opentelekomcloud.GetDwsFlavorsV2.Invoke(new()\n    {\n        Vcpus = 32,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetDwsFlavorsV2(ctx, &opentelekomcloud.GetDwsFlavorsV2Args{\n\t\t\tVcpus: pulumi.Float64Ref(32),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDwsFlavorsV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var flavor = OpentelekomcloudFunctions.getDwsFlavorsV2(GetDwsFlavorsV2Args.builder()\n            .vcpus(32)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  flavor:\n    fn::invoke:\n      function: opentelekomcloud:getDwsFlavorsV2\n      arguments:\n        vcpus: 32\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getDwsFlavorsV2.\n","properties":{"availabilityZone":{"description":"Specifies the availability zone name.\n","type":"string"},"id":{"description":"Indicates a data source ID in UUID format.\n","type":"string"},"memory":{"description":"Specifies the ram of the dws node flavor in GB.\n","type":"number"},"region":{"description":"Specifies the region in which to obtain the dws cluster client. If omitted, the\nprovider-level region will be used.\n","type":"string"},"vcpus":{"description":"Specifies the vcpus of the dws node flavor.\n","type":"number"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDwsFlavorsV2.\n","properties":{"availabilityZone":{"description":"Indicates the availability zone where the node resides.\n","type":"string"},"flavors":{"description":"Indicates the flavors information. Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetDwsFlavorsV2Flavor:getDwsFlavorsV2Flavor"},"type":"array"},"id":{"description":"Indicates a data source ID in UUID format.\n","type":"string"},"memory":{"description":"Indicates the ram of the dws node flavor in GB.\n","type":"number"},"region":{"type":"string"},"vcpus":{"description":"Indicates the vcpus of the dws node flavor.\n","type":"number"}},"required":["flavors","id","region"],"type":"object"}},"opentelekomcloud:index/getEnterpriseVpnConnectionV5:getEnterpriseVpnConnectionV5":{"inputs":{"description":"A collection of arguments for invoking getEnterpriseVpnConnectionV5.\n","properties":{"id":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["id"],"type":"object"},"outputs":{"description":"A collection of values returned by getEnterpriseVpnConnectionV5.\n","properties":{"createdAt":{"type":"string"},"customerGatewayId":{"type":"string"},"enableNqa":{"type":"boolean"},"gatewayId":{"type":"string"},"gatewayIp":{"type":"string"},"haRole":{"type":"string"},"id":{"type":"string"},"ikepolicies":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetEnterpriseVpnConnectionV5Ikepolicy:getEnterpriseVpnConnectionV5Ikepolicy"},"type":"array"},"ipsecpolicies":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetEnterpriseVpnConnectionV5Ipsecpolicy:getEnterpriseVpnConnectionV5Ipsecpolicy"},"type":"array"},"name":{"type":"string"},"peerSubnets":{"items":{"type":"string"},"type":"array"},"policyRules":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetEnterpriseVpnConnectionV5PolicyRule:getEnterpriseVpnConnectionV5PolicyRule"},"type":"array"},"region":{"type":"string"},"status":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"tunnelLocalAddress":{"type":"string"},"tunnelPeerAddress":{"type":"string"},"updatedAt":{"type":"string"},"vpnType":{"type":"string"}},"required":["createdAt","customerGatewayId","enableNqa","gatewayId","gatewayIp","haRole","id","ikepolicies","ipsecpolicies","name","peerSubnets","policyRules","region","status","tunnelLocalAddress","tunnelPeerAddress","updatedAt","vpnType"],"type":"object"}},"opentelekomcloud:index/getEnterpriseVpnCustomerGatewayV5:getEnterpriseVpnCustomerGatewayV5":{"inputs":{"description":"A collection of arguments for invoking getEnterpriseVpnCustomerGatewayV5.\n","properties":{"id":{"type":"string"}},"required":["id"],"type":"object"},"outputs":{"description":"A collection of values returned by getEnterpriseVpnCustomerGatewayV5.\n","properties":{"asn":{"type":"number"},"createdAt":{"type":"string"},"id":{"type":"string"},"idType":{"type":"string"},"idValue":{"type":"string"},"ip":{"type":"string"},"name":{"type":"string"},"region":{"type":"string"},"routeMode":{"type":"string"},"updatedAt":{"type":"string"}},"required":["asn","createdAt","id","idType","idValue","ip","name","region","routeMode","updatedAt"],"type":"object"}},"opentelekomcloud:index/getEnterpriseVpnGatewayV5:getEnterpriseVpnGatewayV5":{"inputs":{"description":"A collection of arguments for invoking getEnterpriseVpnGatewayV5.\n","properties":{"id":{"type":"string"}},"required":["id"],"type":"object"},"outputs":{"description":"A collection of values returned by getEnterpriseVpnGatewayV5.\n","properties":{"accessPrivateIp1":{"type":"string"},"accessPrivateIp2":{"type":"string"},"accessSubnetId":{"type":"string"},"accessVpcId":{"type":"string"},"asn":{"type":"number"},"attachmentType":{"type":"string"},"availabilityZones":{"items":{"type":"string"},"type":"array"},"connectSubnet":{"type":"string"},"createdAt":{"type":"string"},"eip1s":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetEnterpriseVpnGatewayV5Eip1:getEnterpriseVpnGatewayV5Eip1"},"type":"array"},"eip2s":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetEnterpriseVpnGatewayV5Eip2:getEnterpriseVpnGatewayV5Eip2"},"type":"array"},"erId":{"type":"string"},"flavor":{"type":"string"},"haMode":{"type":"string"},"id":{"type":"string"},"localSubnets":{"items":{"type":"string"},"type":"array"},"name":{"type":"string"},"networkType":{"type":"string"},"region":{"type":"string"},"status":{"type":"string"},"updatedAt":{"type":"string"},"usedConnectionGroup":{"type":"number"},"usedConnectionNumber":{"type":"number"},"vpcId":{"type":"string"}},"required":["accessPrivateIp1","accessPrivateIp2","accessSubnetId","accessVpcId","asn","attachmentType","availabilityZones","connectSubnet","createdAt","eip1s","eip2s","erId","flavor","haMode","id","localSubnets","name","networkType","region","status","updatedAt","usedConnectionGroup","usedConnectionNumber","vpcId"],"type":"object"}},"opentelekomcloud:index/getErAssociationsV3:getErAssociationsV3":{"description":"Use this data source to get the list of associations.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst routeTableId = config.requireObject<any>(\"routeTableId\");\nconst test = opentelekomcloud.getErAssociationsV3({\n    instanceId: instanceId,\n    routeTableId: routeTableId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nroute_table_id = config.require_object(\"routeTableId\")\ntest = opentelekomcloud.get_er_associations_v3(instance_id=instance_id,\n    route_table_id=route_table_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var routeTableId = config.RequireObject<dynamic>(\"routeTableId\");\n    var test = Opentelekomcloud.GetErAssociationsV3.Invoke(new()\n    {\n        InstanceId = instanceId,\n        RouteTableId = routeTableId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\trouteTableId := cfg.RequireObject(\"routeTableId\")\n\t\t_, err := opentelekomcloud.GetErAssociationsV3(ctx, &opentelekomcloud.GetErAssociationsV3Args{\n\t\t\tInstanceId:   instanceId,\n\t\t\tRouteTableId: routeTableId,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetErAssociationsV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var routeTableId = config.get(\"routeTableId\");\n        final var test = OpentelekomcloudFunctions.getErAssociationsV3(GetErAssociationsV3Args.builder()\n            .instanceId(instanceId)\n            .routeTableId(routeTableId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  routeTableId:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getErAssociationsV3\n      arguments:\n        instanceId: ${instanceId}\n        routeTableId: ${routeTableId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getErAssociationsV3.\n","properties":{"attachmentId":{"description":"Specifies the attachment ID corresponding to the association.\n","type":"string"},"attachmentType":{"description":"Specifies the attachment type corresponding to the association.\n","type":"string"},"id":{"description":"The association ID.\n","type":"string"},"instanceId":{"description":"Specifies the ER instance ID to which the association belongs.\n","type":"string"},"routeTableId":{"description":"Specifies the route table ID to which the association belongs.\n","type":"string"},"status":{"description":"Specifies the status of the association. Default value is <span pulumi-lang-nodejs=\"`available`\" pulumi-lang-dotnet=\"`Available`\" pulumi-lang-go=\"`available`\" pulumi-lang-python=\"`available`\" pulumi-lang-yaml=\"`available`\" pulumi-lang-java=\"`available`\">`available`</span>.\nThe valid values are as follows:\n+ **available**\n+ **failed**\n","type":"string"}},"required":["instanceId","routeTableId"],"type":"object"},"outputs":{"description":"A collection of values returned by getErAssociationsV3.\n","properties":{"associations":{"description":"All associations that match the filter parameters.\nThe associations structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetErAssociationsV3Association:getErAssociationsV3Association"},"type":"array"},"attachmentId":{"description":"The attachment ID corresponding to the association.\n","type":"string"},"attachmentType":{"description":"The type of the attachment corresponding to the association.\n","type":"string"},"id":{"description":"The association ID.\n","type":"string"},"instanceId":{"type":"string"},"routeTableId":{"type":"string"},"status":{"description":"The current status of the association.\n","type":"string"}},"required":["associations","id","instanceId","routeTableId"],"type":"object"}},"opentelekomcloud:index/getErAvailabilityZonesV3:getErAvailabilityZonesV3":{"description":"Use this data source to query availability zones where ER instances can be created within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst zones = opentelekomcloud.getErAvailabilityZonesV3({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nzones = opentelekomcloud.get_er_availability_zones_v3()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var zones = Opentelekomcloud.GetErAvailabilityZonesV3.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetErAvailabilityZonesV3(ctx, &opentelekomcloud.GetErAvailabilityZonesV3Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetErAvailabilityZonesV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var zones = OpentelekomcloudFunctions.getErAvailabilityZonesV3(GetErAvailabilityZonesV3Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  zones:\n    fn::invoke:\n      function: opentelekomcloud:getErAvailabilityZonesV3\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getErAvailabilityZonesV3.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getErAvailabilityZonesV3.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"},"names":{"description":"The names of availability zone.\n","items":{"type":"string"},"type":"array"},"region":{"description":"The region where resources are located.\n","type":"string"}},"required":["id","names","region"],"type":"object"}},"opentelekomcloud:index/getErFlowLogsV3:getErFlowLogsV3":{"description":"Use this data source to get the list of flow logs.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst resourceId = config.requireObject<any>(\"resourceId\");\nconst test = opentelekomcloud.getErFlowLogsV3({\n    instanceId: instanceId,\n    resourceId: resourceId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nresource_id = config.require_object(\"resourceId\")\ntest = opentelekomcloud.get_er_flow_logs_v3(instance_id=instance_id,\n    resource_id=resource_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var resourceId = config.RequireObject<dynamic>(\"resourceId\");\n    var test = Opentelekomcloud.GetErFlowLogsV3.Invoke(new()\n    {\n        InstanceId = instanceId,\n        ResourceId = resourceId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tresourceId := cfg.RequireObject(\"resourceId\")\n\t\t_, err := opentelekomcloud.GetErFlowLogsV3(ctx, &opentelekomcloud.GetErFlowLogsV3Args{\n\t\t\tInstanceId: instanceId,\n\t\t\tResourceId: pulumi.StringRef(resourceId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetErFlowLogsV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var resourceId = config.get(\"resourceId\");\n        final var test = OpentelekomcloudFunctions.getErFlowLogsV3(GetErFlowLogsV3Args.builder()\n            .instanceId(instanceId)\n            .resourceId(resourceId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  resourceId:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getErFlowLogsV3\n      arguments:\n        instanceId: ${instanceId}\n        resourceId: ${resourceId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getErFlowLogsV3.\n","properties":{"enabled":{"description":"Specifies the switch status of the flow log.\nThe value can be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> and <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"string"},"flowLogId":{"description":"Specifies the ID of the flow log.\n","type":"string"},"id":{"description":"The ID of the flow log.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the ER instance to which the flow logs belong.\n","type":"string"},"logGroupId":{"description":"Specifies the ID of the log group to which the flow logs belong.\n","type":"string"},"logStreamId":{"description":"Specifies the ID of the log stream to which the flow logs belong.\n","type":"string"},"name":{"description":"Specifies the name of the flow log.\n","type":"string"},"resourceId":{"description":"Specifies the ID of the attachment to which the flow logs belong.\n","type":"string"},"resourceType":{"description":"Specifies the type of the flow logs.\nThe valid values are as follows:\n","type":"string"},"status":{"description":"Specifies the status of the flow logs.\n","type":"string"}},"required":["instanceId"],"type":"object"},"outputs":{"description":"A collection of values returned by getErFlowLogsV3.\n","properties":{"enabled":{"description":"The switch of the flow log.\n","type":"string"},"flowLogId":{"type":"string"},"flowLogs":{"description":"The list ot the flow logs.\nThe<span pulumi-lang-nodejs=\" flowLogs \" pulumi-lang-dotnet=\" FlowLogs \" pulumi-lang-go=\" flowLogs \" pulumi-lang-python=\" flow_logs \" pulumi-lang-yaml=\" flowLogs \" pulumi-lang-java=\" flowLogs \"> flow_logs </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetErFlowLogsV3FlowLog:getErFlowLogsV3FlowLog"},"type":"array"},"id":{"description":"The ID of the flow log.\n","type":"string"},"instanceId":{"type":"string"},"logGroupId":{"description":"The ID of the log group to which the flow log belongs.\n","type":"string"},"logStreamId":{"description":"The ID of the log stream to which the flow log belongs.\n","type":"string"},"name":{"description":"The name of the flow log.\n","type":"string"},"region":{"description":"Region where the flow logs are located.\n","type":"string"},"resourceId":{"description":"The ID of the attachment to which the flow log belongs.\n","type":"string"},"resourceType":{"description":"The type of the flow log.\n","type":"string"},"status":{"description":"The status of the flow log.\n","type":"string"}},"required":["flowLogs","id","instanceId","region"],"type":"object"}},"opentelekomcloud:index/getErInstancesV3:getErInstancesV3":{"description":"Use this data source to filter ER instances within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = opentelekomcloud.getErInstancesV3({\n    tags: {\n        foo: \"bar\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.get_er_instances_v3(tags={\n    \"foo\": \"bar\",\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = Opentelekomcloud.GetErInstancesV3.Invoke(new()\n    {\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetErInstancesV3(ctx, &opentelekomcloud.GetErInstancesV3Args{\n\t\t\tTags: map[string]interface{}{\n\t\t\t\t\"foo\": \"bar\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetErInstancesV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = OpentelekomcloudFunctions.getErInstancesV3(GetErInstancesV3Args.builder()\n            .tags(Map.of(\"foo\", \"bar\"))\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getErInstancesV3\n      arguments:\n        tags:\n          foo: bar\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getErInstancesV3.\n","properties":{"id":{"description":"The ER instance ID.\n","type":"string"},"instanceId":{"description":"Specifies the ID used to query specified ER instance.\n","type":"string"},"name":{"description":"Specifies the name used to filter the ER instances.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, only Chinese and English letters, digits, underscores (_) and\nhyphens (-) are allowed.\n","type":"string"},"region":{"description":"The region where the ER instances are located.\n","type":"string"},"status":{"description":"Specifies the status used to filter the ER instances.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value pairs used to filter the ER instances.\n","type":"object"}},"type":"object"},"outputs":{"description":"A collection of values returned by getErInstancesV3.\n","properties":{"id":{"description":"The ER instance ID.\n","type":"string"},"instanceId":{"type":"string"},"instances":{"description":"All instances that match the filter parameters.\nThe object structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetErInstancesV3Instance:getErInstancesV3Instance"},"type":"array"},"name":{"description":"The name of the ER instance.\n","type":"string"},"region":{"description":"The region where the ER instances are located.\n","type":"string"},"status":{"description":"The current status of the ER instance.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The key/value pairs to associate with the ER instance.\n","type":"object"}},"required":["id","instances"],"type":"object"}},"opentelekomcloud:index/getErPropagationsV3:getErPropagationsV3":{"description":"Use this data source to get the list of propagations.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst routeTableId = config.requireObject<any>(\"routeTableId\");\nconst attachmentId = config.requireObject<any>(\"attachmentId\");\nconst test = opentelekomcloud.getErPropagationsV3({\n    instanceId: instanceId,\n    routeTableId: routeTableId,\n    attachmentId: attachmentId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nroute_table_id = config.require_object(\"routeTableId\")\nattachment_id = config.require_object(\"attachmentId\")\ntest = opentelekomcloud.get_er_propagations_v3(instance_id=instance_id,\n    route_table_id=route_table_id,\n    attachment_id=attachment_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var routeTableId = config.RequireObject<dynamic>(\"routeTableId\");\n    var attachmentId = config.RequireObject<dynamic>(\"attachmentId\");\n    var test = Opentelekomcloud.GetErPropagationsV3.Invoke(new()\n    {\n        InstanceId = instanceId,\n        RouteTableId = routeTableId,\n        AttachmentId = attachmentId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\trouteTableId := cfg.RequireObject(\"routeTableId\")\n\t\tattachmentId := cfg.RequireObject(\"attachmentId\")\n\t\t_, err := opentelekomcloud.GetErPropagationsV3(ctx, &opentelekomcloud.GetErPropagationsV3Args{\n\t\t\tInstanceId:   instanceId,\n\t\t\tRouteTableId: routeTableId,\n\t\t\tAttachmentId: pulumi.StringRef(attachmentId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetErPropagationsV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var routeTableId = config.get(\"routeTableId\");\n        final var attachmentId = config.get(\"attachmentId\");\n        final var test = OpentelekomcloudFunctions.getErPropagationsV3(GetErPropagationsV3Args.builder()\n            .instanceId(instanceId)\n            .routeTableId(routeTableId)\n            .attachmentId(attachmentId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  routeTableId:\n    type: dynamic\n  attachmentId:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getErPropagationsV3\n      arguments:\n        instanceId: ${instanceId}\n        routeTableId: ${routeTableId}\n        attachmentId: ${attachmentId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getErPropagationsV3.\n","properties":{"attachmentId":{"description":"Specifies the attachment ID to which the propagation belongs.\n","type":"string"},"attachmentType":{"description":"Specifies the attachment type of corresponding to the propagation.\nThe valid values are as follows:\n+ **vpc**: Virtual private cloud.\n+ **vpn**: VPN gateway.\n+ **vgw**: Virtual gateway of cloud private line.\n+ **peering**: Peering connection, through the cloud connection (CC) to load ERs in different regions to create a\npeering connection.\n+ **enc**: Enterprise connect network in EC.\n+ **cfw**: VPC border firewall.\n","type":"string"},"id":{"description":"The propagation ID.\n","type":"string"},"instanceId":{"description":"Specifies the ER instance ID to which the propagation belongs.\n","type":"string"},"routeTableId":{"description":"Specifies the route table ID to which the propagation belongs.\n","type":"string"},"status":{"description":"Specifies the status of the propagation. Default value is <span pulumi-lang-nodejs=\"`available`\" pulumi-lang-dotnet=\"`Available`\" pulumi-lang-go=\"`available`\" pulumi-lang-python=\"`available`\" pulumi-lang-yaml=\"`available`\" pulumi-lang-java=\"`available`\">`available`</span>.\nThe valid values are as follows:\n+ **available**\n+ **failed**\n","type":"string"}},"required":["instanceId","routeTableId"],"type":"object"},"outputs":{"description":"A collection of values returned by getErPropagationsV3.\n","properties":{"attachmentId":{"description":"The attachment ID corresponding to the propagation.\n","type":"string"},"attachmentType":{"description":"The attachment type corresponding to the propagation.\n","type":"string"},"id":{"description":"The propagation ID.\n","type":"string"},"instanceId":{"description":"The ER instance ID to which the propagation belongs.\n","type":"string"},"propagations":{"description":"All propagations that match the filter parameters.\nThe propagations structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetErPropagationsV3Propagation:getErPropagationsV3Propagation"},"type":"array"},"routeTableId":{"description":"The route table ID of corresponding to the propagation.\n","type":"string"},"status":{"description":"The current status of the propagation.\n","type":"string"}},"required":["id","instanceId","propagations","routeTableId"],"type":"object"}},"opentelekomcloud:index/getErQuotasV3:getErQuotasV3":{"description":"Using this data source to query the list of available resource quotas within OpenTelekomCloud.\n\n> Using an invalid ID to filter the results will not report an error or return an empty list, but will return a quota\n   list with all usage equal to 0.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = opentelekomcloud.getErQuotasV3({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.get_er_quotas_v3()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = Opentelekomcloud.GetErQuotasV3.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetErQuotasV3(ctx, &opentelekomcloud.GetErQuotasV3Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetErQuotasV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = OpentelekomcloudFunctions.getErQuotasV3(GetErQuotasV3Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getErQuotasV3\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getErQuotasV3.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"},"instanceId":{"description":"The instance ID.\n","type":"string"},"routeTableId":{"description":"The route table ID.\n","type":"string"},"type":{"description":"The quota type to be queried.\nThe valid values are as follows:\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getErQuotasV3.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"},"instanceId":{"type":"string"},"quotas":{"description":"All quotas that match the filter parameters.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetErQuotasV3Quota:getErQuotasV3Quota"},"type":"array"},"region":{"description":"The region where resources are located.\n","type":"string"},"routeTableId":{"type":"string"},"type":{"description":"The quota type.\n","type":"string"}},"required":["id","quotas","region"],"type":"object"}},"opentelekomcloud:index/getErRouteTablesV3:getErRouteTablesV3":{"description":"Use this data source to query the route tables under the ER instance within OpenTelekomCloud.\n\n## Example Usage\n\n### Querying specified route tables under ER instance using name\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst routeTableName = config.requireObject<any>(\"routeTableName\");\nconst test = opentelekomcloud.getErRouteTablesV3({\n    instanceId: instanceId,\n    name: routeTableName,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nroute_table_name = config.require_object(\"routeTableName\")\ntest = opentelekomcloud.get_er_route_tables_v3(instance_id=instance_id,\n    name=route_table_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var routeTableName = config.RequireObject<dynamic>(\"routeTableName\");\n    var test = Opentelekomcloud.GetErRouteTablesV3.Invoke(new()\n    {\n        InstanceId = instanceId,\n        Name = routeTableName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\trouteTableName := cfg.RequireObject(\"routeTableName\")\n\t\t_, err := opentelekomcloud.GetErRouteTablesV3(ctx, &opentelekomcloud.GetErRouteTablesV3Args{\n\t\t\tInstanceId: instanceId,\n\t\t\tName:       pulumi.StringRef(routeTableName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetErRouteTablesV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var routeTableName = config.get(\"routeTableName\");\n        final var test = OpentelekomcloudFunctions.getErRouteTablesV3(GetErRouteTablesV3Args.builder()\n            .instanceId(instanceId)\n            .name(routeTableName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  routeTableName:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getErRouteTablesV3\n      arguments:\n        instanceId: ${instanceId}\n        name: ${routeTableName}\n```\n<!--End PulumiCodeChooser -->\n\n### Querying specified route tables under ER instance using tags\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst test = opentelekomcloud.getErRouteTablesV3({\n    instanceId: instanceId,\n    tags: {\n        foo: \"bar\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ntest = opentelekomcloud.get_er_route_tables_v3(instance_id=instance_id,\n    tags={\n        \"foo\": \"bar\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var test = Opentelekomcloud.GetErRouteTablesV3.Invoke(new()\n    {\n        InstanceId = instanceId,\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\t_, err := opentelekomcloud.GetErRouteTablesV3(ctx, &opentelekomcloud.GetErRouteTablesV3Args{\n\t\t\tInstanceId: instanceId,\n\t\t\tTags: map[string]interface{}{\n\t\t\t\t\"foo\": \"bar\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetErRouteTablesV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var test = OpentelekomcloudFunctions.getErRouteTablesV3(GetErRouteTablesV3Args.builder()\n            .instanceId(instanceId)\n            .tags(Map.of(\"foo\", \"bar\"))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getErRouteTablesV3\n      arguments:\n        instanceId: ${instanceId}\n        tags:\n          foo: bar\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getErRouteTablesV3.\n","properties":{"id":{"description":"The route ID.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the ER instance to which the route tables belongs.\n","type":"string"},"name":{"description":"Specifies the name used to filter the route tables.\nThe name can contain <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span> characters, only English letters, digits, underscore (_),\nhyphens (-) and dots (.) allowed.\n","type":"string"},"routeTableId":{"description":"Specifies the route table ID used to query specified route table.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value pairs used to filter the route tables.\n","type":"object"}},"required":["instanceId"],"type":"object"},"outputs":{"description":"A collection of values returned by getErRouteTablesV3.\n","properties":{"id":{"description":"The route ID.\n","type":"string"},"instanceId":{"type":"string"},"name":{"description":"The name of the route table.\n","type":"string"},"routeTableId":{"type":"string"},"routeTables":{"description":"All route tables that match the filter parameters.\nThe object structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetErRouteTablesV3RouteTable:getErRouteTablesV3RouteTable"},"type":"array"},"tags":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["id","instanceId","routeTables"],"type":"object"}},"opentelekomcloud:index/getEvsVolumesV2:getEvsVolumesV2":{"description":"Use this data source to query the detailed information list of the EVS disks within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst targetServer = config.requireObject<any>(\"targetServer\");\nconst test = opentelekomcloud.getEvsVolumesV2({\n    serverId: targetServer,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ntarget_server = config.require_object(\"targetServer\")\ntest = opentelekomcloud.get_evs_volumes_v2(server_id=target_server)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var targetServer = config.RequireObject<dynamic>(\"targetServer\");\n    var test = Opentelekomcloud.GetEvsVolumesV2.Invoke(new()\n    {\n        ServerId = targetServer,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\ttargetServer := cfg.RequireObject(\"targetServer\")\n\t\t_, err := opentelekomcloud.GetEvsVolumesV2(ctx, &opentelekomcloud.GetEvsVolumesV2Args{\n\t\t\tServerId: pulumi.StringRef(targetServer),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetEvsVolumesV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var targetServer = config.get(\"targetServer\");\n        final var test = OpentelekomcloudFunctions.getEvsVolumesV2(GetEvsVolumesV2Args.builder()\n            .serverId(targetServer)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  targetServer:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getEvsVolumesV2\n      arguments:\n        serverId: ${targetServer}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getEvsVolumesV2.\n","properties":{"availabilityZone":{"description":"Specifies the availability zone for the disks.\n","type":"string"},"id":{"description":"The ID of the attached resource in UUID format.\n","type":"string"},"name":{"description":"Specifies the name for the disks. This field will undergo a fuzzy matching query, the\nquery result is for all disks whose names contain this value.\n","type":"string"},"serverId":{"description":"Specifies the server ID to which the disks are attached.\n","type":"string"},"shareable":{"description":"Specifies whether the disk is shareable.\n","type":"boolean"},"status":{"description":"Specifies the disk status. The valid values are as following:\n+ **FREEZED**\n+ **BIND_ERROR**\n+ **BINDING**\n+ **PENDING_DELETE**\n+ **PENDING_CREATE**\n+ **NOTIFYING**\n+ **NOTIFY_DELETE**\n+ **PENDING_UPDATE**\n+ **DOWN**\n+ **ACTIVE**\n+ **ELB**\n+ **ERROR**\n+ **VPN**\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the included key/value pairs which associated with the desired disk.\n","type":"object"},"volumeId":{"description":"Specifies the ID for the disk.\n","type":"string"},"volumeTypeId":{"description":"Specifies the type ID for the disks.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEvsVolumesV2.\n","properties":{"availabilityZone":{"description":"The availability zone of the disk.\n","type":"string"},"id":{"description":"The ID of the attached resource in UUID format.\n","type":"string"},"name":{"description":"The disk name.\n","type":"string"},"serverId":{"description":"The ID of the server to which the disk is attached.\n","type":"string"},"shareable":{"description":"Whether the disk is shareable.\n","type":"boolean"},"status":{"description":"The disk status.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The disk tags.\n","type":"object"},"volumeId":{"type":"string"},"volumeTypeId":{"type":"string"},"volumes":{"description":"The detailed information of the disks. Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetEvsVolumesV2Volume:getEvsVolumesV2Volume"},"type":"array"}},"required":["id","volumes"],"type":"object"}},"opentelekomcloud:index/getFgsFunctionsV2:getFgsFunctionsV2":{"description":"Use this data source to filter FGS functions within OpenTelekomCloud.\n\n## Example Usage\n\n### Obtain all public functions\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = opentelekomcloud.getFgsFunctionsV2({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.get_fgs_functions_v2()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = Opentelekomcloud.GetFgsFunctionsV2.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetFgsFunctionsV2(ctx, &opentelekomcloud.GetFgsFunctionsV2Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetFgsFunctionsV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = OpentelekomcloudFunctions.getFgsFunctionsV2(GetFgsFunctionsV2Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getFgsFunctionsV2\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getFgsFunctionsV2.\n","properties":{"enterpriseProjectId":{"description":"Specifies the ID of the enterprise project to which the functions belong.\n","type":"string"},"id":{"description":"The data source ID.\n","type":"string"},"name":{"description":"Specifies the function name used to query the specified function.\n","type":"string"},"packageName":{"description":"Specifies the package name used to query the functions.\n","type":"string"},"runtime":{"description":"Specifies the dependency package runtime used to query the functions.\nThe valid values are as follows:\n+ **Java8**\n+ **Java11**\n+ **Node.js6.10**\n+ **Node.js8.10**\n+ **Node.js10.16**\n+ **Node.js12.13**\n+ **Node.js14.18**\n+ **Node.js16.17**\n+ **Node.js18.15**\n+ **Python2.7**\n+ **Python3.6**\n+ **Python3.9**\n+ **Python3.10**\n+ **Go1.x**\n+ **C#(.NET Core 2.1)**\n+ **C#(.NET Core 3.1)**\n+ **Custom**\n+ **PHP7.3**\n+ **http**\n+ **Custom Image**\n+ **Cangjie1.0**\n","type":"string"},"urn":{"description":"Specifies the function URN used to query the specified function.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getFgsFunctionsV2.\n","properties":{"enterpriseProjectId":{"description":"The enterprise project ID to which the function belongs.\n","type":"string"},"functions":{"description":"All functions that match the filter parameters.\nThe functions structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetFgsFunctionsV2Function:getFgsFunctionsV2Function"},"type":"array"},"id":{"description":"The data source ID.\n","type":"string"},"name":{"description":"The function name.\n","type":"string"},"packageName":{"type":"string"},"region":{"description":"The functionGraph region.\n","type":"string"},"runtime":{"description":"The dependency package runtime of the function.\n","type":"string"},"urn":{"description":"The function URN.\n","type":"string"}},"required":["functions","id","region"],"type":"object"}},"opentelekomcloud:index/getGeminiInstanceTemplateV3:getGeminiInstanceTemplateV3":{"description":"Use this data source to query GeminiDB instance parameter settings.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst test = opentelekomcloud.getGeminiInstanceTemplateV3({\n    instanceId: instanceId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ntest = opentelekomcloud.get_gemini_instance_template_v3(instance_id=instance_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var test = Opentelekomcloud.GetGeminiInstanceTemplateV3.Invoke(new()\n    {\n        InstanceId = instanceId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\t_, err := opentelekomcloud.GetGeminiInstanceTemplateV3(ctx, &opentelekomcloud.GetGeminiInstanceTemplateV3Args{\n\t\t\tInstanceId: instanceId,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetGeminiInstanceTemplateV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var test = OpentelekomcloudFunctions.getGeminiInstanceTemplateV3(GetGeminiInstanceTemplateV3Args.builder()\n            .instanceId(instanceId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getGeminiInstanceTemplateV3\n      arguments:\n        instanceId: ${instanceId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getGeminiInstanceTemplateV3.\n","properties":{"id":{"description":"The parameter template ID.\n","type":"string"},"instanceId":{"description":"Specifies the instance ID.\n","type":"string"}},"required":["instanceId"],"type":"object"},"outputs":{"description":"A collection of values returned by getGeminiInstanceTemplateV3.\n","properties":{"configurationParameters":{"description":"Indicates the list of parameters defined by users based on a default parameter template.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetGeminiInstanceTemplateV3ConfigurationParameter:getGeminiInstanceTemplateV3ConfigurationParameter"},"type":"array"},"createdAt":{"description":"Indicates the creation time in the **yyyy-MM-ddTHH:mm:ssZ** format.\n","type":"string"},"datastoreName":{"description":"Indicates the database name.\n","type":"string"},"datastoreVersionName":{"description":"Indicates the database version name.\n","type":"string"},"id":{"description":"The parameter template ID.\n","type":"string"},"instanceId":{"type":"string"},"mode":{"description":"Indicates the instance type.\n","type":"string"},"region":{"description":"The parameter region.\n","type":"string"},"updatedAt":{"description":"Indicates the update time in the **yyyy-MM-ddTHH:mm:ssZ** format.\n","type":"string"}},"required":["configurationParameters","createdAt","datastoreName","datastoreVersionName","id","instanceId","mode","region","updatedAt"],"type":"object"}},"opentelekomcloud:index/getGeminiInstancesV3:getGeminiInstancesV3":{"description":"Use this data source to get available OpenTelekomCloud GeminiDB Cassandra instances.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst _this = opentelekomcloud.getGeminiInstancesV3({\n    name: \"gemini-instance\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nthis = opentelekomcloud.get_gemini_instances_v3(name=\"gemini-instance\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var @this = Opentelekomcloud.GetGeminiInstancesV3.Invoke(new()\n    {\n        Name = \"gemini-instance\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetGeminiInstancesV3(ctx, &opentelekomcloud.GetGeminiInstancesV3Args{\n\t\t\tName: pulumi.StringRef(\"gemini-instance\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetGeminiInstancesV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var this = OpentelekomcloudFunctions.getGeminiInstancesV3(GetGeminiInstancesV3Args.builder()\n            .name(\"gemini-instance\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  this:\n    fn::invoke:\n      function: opentelekomcloud:getGeminiInstancesV3\n      arguments:\n        name: gemini-instance\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getGeminiInstancesV3.\n","properties":{"id":{"description":"Indicates the node ID.\n","type":"string"},"name":{"description":"Specifies the name of the instance.\n","type":"string"},"subnetId":{"description":"Specifies the network ID of a subnet.\n","type":"string"},"vpcId":{"description":"Specifies the VPC ID.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getGeminiInstancesV3.\n","properties":{"id":{"description":"Indicates the node ID.\n","type":"string"},"instances":{"description":"An array of available instances.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetGeminiInstancesV3Instance:getGeminiInstancesV3Instance"},"type":"array"},"name":{"description":"Indicates the node name.\n","type":"string"},"subnetId":{"description":"Indicates the network ID of a subnet.\n","type":"string"},"vpcId":{"description":"Indicates the VPC ID.\n","type":"string"}},"required":["id","instances"],"type":"object"}},"opentelekomcloud:index/getGeminiQuotasV3:getGeminiQuotasV3":{"description":"Use this data source to get the list of GeminiDB resource quotas for your tenant.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = opentelekomcloud.getGeminiQuotasV3({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.get_gemini_quotas_v3()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = Opentelekomcloud.GetGeminiQuotasV3.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetGeminiQuotasV3(ctx, &opentelekomcloud.GetGeminiQuotasV3Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetGeminiQuotasV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = OpentelekomcloudFunctions.getGeminiQuotasV3(GetGeminiQuotasV3Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getGeminiQuotasV3\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getGeminiQuotasV3.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getGeminiQuotasV3.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"},"quotas":{"description":"Indicates the list of resource quotas.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetGeminiQuotasV3Quota:getGeminiQuotasV3Quota"},"type":"array"},"region":{"description":"The data source region.\n","type":"string"}},"required":["id","quotas","region"],"type":"object"}},"opentelekomcloud:index/getGeminiTemplatesV3:getGeminiTemplatesV3":{"description":"Use this data source to get the list of GeminiDB parameter templates, including all of the default and custom parameter templates.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = opentelekomcloud.getGeminiTemplatesV3({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.get_gemini_templates_v3()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = Opentelekomcloud.GetGeminiTemplatesV3.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetGeminiTemplatesV3(ctx, &opentelekomcloud.GetGeminiTemplatesV3Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetGeminiTemplatesV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = OpentelekomcloudFunctions.getGeminiTemplatesV3(GetGeminiTemplatesV3Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getGeminiTemplatesV3\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getGeminiTemplatesV3.\n","properties":{"id":{"description":"Indicates the ID of the parameter template.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getGeminiTemplatesV3.\n","properties":{"id":{"description":"Indicates the ID of the parameter template.\n","type":"string"},"region":{"description":"The data source region.\n","type":"string"},"templates":{"description":"Indicates the list of parameter templates.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetGeminiTemplatesV3Template:getGeminiTemplatesV3Template"},"type":"array"}},"required":["id","region","templates"],"type":"object"}},"opentelekomcloud:index/getHssHostGroupsV5:getHssHostGroupsV5":{"description":"Up-to-date reference of API arguments for EIP status you can get at\n[documentation portal](https://docs.otc.t-systems.com/host-security-service/api-ref/api_description/server_management/querying_server_groups.html#listhostgroups)\n\nUse this data source to get the list of HSS host groups within OpenTelekomCloud.\n\n","inputs":{"description":"A collection of arguments for invoking getHssHostGroupsV5.\n","properties":{"groupId":{"description":"Specifies the ID of the host group to be queried.\n","type":"string"},"hostNum":{"description":"Specifies the number of hosts in the host groups to be queried.\n","type":"string"},"id":{"description":"The ID of the host group.\n","type":"string"},"name":{"description":"Specifies the name of the host group to be queried. This field will undergo a fuzzy\nmatching query, the query result is for all host groups whose names contain this value.\n","type":"string"},"riskHostNum":{"description":"Specifies the number of risky hosts in the host groups to be queried.\n","type":"string"},"unprotectHostNum":{"description":"Specifies the number of unprotected hosts in the host groups to be queried.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getHssHostGroupsV5.\n","properties":{"groupId":{"type":"string"},"groups":{"description":"All host groups that match the filter parameters.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetHssHostGroupsV5Group:getHssHostGroupsV5Group"},"type":"array"},"hostNum":{"description":"The number of hosts in the host group.\n","type":"string"},"id":{"description":"The ID of the host group.\n","type":"string"},"name":{"description":"The name of the host group.\n","type":"string"},"region":{"description":"The region in which to query the HSS host groups.\n","type":"string"},"riskHostNum":{"description":"The number of risky hosts in the host group.\n","type":"string"},"unprotectHostNum":{"description":"The number of unprotected hosts in the host group.\n","type":"string"}},"required":["groups","id","region"],"type":"object"}},"opentelekomcloud:index/getHssHostsV5:getHssHostsV5":{"description":"Up-to-date reference of API arguments for EIP status you can get at\n[documentation portal](https://docs.otc.t-systems.com/host-security-service/api-ref/api_description/server_management/querying_ecss.html#listhoststatus)\n\nUse this data source to get the list of HSS hosts within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst hostId = config.requireObject<any>(\"hostId\");\nconst test = opentelekomcloud.getHssHostsV5({\n    hostId: hostId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nhost_id = config.require_object(\"hostId\")\ntest = opentelekomcloud.get_hss_hosts_v5(host_id=host_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var hostId = config.RequireObject<dynamic>(\"hostId\");\n    var test = Opentelekomcloud.GetHssHostsV5.Invoke(new()\n    {\n        HostId = hostId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\thostId := cfg.RequireObject(\"hostId\")\n\t\t_, err := opentelekomcloud.GetHssHostsV5(ctx, &opentelekomcloud.GetHssHostsV5Args{\n\t\t\tHostId: pulumi.StringRef(hostId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetHssHostsV5Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var hostId = config.get(\"hostId\");\n        final var test = OpentelekomcloudFunctions.getHssHostsV5(GetHssHostsV5Args.builder()\n            .hostId(hostId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  hostId:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getHssHostsV5\n      arguments:\n        hostId: ${hostId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getHssHostsV5.\n","properties":{"agentStatus":{"description":"Specifies the agent status of the hosts to be queried.\nThe valid values are as follows:\n","type":"string"},"assetValue":{"description":"Specifies the asset importance of the hosts to be queried.\nThe valid values are as follows:\n","type":"string"},"detectResult":{"description":"Specifies the security detection result of the hosts to be queried.\nThe valid values are as follows:\n","type":"string"},"groupId":{"description":"Specifies the host group ID of the hosts to be queried.\n","type":"string"},"hostId":{"description":"Specifies the ID of the host to be queried.\n","type":"string"},"id":{"description":"The ID of the host.\n","type":"string"},"name":{"description":"Specifies the name of the host to be queried.\nThis field will undergo a fuzzy matching query, the query result is for all hosts whose names contain this value.\n","type":"string"},"osType":{"description":"Specifies the operating system type of the hosts to be queried.\nThe valid values are as follows:\n+ `Linux`\n+ `Windows`\n","type":"string"},"policyGroupId":{"description":"Specifies the policy group ID of the hosts to be queried.\n","type":"string"},"protectChargingMode":{"description":"Specifies the charging mode for the hosts protection quota to be queried.\nThe valid values are as follows:\n","type":"string"},"protectStatus":{"description":"Specifies the protection status of the hosts to be queried.\nThe valid values are as follows:\n","type":"string"},"protectVersion":{"description":"Specifies the protection version enabled by the hosts to be queried.\nThe valid values are as follows:\n+ `hss.version.null`\n+ `hss.version.enterprise`\n+ `hss.version.premium`\n+ `hss.version.container.enterprise`\n","type":"string"},"status":{"description":"Specifies the status of the hosts to be queried.\nThe valid values are as follows:\n+ `ACTIVE`\n+ `SHUTOFF`\n+ `BUILDING`\n+ `ERROR`\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getHssHostsV5.\n","properties":{"agentStatus":{"description":"The agent status of the host.\n","type":"string"},"assetValue":{"description":"The asset importance of the host.\n","type":"string"},"detectResult":{"description":"The security detection result of the host.\n","type":"string"},"groupId":{"description":"The host group ID to which the host belongs.\n","type":"string"},"hostId":{"type":"string"},"hosts":{"description":"All hosts that match the filter parameters.\nThe hosts structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetHssHostsV5Host:getHssHostsV5Host"},"type":"array"},"id":{"description":"The ID of the host.\n","type":"string"},"name":{"description":"The name of the host.\n","type":"string"},"osType":{"description":"The operating system type of the host.\n","type":"string"},"policyGroupId":{"description":"The policy group ID to which the host belongs.\n","type":"string"},"protectChargingMode":{"description":"The charging mode for the host protection quota.\n","type":"string"},"protectStatus":{"description":"The protection status of the host.\n","type":"string"},"protectVersion":{"description":"The protection version enabled by the host.\n","type":"string"},"region":{"description":"The region in which to query the HSS hosts.\n","type":"string"},"status":{"description":"The status of the host.\n","type":"string"}},"required":["hosts","id","region"],"type":"object"}},"opentelekomcloud:index/getHssIntrusionEventsV5:getHssIntrusionEventsV5":{"inputs":{"description":"A collection of arguments for invoking getHssIntrusionEventsV5.\n","properties":{"beginTime":{"type":"string"},"category":{"type":"string"},"containerName":{"type":"string"},"days":{"type":"number"},"endTime":{"type":"string"},"enterpriseProjectId":{"type":"string"},"eventTypes":{"items":{"type":"string"},"type":"array"},"handleStatus":{"type":"string"},"hostId":{"type":"string"},"hostName":{"type":"string"},"id":{"type":"string"},"privateIp":{"type":"string"},"severity":{"type":"string"}},"required":["category"],"type":"object"},"outputs":{"description":"A collection of values returned by getHssIntrusionEventsV5.\n","properties":{"beginTime":{"type":"string"},"category":{"type":"string"},"containerName":{"type":"string"},"days":{"type":"number"},"endTime":{"type":"string"},"enterpriseProjectId":{"type":"string"},"eventTypes":{"items":{"type":"string"},"type":"array"},"events":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetHssIntrusionEventsV5Event:getHssIntrusionEventsV5Event"},"type":"array"},"handleStatus":{"type":"string"},"hostId":{"type":"string"},"hostName":{"type":"string"},"id":{"type":"string"},"privateIp":{"type":"string"},"region":{"type":"string"},"severity":{"type":"string"}},"required":["category","events","id","region"],"type":"object"}},"opentelekomcloud:index/getHssQuotasV5:getHssQuotasV5":{"description":"Up-to-date reference of API arguments for EIP status you can get at\n[documentation portal](https://docs.otc.t-systems.com/host-security-service/api-ref/api_description/quota_management/querying_quota_details.html#listquotasdetail)\n\nUse this data source to get the list of HSS quotas within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst resourceId = config.requireObject<any>(\"resourceId\");\nconst qt = opentelekomcloud.getHssQuotasV5({\n    resourceId: resourceId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nresource_id = config.require_object(\"resourceId\")\nqt = opentelekomcloud.get_hss_quotas_v5(resource_id=resource_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var resourceId = config.RequireObject<dynamic>(\"resourceId\");\n    var qt = Opentelekomcloud.GetHssQuotasV5.Invoke(new()\n    {\n        ResourceId = resourceId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tresourceId := cfg.RequireObject(\"resourceId\")\n\t\t_, err := opentelekomcloud.GetHssQuotasV5(ctx, &opentelekomcloud.GetHssQuotasV5Args{\n\t\t\tResourceId: pulumi.StringRef(resourceId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetHssQuotasV5Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var resourceId = config.get(\"resourceId\");\n        final var qt = OpentelekomcloudFunctions.getHssQuotasV5(GetHssQuotasV5Args.builder()\n            .resourceId(resourceId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  resourceId:\n    type: dynamic\nvariables:\n  qt:\n    fn::invoke:\n      function: opentelekomcloud:getHssQuotasV5\n      arguments:\n        resourceId: ${resourceId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getHssQuotasV5.\n","properties":{"category":{"description":"Specifies the category of the quotas to be queried.\nThe valid values are as follows:\n","type":"string"},"chargingMode":{"description":"Specifies the charging mode of the quotas to be queried.\nThe valid values are as follows:\n","type":"string"},"hostName":{"description":"Specifies the host name for the quota binding to be queried.\n","type":"string"},"id":{"description":"The ID of quota.\n","type":"string"},"resourceId":{"description":"Specifies the resource ID of the HSS quota.\n","type":"string"},"status":{"description":"Specifies the status of the quotas to be queried.\nThe value can be <span pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\">`normal`</span>, <span pulumi-lang-nodejs=\"`expired`\" pulumi-lang-dotnet=\"`Expired`\" pulumi-lang-go=\"`expired`\" pulumi-lang-python=\"`expired`\" pulumi-lang-yaml=\"`expired`\" pulumi-lang-java=\"`expired`\">`expired`</span>, or <span pulumi-lang-nodejs=\"`freeze`\" pulumi-lang-dotnet=\"`Freeze`\" pulumi-lang-go=\"`freeze`\" pulumi-lang-python=\"`freeze`\" pulumi-lang-yaml=\"`freeze`\" pulumi-lang-java=\"`freeze`\">`freeze`</span>.\n","type":"string"},"usedStatus":{"description":"Specifies the usage status of the quotas to be queried.\nThe value can be <span pulumi-lang-nodejs=\"`idle`\" pulumi-lang-dotnet=\"`Idle`\" pulumi-lang-go=\"`idle`\" pulumi-lang-python=\"`idle`\" pulumi-lang-yaml=\"`idle`\" pulumi-lang-java=\"`idle`\">`idle`</span> or <span pulumi-lang-nodejs=\"`used`\" pulumi-lang-dotnet=\"`Used`\" pulumi-lang-go=\"`used`\" pulumi-lang-python=\"`used`\" pulumi-lang-yaml=\"`used`\" pulumi-lang-java=\"`used`\">`used`</span>.\n","type":"string"},"version":{"description":"Specifies the version of the quotas to be queried.\nThe valid values are as follows:\n+ `hss.version.enterprise`: Enterprise version.\n+ `hss.version.premium`: Ultimate version.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getHssQuotasV5.\n","properties":{"category":{"type":"string"},"chargingMode":{"description":"The charging mode of quota.\n","type":"string"},"hostName":{"description":"The host name for quota binding.\n","type":"string"},"id":{"description":"The ID of quota.\n","type":"string"},"quotas":{"description":"All quotas that match the filter parameters.\nThe quotas structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetHssQuotasV5Quota:getHssQuotasV5Quota"},"type":"array"},"region":{"description":"The region in which to query the HSS quotas.\n","type":"string"},"resourceId":{"type":"string"},"status":{"description":"The status of quota.\n","type":"string"},"usedStatus":{"description":"The usage status of quota.\n","type":"string"},"version":{"description":"The version of quota.\n","type":"string"}},"required":["id","quotas","region"],"type":"object"}},"opentelekomcloud:index/getIdentityAgencyV3:getIdentityAgencyV3":{"description":"Up-to-date reference of API arguments for IAM agency you can get at\n[documentation portal](https://docs.otc.t-systems.com/identity-access-management/api-ref/apis/agency_management/querying_an_agency_list_based_on_the_specified_conditions.html#en-us-topic-0079467614)\n\nUse this data source to get an agency information.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst agency1 = opentelekomcloud.getIdentityAgencyV3({\n    name: \"test-agency\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nagency1 = opentelekomcloud.get_identity_agency_v3(name=\"test-agency\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var agency1 = Opentelekomcloud.GetIdentityAgencyV3.Invoke(new()\n    {\n        Name = \"test-agency\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupIdentityAgencyV3(ctx, &opentelekomcloud.LookupIdentityAgencyV3Args{\n\t\t\tName: pulumi.StringRef(\"test-agency\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetIdentityAgencyV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var agency1 = OpentelekomcloudFunctions.getIdentityAgencyV3(GetIdentityAgencyV3Args.builder()\n            .name(\"test-agency\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  agency1:\n    fn::invoke:\n      function: opentelekomcloud:getIdentityAgencyV3\n      arguments:\n        name: test-agency\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getIdentityAgencyV3.\n","properties":{"id":{"description":"ID of an agency.\n","type":"string"},"name":{"description":"Name of the agency\n","type":"string"},"trustDomainId":{"description":"ID of the delegated domain.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIdentityAgencyV3.\n","properties":{"createTime":{"description":"Time when an agency is created.\n","type":"string"},"description":{"description":"Description of an agency.\n","type":"string"},"duration":{"description":"Validity period of an agency.\nThe default value is <span pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\">`null`</span>, indicating that the agency is permanently valid.\n","type":"string"},"expireTime":{"description":"Expiration time of an agency.\n","type":"string"},"id":{"description":"ID of an agency.\n","type":"string"},"name":{"description":"Name of an agency.\n","type":"string"},"trustDomainId":{"type":"string"},"trustDomainName":{"description":"Name of the delegated domain.\n","type":"string"}},"required":["createTime","description","duration","expireTime","id","trustDomainName"],"type":"object"}},"opentelekomcloud:index/getIdentityAuthScopeV3:getIdentityAuthScopeV3":{"description":"Use this data source to get authentication information about the current\nauth scope in use within OpenTelekomCloud. This can be used as self-discovery or introspection of\nthe username or project name currently in use.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst scope = opentelekomcloud.getIdentityAuthScopeV3({\n    name: \"my_scope\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nscope = opentelekomcloud.get_identity_auth_scope_v3(name=\"my_scope\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var scope = Opentelekomcloud.GetIdentityAuthScopeV3.Invoke(new()\n    {\n        Name = \"my_scope\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetIdentityAuthScopeV3(ctx, &opentelekomcloud.GetIdentityAuthScopeV3Args{\n\t\t\tName: \"my_scope\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetIdentityAuthScopeV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var scope = OpentelekomcloudFunctions.getIdentityAuthScopeV3(GetIdentityAuthScopeV3Args.builder()\n            .name(\"my_scope\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  scope:\n    fn::invoke:\n      function: opentelekomcloud:getIdentityAuthScopeV3\n      arguments:\n        name: my_scope\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getIdentityAuthScopeV3.\n","properties":{"id":{"type":"string"},"name":{"type":"string"},"region":{"type":"string"}},"required":["name"],"type":"object"},"outputs":{"description":"A collection of values returned by getIdentityAuthScopeV3.\n","properties":{"domainId":{"type":"string"},"domainName":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"projectDomainId":{"description":"The domain ID of the project.\n","type":"string"},"projectDomainName":{"description":"The domain name of the project.\n","type":"string"},"projectId":{"description":"The project ID of the scope.\n","type":"string"},"projectName":{"description":"The project name of the scope.\n","type":"string"},"region":{"type":"string"},"roles":{"description":"A list of roles in the current scope. See reference below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetIdentityAuthScopeV3Role:getIdentityAuthScopeV3Role"},"type":"array"},"userDomainId":{"description":"The domain ID of the user.\n","type":"string"},"userDomainName":{"description":"The domain name of the user.\n","type":"string"},"userId":{"description":"The user ID the of the scope.\n","type":"string"},"userName":{"description":"The username of the scope.\n","type":"string"}},"required":["domainId","domainName","id","name","projectDomainId","projectDomainName","projectId","projectName","region","roles","userDomainId","userDomainName","userId","userName"],"type":"object"}},"opentelekomcloud:index/getIdentityCredentialV3:getIdentityCredentialV3":{"inputs":{"description":"A collection of arguments for invoking getIdentityCredentialV3.\n","properties":{"id":{"type":"string"},"userId":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIdentityCredentialV3.\n","properties":{"credentials":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetIdentityCredentialV3Credential:getIdentityCredentialV3Credential"},"type":"array"},"id":{"type":"string"},"userId":{"type":"string"}},"required":["credentials","id"],"type":"object"}},"opentelekomcloud:index/getIdentityGroupV3:getIdentityGroupV3":{"description":"Up-to-date reference of API arguments for IAM group you can get at\n[documentation portal](https://docs.otc.t-systems.com/identity-access-management/api-ref/apis/user_group_management/listing_user_groups.html#en-us-topic-0057845602)\n\nUse this data source to get the ID of an OpenTelekomCloud group.\n\n> **Note:** You _must_ have `Security Administrator` privileges in your OpenTelekomCloud\ncloud to use this data source. Please refer to [User Management Model](https://docs.otc.t-systems.com/en-us/usermanual/iam/iam_01_0034.html).\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst admins = opentelekomcloud.getIdentityGroupV3({\n    name: \"admins\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nadmins = opentelekomcloud.get_identity_group_v3(name=\"admins\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var admins = Opentelekomcloud.GetIdentityGroupV3.Invoke(new()\n    {\n        Name = \"admins\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupIdentityGroupV3(ctx, &opentelekomcloud.LookupIdentityGroupV3Args{\n\t\t\tName: \"admins\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetIdentityGroupV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var admins = OpentelekomcloudFunctions.getIdentityGroupV3(GetIdentityGroupV3Args.builder()\n            .name(\"admins\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  admins:\n    fn::invoke:\n      function: opentelekomcloud:getIdentityGroupV3\n      arguments:\n        name: admins\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getIdentityGroupV3.\n","properties":{"domainId":{"description":"The domain the group belongs to.\n","type":"string"},"id":{"type":"string"},"name":{"description":"The name of the group.\n","type":"string"},"region":{"type":"string"}},"required":["name"],"type":"object"},"outputs":{"description":"A collection of values returned by getIdentityGroupV3.\n","properties":{"domainId":{"description":"See Argument Reference above.\n","type":"string"},"id":{"type":"string"},"name":{"description":"See Argument Reference above.\n","type":"string"},"region":{"type":"string"}},"required":["domainId","id","name","region"],"type":"object"}},"opentelekomcloud:index/getIdentityProjectV3:getIdentityProjectV3":{"description":"Up-to-date reference of API arguments for IAM project you can get at\n[documentation portal](https://docs.otc.t-systems.com/identity-access-management/api-ref/apis/project_management/querying_project_information_based_on_the_specified_criteria.html#en-us-topic-0057845625)\n\nUse this data source to get the ID of an OpenTelekomCloud project.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst project1 = opentelekomcloud.getIdentityProjectV3({\n    name: \"demo\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nproject1 = opentelekomcloud.get_identity_project_v3(name=\"demo\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var project1 = Opentelekomcloud.GetIdentityProjectV3.Invoke(new()\n    {\n        Name = \"demo\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupIdentityProjectV3(ctx, &opentelekomcloud.LookupIdentityProjectV3Args{\n\t\t\tName: pulumi.StringRef(\"demo\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetIdentityProjectV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var project1 = OpentelekomcloudFunctions.getIdentityProjectV3(GetIdentityProjectV3Args.builder()\n            .name(\"demo\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  project1:\n    fn::invoke:\n      function: opentelekomcloud:getIdentityProjectV3\n      arguments:\n        name: demo\n```\n<!--End PulumiCodeChooser -->\n\n### Query Current Project details\n\nIf <span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span> or <span pulumi-lang-nodejs=\"`domainId`\" pulumi-lang-dotnet=\"`DomainId`\" pulumi-lang-go=\"`domainId`\" pulumi-lang-python=\"`domain_id`\" pulumi-lang-yaml=\"`domainId`\" pulumi-lang-java=\"`domainId`\">`domain_id`</span> are not provided, data source gets info about current project.\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst project1 = opentelekomcloud.getIdentityProjectV3({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nproject1 = opentelekomcloud.get_identity_project_v3()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var project1 = Opentelekomcloud.GetIdentityProjectV3.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupIdentityProjectV3(ctx, &opentelekomcloud.LookupIdentityProjectV3Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetIdentityProjectV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var project1 = OpentelekomcloudFunctions.getIdentityProjectV3(GetIdentityProjectV3Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  project1:\n    fn::invoke:\n      function: opentelekomcloud:getIdentityProjectV3\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getIdentityProjectV3.\n","properties":{"domainId":{"description":"The domain this project belongs to.\n","type":"string"},"enabled":{"description":"Whether the project is enabled or disabled. Valid values are <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> and <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"id":{"type":"string"},"isDomain":{"description":"Whether this project is a domain. Valid values are <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> and <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"name":{"description":"The name of the project.\n","type":"string"},"parentId":{"description":"The parent of this project.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIdentityProjectV3.\n","properties":{"description":{"description":"The description of the project.\n","type":"string"},"domainId":{"description":"ID of an enterprise account to which a project belongs.\n","type":"string"},"enabled":{"description":"Whether a project is available.\n","type":"boolean"},"id":{"type":"string"},"isDomain":{"description":"Indicates whether the user calling the API is a tenant.\n","type":"boolean"},"name":{"description":"Project name.\n","type":"string"},"parentId":{"description":"Parent ID of the project.\n","type":"string"},"region":{"description":"Indicates the region where the project is present.\n","type":"string"}},"required":["description","domainId","enabled","id","isDomain","region"],"type":"object"}},"opentelekomcloud:index/getIdentityProjectsV3:getIdentityProjectsV3":{"description":"Up-to-date reference of API arguments for IAM projects you can get at\n[documentation portal](https://docs.otc.t-systems.com/identity-access-management/api-ref/apis/project_management/querying_project_information_based_on_the_specified_criteria.html#en-us-topic-0057845625)\n\nUse this data source to get the list of all OpenTelekomCloud projects.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst all = opentelekomcloud.getIdentityProjectsV3({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nall = opentelekomcloud.get_identity_projects_v3()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var all = Opentelekomcloud.GetIdentityProjectsV3.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetIdentityProjectsV3(ctx, &opentelekomcloud.GetIdentityProjectsV3Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetIdentityProjectsV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var all = OpentelekomcloudFunctions.getIdentityProjectsV3(GetIdentityProjectsV3Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  all:\n    fn::invoke:\n      function: opentelekomcloud:getIdentityProjectsV3\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getIdentityProjectsV3.\n","properties":{"id":{"description":"Indicates the domain of queried projects.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIdentityProjectsV3.\n","properties":{"id":{"description":"Indicates the domain of queried projects.\n","type":"string"},"projects":{"description":"List of projects details. The object structure of each Project is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetIdentityProjectsV3Project:getIdentityProjectsV3Project"},"type":"array"},"region":{"description":"Indicates the region where the project is present.\n","type":"string"}},"required":["id","projects","region"],"type":"object"}},"opentelekomcloud:index/getIdentityRoleCustomV3:getIdentityRoleCustomV3":{"description":"Up-to-date reference of API arguments for IAM role you can get at\n[documentation portal](https://docs.otc.t-systems.com/identity-access-management/api-ref/apis/permission_management/querying_role_details.html)\n\nUse this data source to get the info of custom OpenTelekomCloud role.\n\n> For pre-defined user roles usage please refer to <span pulumi-lang-nodejs=\"`opentelekomcloud.IdentityRoleV3`\" pulumi-lang-dotnet=\"`opentelekomcloud.IdentityRoleV3`\" pulumi-lang-go=\"`IdentityRoleV3`\" pulumi-lang-python=\"`IdentityRoleV3`\" pulumi-lang-yaml=\"`opentelekomcloud.IdentityRoleV3`\" pulumi-lang-java=\"`opentelekomcloud.IdentityRoleV3`\">`opentelekomcloud.IdentityRoleV3`</span>\n\n## Example Usage\n\n### Querying custom role by <span pulumi-lang-nodejs=\"`displayName`\" pulumi-lang-dotnet=\"`DisplayName`\" pulumi-lang-go=\"`displayName`\" pulumi-lang-python=\"`display_name`\" pulumi-lang-yaml=\"`displayName`\" pulumi-lang-java=\"`displayName`\">`display_name`</span>\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst authAdmin = opentelekomcloud.getIdentityRoleCustomV3({\n    displayName: \"my-custom-policy\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nauth_admin = opentelekomcloud.get_identity_role_custom_v3(display_name=\"my-custom-policy\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var authAdmin = Opentelekomcloud.GetIdentityRoleCustomV3.Invoke(new()\n    {\n        DisplayName = \"my-custom-policy\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetIdentityRoleCustomV3(ctx, &opentelekomcloud.GetIdentityRoleCustomV3Args{\n\t\t\tDisplayName: pulumi.StringRef(\"my-custom-policy\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetIdentityRoleCustomV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var authAdmin = OpentelekomcloudFunctions.getIdentityRoleCustomV3(GetIdentityRoleCustomV3Args.builder()\n            .displayName(\"my-custom-policy\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  authAdmin:\n    fn::invoke:\n      function: opentelekomcloud:getIdentityRoleCustomV3\n      arguments:\n        displayName: my-custom-policy\n```\n<!--End PulumiCodeChooser -->\n\n### Querying custom role by resource <span pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\">`id`</span>\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst authAdmin = opentelekomcloud.getIdentityRoleCustomV3({\n    id: \"13f0e753101649699664672d7b7af752\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nauth_admin = opentelekomcloud.get_identity_role_custom_v3(id=\"13f0e753101649699664672d7b7af752\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var authAdmin = Opentelekomcloud.GetIdentityRoleCustomV3.Invoke(new()\n    {\n        Id = \"13f0e753101649699664672d7b7af752\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetIdentityRoleCustomV3(ctx, &opentelekomcloud.GetIdentityRoleCustomV3Args{\n\t\t\tId: pulumi.StringRef(\"13f0e753101649699664672d7b7af752\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetIdentityRoleCustomV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var authAdmin = OpentelekomcloudFunctions.getIdentityRoleCustomV3(GetIdentityRoleCustomV3Args.builder()\n            .id(\"13f0e753101649699664672d7b7af752\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  authAdmin:\n    fn::invoke:\n      function: opentelekomcloud:getIdentityRoleCustomV3\n      arguments:\n        id: 13f0e753101649699664672d7b7af752\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getIdentityRoleCustomV3.\n","properties":{"displayName":{"description":"The name of the role.\n","type":"string"},"id":{"description":"The <span pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\">`id`</span> of custom role.\n","type":"string"},"type":{"description":"Display layer of a role.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIdentityRoleCustomV3.\n","properties":{"description":{"description":"Description of a role.\n","type":"string"},"displayName":{"type":"string"},"domainId":{"description":"ID of the domain to which a role belongs\n","type":"string"},"id":{"type":"string"},"name":{"description":"Name of a role\n","type":"string"},"statements":{"description":"Statement: The Statement field contains the Effect and Action\nelements. Effect indicates whether the policy allows or denies\naccess. Action indicates authorization items. The number of\nstatements cannot exceed 8. Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetIdentityRoleCustomV3Statement:getIdentityRoleCustomV3Statement"},"type":"array"},"type":{"type":"string"}},"required":["description","displayName","domainId","id","name","statements"],"type":"object"}},"opentelekomcloud:index/getIdentityRoleV3:getIdentityRoleV3":{"inputs":{"description":"A collection of arguments for invoking getIdentityRoleV3.\n","properties":{"domainId":{"description":"The domain the role belongs to.\n","type":"string"},"id":{"type":"string"},"name":{"description":"The name of the role.\n","type":"string"},"region":{"type":"string"}},"required":["name"],"type":"object"},"outputs":{"description":"A collection of values returned by getIdentityRoleV3.\n","properties":{"domainId":{"description":"See Argument Reference above.\n","type":"string"},"id":{"type":"string"},"name":{"description":"See Argument Reference above.\n","type":"string"},"region":{"type":"string"}},"required":["domainId","id","name","region"],"type":"object"}},"opentelekomcloud:index/getIdentityTemporaryAkskV3:getIdentityTemporaryAkskV3":{"inputs":{"description":"A collection of arguments for invoking getIdentityTemporaryAkskV3.\n","properties":{"agencyName":{"description":"Name of the agency created by a delegating party.\nWhen specified, the temporary credentials will be generated with the permissions of the agency.\n","type":"string"},"durationSeconds":{"description":"Validity period (in seconds) of the temporary credentials.\nThe value ranges from 900 (15 minutes) to 86400 (24 hours). The default value is 900 seconds (15 minutes).\n","type":"number"},"id":{"description":"The access key, which serves as the unique identifier for the temporary credentials.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIdentityTemporaryAkskV3.\n","properties":{"access":{"description":"The temporary Access Key (AK) for authentication.\n","secret":true,"type":"string"},"agencyName":{"type":"string"},"durationSeconds":{"type":"number"},"expiresAt":{"description":"The expiration time of the temporary credentials in ISO 8601 format.\n","type":"string"},"id":{"description":"The access key, which serves as the unique identifier for the temporary credentials.\n","type":"string"},"secret":{"description":"The temporary Secret Key (SK) for authentication.\n","secret":true,"type":"string"},"securityToken":{"description":"The security token used for subsequent API calls. This token must be included\nin requests when using the temporary AK/SK.\n","secret":true,"type":"string"}},"required":["access","expiresAt","id","secret","securityToken"],"type":"object"}},"opentelekomcloud:index/getIdentityUserV3:getIdentityUserV3":{"description":"Up-to-date reference of API arguments for IAM user you can get at\n[documentation portal](https://docs.otc.t-systems.com/identity-access-management/api-ref/apis/user_management/querying_a_user_list.html#en-us-topic-0057845638)\n\nUse this data source to get the ID of an OpenTelekomCloud user.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst user1 = opentelekomcloud.getIdentityUserV3({\n    name: \"user_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nuser1 = opentelekomcloud.get_identity_user_v3(name=\"user_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var user1 = Opentelekomcloud.GetIdentityUserV3.Invoke(new()\n    {\n        Name = \"user_1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupIdentityUserV3(ctx, &opentelekomcloud.LookupIdentityUserV3Args{\n\t\t\tName: pulumi.StringRef(\"user_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetIdentityUserV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var user1 = OpentelekomcloudFunctions.getIdentityUserV3(GetIdentityUserV3Args.builder()\n            .name(\"user_1\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  user1:\n    fn::invoke:\n      function: opentelekomcloud:getIdentityUserV3\n      arguments:\n        name: user_1\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getIdentityUserV3.\n","properties":{"domainId":{"description":"The domain this user belongs to.\n","type":"string"},"enabled":{"description":"Whether the user is enabled or disabled. Valid values are <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> and <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\nDefault value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"id":{"type":"string"},"name":{"description":"The name of the user.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIdentityUserV3.\n","properties":{"domainId":{"type":"string"},"enabled":{"type":"boolean"},"id":{"type":"string"},"mfaDevice":{"description":"Serial number of user MFA device.\n`Security administrator` permissions are needed to set this attribute.\n","type":"string"},"name":{"type":"string"},"passwordExpiresAt":{"description":"Password expiration date of the user.\n","type":"string"}},"required":["domainId","id","mfaDevice","passwordExpiresAt"],"type":"object"}},"opentelekomcloud:index/getImagesImageV2:getImagesImageV2":{"description":"Up-to-date reference of API arguments for Image you can get at\n[documentation portal](https://docs.otc.t-systems.com/image-management-service/api-ref/native_openstack_apis/image_native_openstack_apis/querying_images_native_openstack_api.html#en-us-topic-0060804959)\n\nUse this data source to get the ID of an available OpenTelekomCloud image.\n\n## Example Usage\n\n### Get Ubuntu_20.04 latest\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst ubuntu = opentelekomcloud.getImagesImageV2({\n    name: \"Standard_Ubuntu_20.04_latest\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nubuntu = opentelekomcloud.get_images_image_v2(name=\"Standard_Ubuntu_20.04_latest\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var ubuntu = Opentelekomcloud.GetImagesImageV2.Invoke(new()\n    {\n        Name = \"Standard_Ubuntu_20.04_latest\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupImagesImageV2(ctx, &opentelekomcloud.LookupImagesImageV2Args{\n\t\t\tName: pulumi.StringRef(\"Standard_Ubuntu_20.04_latest\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetImagesImageV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ubuntu = OpentelekomcloudFunctions.getImagesImageV2(GetImagesImageV2Args.builder()\n            .name(\"Standard_Ubuntu_20.04_latest\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  ubuntu:\n    fn::invoke:\n      function: opentelekomcloud:getImagesImageV2\n      arguments:\n        name: Standard_Ubuntu_20.04_latest\n```\n<!--End PulumiCodeChooser -->\n\n### Get most recent Debian\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst latest_debian = opentelekomcloud.getImagesImageV2({\n    nameRegex: \"^Standard_Debian.?\",\n    mostRecent: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nlatest_debian = opentelekomcloud.get_images_image_v2(name_regex=\"^Standard_Debian.?\",\n    most_recent=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var latest_debian = Opentelekomcloud.GetImagesImageV2.Invoke(new()\n    {\n        NameRegex = \"^Standard_Debian.?\",\n        MostRecent = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupImagesImageV2(ctx, &opentelekomcloud.LookupImagesImageV2Args{\n\t\t\tNameRegex:  pulumi.StringRef(\"^Standard_Debian.?\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetImagesImageV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var latest-debian = OpentelekomcloudFunctions.getImagesImageV2(GetImagesImageV2Args.builder()\n            .nameRegex(\"^Standard_Debian.?\")\n            .mostRecent(true)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  latest-debian:\n    fn::invoke:\n      function: opentelekomcloud:getImagesImageV2\n      arguments:\n        nameRegex: ^Standard_Debian.?\n        mostRecent: true\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getImagesImageV2.\n","properties":{"mostRecent":{"description":"If more than one result is returned, use the most recent image.\n","type":"boolean"},"name":{"description":"The name of the image.\n","type":"string"},"nameRegex":{"description":"A regex string to apply to the images list.\nThis allows more advanced filtering not supported from the OpenTelekomCloud API.\nThis filtering is done locally on what OpenTelekomCloud returns.\n","type":"string"},"owner":{"description":"The owner (UUID) of the image.\n","type":"string"},"sizeMax":{"description":"The maximum size (in bytes) of the image to return.\n","type":"number"},"sizeMin":{"description":"The minimum size (in bytes) of the image to return.\n","type":"number"},"sortDirection":{"description":"Order the results in either <span pulumi-lang-nodejs=\"`asc`\" pulumi-lang-dotnet=\"`Asc`\" pulumi-lang-go=\"`asc`\" pulumi-lang-python=\"`asc`\" pulumi-lang-yaml=\"`asc`\" pulumi-lang-java=\"`asc`\">`asc`</span> or <span pulumi-lang-nodejs=\"`desc`\" pulumi-lang-dotnet=\"`Desc`\" pulumi-lang-go=\"`desc`\" pulumi-lang-python=\"`desc`\" pulumi-lang-yaml=\"`desc`\" pulumi-lang-java=\"`desc`\">`desc`</span>.\n","type":"string"},"sortKey":{"description":"Sort images based on a certain key. Defaults to <span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span>.\n","type":"string"},"tag":{"description":"Search for images with a specific tag.\n","type":"string"},"visibility":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getImagesImageV2.\n","properties":{"backupId":{"description":"Specifies the backup ID.\n","type":"string"},"checksum":{"description":"The checksum of the data associated with the image.\n","type":"string"},"containerFormat":{"description":"The format of the image's container.\n","type":"string"},"createdAt":{"description":"The date the image was created.\n","type":"string"},"dataOrigin":{"description":"Specifies the image source.\n","type":"string"},"description":{"description":"Specifies the image description.\n","type":"string"},"diskFormat":{"description":"The format of the image's disk.\n","type":"string"},"file":{"description":"the trailing path after the glance endpoint that represent the\nlocation of the image, or the path to retrieve it.\n","type":"string"},"hwFirmwareType":{"description":"Specifies the boot mode. The value can be <span pulumi-lang-nodejs=\"`bios`\" pulumi-lang-dotnet=\"`Bios`\" pulumi-lang-go=\"`bios`\" pulumi-lang-python=\"`bios`\" pulumi-lang-yaml=\"`bios`\" pulumi-lang-java=\"`bios`\">`bios`</span> or <span pulumi-lang-nodejs=\"`uefi`\" pulumi-lang-dotnet=\"`Uefi`\" pulumi-lang-go=\"`uefi`\" pulumi-lang-python=\"`uefi`\" pulumi-lang-yaml=\"`uefi`\" pulumi-lang-java=\"`uefi`\">`uefi`</span> if set during image creation.\n","type":"string"},"id":{"type":"string"},"imageSourceType":{"description":"Specifies the image backend storage type. Only `UDS` is currently supported.\n","type":"string"},"imageType":{"description":"Specifies the image type.\n","type":"string"},"isRegistered":{"description":"Specifies whether the image is available.\n","type":"string"},"loginUser":{"description":"Specifies default image login user.\n","type":"string"},"minDisk":{"description":"The minimum amount of disk space required to use the image.\n","type":"number"},"minRam":{"description":"The minimum amount of ram required to use the image.\n","type":"number"},"mostRecent":{"type":"boolean"},"name":{"type":"string"},"nameRegex":{"type":"string"},"originalImageName":{"description":"Specifies the parent image ID.\n","type":"string"},"osBit":{"description":"Specifies the OS architecture, 32 bit or 64 bit.\n","type":"string"},"osType":{"description":"Specifies the OS type. The value can be Linux, Windows, or Other.\n","type":"string"},"osVersion":{"description":"Specifies the OS version.\n","type":"string"},"owner":{"type":"string"},"platform":{"description":"Specifies the image platform type. The value can be Windows, Ubuntu, Red Hat, SUSE, CentOS,\nDebian, OpenSUSE, Oracle Linux, Fedora, Other, CoreOS, or EulerOS.\n","type":"string"},"protected":{"description":"Whether the image is protected.\n","type":"boolean"},"schema":{"description":"The path to the JSON-schema that represent the image or image.\n","type":"string"},"sizeBytes":{"description":"The size of the image (in bytes).\n","type":"number"},"sizeMax":{"type":"number"},"sizeMin":{"type":"number"},"sortDirection":{"type":"string"},"sortKey":{"type":"string"},"status":{"description":"The image status.\n","type":"string"},"supportDiskIntensive":{"description":"Specifies whether the image supports disk-intensive ECSs.\n","type":"string"},"supportHighPerformance":{"description":"Specifies whether the image supports high-performance ECSs.\n","type":"string"},"supportKvm":{"description":"Specifies whether the image supports KVM.\n","type":"string"},"supportKvmGpuType":{"description":"Specifies whether the image supports GPU-accelerated ECSs on the KVM platform.\n","type":"string"},"supportKvmInfiniband":{"description":"Specifies whether the image supports ECSs with the InfiniBand NIC on the KVM platform.\n","type":"string"},"supportLargeMemory":{"description":"Specifies whether the image supports large-memory ECSs.\n","type":"string"},"supportXen":{"description":"Specifies whether the image supports Xen.\n","type":"string"},"supportXenGpuType":{"description":"Specifies whether the image supports GPU-accelerated ECSs on the Xen platform.\n","type":"string"},"supportXenHana":{"description":"Specifies whether the image supports HANA ECSs on the Xen platform.\n","type":"string"},"systemCmkId":{"description":"Specifies the ID of the key used to encrypt the image.\n","type":"string"},"tag":{"type":"string"},"tags":{"description":"See Argument Reference above.\n","items":{"type":"string"},"type":"array"},"updatedAt":{"description":"The date the image was modified.\n","type":"string"},"virtualEnvType":{"description":"Specifies the environment where the image is used.\nThe value can be `FusionCompute`, `Ironic`, `DataImage`, or `IsoImage`.\n","type":"string"},"visibility":{"type":"string"}},"required":["backupId","checksum","containerFormat","createdAt","dataOrigin","description","diskFormat","file","hwFirmwareType","id","imageSourceType","imageType","isRegistered","loginUser","minDisk","minRam","originalImageName","osBit","osType","osVersion","platform","protected","schema","sizeBytes","status","supportDiskIntensive","supportHighPerformance","supportKvm","supportKvmGpuType","supportKvmInfiniband","supportLargeMemory","supportXen","supportXenGpuType","supportXenHana","systemCmkId","tags","updatedAt","virtualEnvType"],"type":"object"}},"opentelekomcloud:index/getKmsDataKeyV1:getKmsDataKeyV1":{"description":"Use this data source to get the plaintext and the ciphertext of an available OpenTelekomCloud KMS DEK (data encryption key).\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst key1 = new opentelekomcloud.KmsKeyV1(\"key1\", {\n    keyAlias: \"key_1\",\n    pendingDays: \"7\",\n    keyDescription: \"first test key\",\n});\nconst kmsDatakey1 = opentelekomcloud.getKmsDataKeyV1Output({\n    keyId: key1.kmsKeyV1Id,\n    datakeyLength: \"512\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nkey1 = opentelekomcloud.KmsKeyV1(\"key1\",\n    key_alias=\"key_1\",\n    pending_days=\"7\",\n    key_description=\"first test key\")\nkms_datakey1 = opentelekomcloud.get_kms_data_key_v1_output(key_id=key1.kms_key_v1_id,\n    datakey_length=\"512\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var key1 = new Opentelekomcloud.KmsKeyV1(\"key1\", new()\n    {\n        KeyAlias = \"key_1\",\n        PendingDays = \"7\",\n        KeyDescription = \"first test key\",\n    });\n\n    var kmsDatakey1 = Opentelekomcloud.GetKmsDataKeyV1.Invoke(new()\n    {\n        KeyId = key1.KmsKeyV1Id,\n        DatakeyLength = \"512\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkey1, err := opentelekomcloud.NewKmsKeyV1(ctx, \"key1\", &opentelekomcloud.KmsKeyV1Args{\n\t\t\tKeyAlias:       pulumi.String(\"key_1\"),\n\t\t\tPendingDays:    pulumi.String(\"7\"),\n\t\t\tKeyDescription: pulumi.String(\"first test key\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = opentelekomcloud.GetKmsDataKeyV1Output(ctx, opentelekomcloud.GetKmsDataKeyV1OutputArgs{\n\t\t\tKeyId:         key1.KmsKeyV1Id,\n\t\t\tDatakeyLength: pulumi.String(\"512\"),\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.KmsKeyV1;\nimport com.pulumi.opentelekomcloud.KmsKeyV1Args;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetKmsDataKeyV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var key1 = new KmsKeyV1(\"key1\", KmsKeyV1Args.builder()\n            .keyAlias(\"key_1\")\n            .pendingDays(\"7\")\n            .keyDescription(\"first test key\")\n            .build());\n\n        final var kmsDatakey1 = OpentelekomcloudFunctions.getKmsDataKeyV1(GetKmsDataKeyV1Args.builder()\n            .keyId(key1.kmsKeyV1Id())\n            .datakeyLength(\"512\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  key1:\n    type: opentelekomcloud:KmsKeyV1\n    properties:\n      keyAlias: key_1\n      pendingDays: '7'\n      keyDescription: first test key\nvariables:\n  kmsDatakey1:\n    fn::invoke:\n      function: opentelekomcloud:getKmsDataKeyV1\n      arguments:\n        keyId: ${key1.kmsKeyV1Id}\n        datakeyLength: '512'\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getKmsDataKeyV1.\n","properties":{"datakeyLength":{"description":"Number of bits in the length of a DEK (data encryption keys).\nThe maximum number is 512. Changing this gets the new data encryption key.\n","type":"string"},"encryptionContext":{"description":"The value of this parameter must be a series of\n\"key:value\" pairs used to record resource context information. The value of this\nparameter must not contain sensitive information and must be within 8192 characters\nin length. Example: {\"Key1\":\"Value1\",\"Key2\":\"Value2\"}\n","type":"string"},"id":{"type":"string"},"keyId":{"description":"The globally unique identifier for the key.\nChanging this gets the new data encryption key.\n","type":"string"}},"required":["datakeyLength","keyId"],"type":"object"},"outputs":{"description":"A collection of values returned by getKmsDataKeyV1.\n","properties":{"cipherText":{"description":"The ciphertext of a DEK is expressed in hexadecimal format, and two\ncharacters indicate one byte.\n","type":"string"},"datakeyLength":{"type":"string"},"encryptionContext":{"type":"string"},"id":{"type":"string"},"keyId":{"type":"string"},"plainText":{"description":"The plaintext of a DEK is expressed in hexadecimal format, and two\ncharacters indicate one byte.\n","type":"string"}},"required":["cipherText","datakeyLength","id","keyId","plainText"],"type":"object"}},"opentelekomcloud:index/getKmsKeyMaterialParametersV1:getKmsKeyMaterialParametersV1":{"description":"Up-to-date reference of API arguments for Obtaining CMK Import parameters you can get at\n[documentation portal](https://docs.otc.t-systems.com/key-management-service/api-ref/apis/cmk_management/obtaining_cmk_import_parameters.html)\n\nUse this data source to get the data required to import key material into a CMK in OpenTelekomCloud KMS.\n\n> **Warning** This data source returns parameters for a CMK in `Pending_import` state.\n  Once the key is successfully imported and the state changes to `Enabled`, the data source will no longer fetch\n  new parameters and its computed attributes will be nulled. If other resources utilize fields from this data source, consider\n  adding `lifecycle {<span pulumi-lang-nodejs=\" ignoreChanges \" pulumi-lang-dotnet=\" IgnoreChanges \" pulumi-lang-go=\" ignoreChanges \" pulumi-lang-python=\" ignore_changes \" pulumi-lang-yaml=\" ignoreChanges \" pulumi-lang-java=\" ignoreChanges \"> ignore_changes </span>= [...] }` to handle state transitions properly.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst params = opentelekomcloud.getKmsKeyMaterialParametersV1({\n    keyId: \"0d0466b0-e727-4d9c-b35d-f84bb474a37f\",\n    wrappingAlgorithm: \"RSAES_PKCS1_V1_5\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nparams = opentelekomcloud.get_kms_key_material_parameters_v1(key_id=\"0d0466b0-e727-4d9c-b35d-f84bb474a37f\",\n    wrapping_algorithm=\"RSAES_PKCS1_V1_5\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var @params = Opentelekomcloud.GetKmsKeyMaterialParametersV1.Invoke(new()\n    {\n        KeyId = \"0d0466b0-e727-4d9c-b35d-f84bb474a37f\",\n        WrappingAlgorithm = \"RSAES_PKCS1_V1_5\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetKmsKeyMaterialParametersV1(ctx, &opentelekomcloud.GetKmsKeyMaterialParametersV1Args{\n\t\t\tKeyId:             \"0d0466b0-e727-4d9c-b35d-f84bb474a37f\",\n\t\t\tWrappingAlgorithm: \"RSAES_PKCS1_V1_5\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetKmsKeyMaterialParametersV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var params = OpentelekomcloudFunctions.getKmsKeyMaterialParametersV1(GetKmsKeyMaterialParametersV1Args.builder()\n            .keyId(\"0d0466b0-e727-4d9c-b35d-f84bb474a37f\")\n            .wrappingAlgorithm(\"RSAES_PKCS1_V1_5\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  params:\n    fn::invoke:\n      function: opentelekomcloud:getKmsKeyMaterialParametersV1\n      arguments:\n        keyId: 0d0466b0-e727-4d9c-b35d-f84bb474a37f\n        wrappingAlgorithm: RSAES_PKCS1_V1_5\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getKmsKeyMaterialParametersV1.\n","properties":{"id":{"type":"string"},"keyId":{"description":"The ID of the CMK to import key material into. Must be 36 bytes and match\nregexp `^[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}$`.\n","type":"string"},"sequence":{"description":"36-byte serial number of the request message.\n","type":"string"},"wrappingAlgorithm":{"description":"The algorithm to be used for wrapping the imported key material.\nValid values are:\n* `RSAES_PKCS1_V1_5`\n* `RSAES_OAEP_SHA_1`\n* `RSAES_OAEP_SHA_256`\n","type":"string"}},"required":["keyId","wrappingAlgorithm"],"type":"object"},"outputs":{"description":"A collection of values returned by getKmsKeyMaterialParametersV1.\n","properties":{"expirationTime":{"description":"The time at which the import token and public key expire.\n","type":"number"},"id":{"type":"string"},"importToken":{"description":"The import token to use in subsequent ImportKey requests.\n","type":"string"},"keyId":{"type":"string"},"publicKey":{"description":"The public key to use to encrypt the key material before import (Base64 encoded).\n","type":"string"},"sequence":{"type":"string"},"wrappingAlgorithm":{"type":"string"}},"required":["expirationTime","id","importToken","keyId","publicKey","wrappingAlgorithm"],"type":"object"}},"opentelekomcloud:index/getKmsKeyV1:getKmsKeyV1":{"description":"Up-to-date reference of API arguments for KMS key you can get at\n[documentation portal](https://docs.otc.t-systems.com/key-management-service/api-ref/apis/cmk_management/querying_the_list_of_cmks.html#kms-02-0017)\n\nUse this data source to get the ID of an available OpenTelekomCloud KMS key.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst key1 = opentelekomcloud.getKmsKeyV1({\n    keyAlias: \"test_key\",\n    keyDescription: \"test key description\",\n    keyState: \"2\",\n    keyId: \"af650527-a0ff-4527-aef3-c493df1f3012\",\n    realm: \"eu-de-01\",\n    defaultKeyFlag: \"0\",\n    domainId: \"b168fe00ff56492495a7d22974df2d0b\",\n    origin: \"kms\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nkey1 = opentelekomcloud.get_kms_key_v1(key_alias=\"test_key\",\n    key_description=\"test key description\",\n    key_state=\"2\",\n    key_id=\"af650527-a0ff-4527-aef3-c493df1f3012\",\n    realm=\"eu-de-01\",\n    default_key_flag=\"0\",\n    domain_id=\"b168fe00ff56492495a7d22974df2d0b\",\n    origin=\"kms\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var key1 = Opentelekomcloud.GetKmsKeyV1.Invoke(new()\n    {\n        KeyAlias = \"test_key\",\n        KeyDescription = \"test key description\",\n        KeyState = \"2\",\n        KeyId = \"af650527-a0ff-4527-aef3-c493df1f3012\",\n        Realm = \"eu-de-01\",\n        DefaultKeyFlag = \"0\",\n        DomainId = \"b168fe00ff56492495a7d22974df2d0b\",\n        Origin = \"kms\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupKmsKeyV1(ctx, &opentelekomcloud.LookupKmsKeyV1Args{\n\t\t\tKeyAlias:       pulumi.StringRef(\"test_key\"),\n\t\t\tKeyDescription: pulumi.StringRef(\"test key description\"),\n\t\t\tKeyState:       pulumi.StringRef(\"2\"),\n\t\t\tKeyId:          pulumi.StringRef(\"af650527-a0ff-4527-aef3-c493df1f3012\"),\n\t\t\tRealm:          pulumi.StringRef(\"eu-de-01\"),\n\t\t\tDefaultKeyFlag: pulumi.StringRef(\"0\"),\n\t\t\tDomainId:       pulumi.StringRef(\"b168fe00ff56492495a7d22974df2d0b\"),\n\t\t\tOrigin:         pulumi.StringRef(\"kms\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetKmsKeyV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var key1 = OpentelekomcloudFunctions.getKmsKeyV1(GetKmsKeyV1Args.builder()\n            .keyAlias(\"test_key\")\n            .keyDescription(\"test key description\")\n            .keyState(\"2\")\n            .keyId(\"af650527-a0ff-4527-aef3-c493df1f3012\")\n            .realm(\"eu-de-01\")\n            .defaultKeyFlag(\"0\")\n            .domainId(\"b168fe00ff56492495a7d22974df2d0b\")\n            .origin(\"kms\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  key1:\n    fn::invoke:\n      function: opentelekomcloud:getKmsKeyV1\n      arguments:\n        keyAlias: test_key\n        keyDescription: test key description\n        keyState: '2'\n        keyId: af650527-a0ff-4527-aef3-c493df1f3012\n        realm: eu-de-01\n        defaultKeyFlag: '0'\n        domainId: b168fe00ff56492495a7d22974df2d0b\n        origin: kms\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getKmsKeyV1.\n","properties":{"defaultKeyFlag":{"description":"Identification of a Master Key. The value <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> indicates a Default\nMaster Key, and the value <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> indicates a key. Changing this gets a new key.\n","type":"string"},"domainId":{"description":"ID of a user domain for the key. Changing this gets a new key.\n","type":"string"},"id":{"type":"string"},"keyAlias":{"description":"The alias in which to create the key. It is required when\nwe create a new key. Changing this gets the new key.\n","type":"string"},"keyDescription":{"description":"The description of the key. Changing this gets a new key.\n","type":"string"},"keyId":{"description":"The globally unique identifier for the key. Changing this gets the new key.\n","type":"string"},"keyState":{"description":"The state of a key. <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> indicates that the key is waiting to be activated.\n<span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span> indicates that the key is enabled. <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> indicates that the key is disabled. <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span> indicates that\nthe key is scheduled for deletion. <span pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\">`5`</span> indicates that the key waiting to be imported. Changing this gets a new key.\n","type":"string"},"origin":{"description":"Origin of a key. Such as: <span pulumi-lang-nodejs=\"`kms`\" pulumi-lang-dotnet=\"`Kms`\" pulumi-lang-go=\"`kms`\" pulumi-lang-python=\"`kms`\" pulumi-lang-yaml=\"`kms`\" pulumi-lang-java=\"`kms`\">`kms`</span>. Changing this gets a new key.\n","type":"string"},"realm":{"description":"Region where a key resides. Changing this gets a new key.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getKmsKeyV1.\n","properties":{"creationDate":{"description":"Creation time (time stamp) of a key.\n","type":"string"},"defaultKeyFlag":{"description":"See Argument Reference above.\n","type":"string"},"domainId":{"description":"See Argument Reference above.\n","type":"string"},"expirationTime":{"description":"Expiration time.\n","type":"string"},"id":{"type":"string"},"keyAlias":{"description":"See Argument Reference above.\n","type":"string"},"keyDescription":{"description":"See Argument Reference above.\n","type":"string"},"keyId":{"description":"See Argument Reference above.\n","type":"string"},"keyState":{"description":"See Argument Reference above.\n","type":"string"},"origin":{"description":"See Argument Reference above.\n","type":"string"},"realm":{"description":"See Argument Reference above.\n","type":"string"},"scheduledDeletionDate":{"description":"Scheduled deletion time (time stamp) of a key.\n","type":"string"}},"required":["creationDate","defaultKeyFlag","domainId","expirationTime","id","keyAlias","keyDescription","keyId","keyState","origin","realm","scheduledDeletionDate"],"type":"object"}},"opentelekomcloud:index/getLbCertificateV3:getLbCertificateV3":{"description":"Up-to-date reference of API arguments for ELBv3 certificate you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-load-balancing/api-ref/apis_v3/certificate/querying_certificates.html#listcertificates)\n\nUse this data source to get the info about an existing ELBv3 certificate.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst certificate1 = opentelekomcloud.getLbCertificateV3({\n    name: certificateId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ncertificate1 = opentelekomcloud.get_lb_certificate_v3(name=certificate_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var certificate1 = Opentelekomcloud.GetLbCertificateV3.Invoke(new()\n    {\n        Name = certificateId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupLbCertificateV3(ctx, &opentelekomcloud.LookupLbCertificateV3Args{\n\t\t\tName: pulumi.StringRef(certificateId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetLbCertificateV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var certificate1 = OpentelekomcloudFunctions.getLbCertificateV3(GetLbCertificateV3Args.builder()\n            .name(certificateId)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  certificate1:\n    fn::invoke:\n      function: opentelekomcloud:getLbCertificateV3\n      arguments:\n        name: ${certificateId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getLbCertificateV3.\n","properties":{"domain":{"description":"The domain of the Certificate.\n","type":"string"},"id":{"description":"Specifies the certificate ID.\n","type":"string"},"name":{"description":"Specifies the certificate name.\n","type":"string"},"type":{"description":"The type of certificate the container holds. Either <span pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\">`server`</span> or <span pulumi-lang-nodejs=\"`client`\" pulumi-lang-dotnet=\"`Client`\" pulumi-lang-go=\"`client`\" pulumi-lang-python=\"`client`\" pulumi-lang-yaml=\"`client`\" pulumi-lang-java=\"`client`\">`client`</span>.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getLbCertificateV3.\n","properties":{"certificate":{"description":"The public encrypted key of the Certificate, PEM format.\n","type":"string"},"createdAt":{"type":"string"},"description":{"description":"Provides supplementary information about the certificate.\n","type":"string"},"domain":{"type":"string"},"expireTime":{"description":"Indicates the expiration time.\n","type":"string"},"id":{"type":"string"},"name":{"type":"string"},"privateKey":{"description":"The private encrypted key of the Certificate, PEM format.\n","type":"string"},"type":{"type":"string"},"updatedAt":{"description":"Indicates the update time.\n","type":"string"}},"required":["certificate","createdAt","description","domain","expireTime","id","name","privateKey","type","updatedAt"],"type":"object"}},"opentelekomcloud:index/getLbFlavorV3:getLbFlavorV3":{"description":"Up-to-date reference of API arguments for ELBv3 flavor you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-load-balancing/api-ref/apis_v3/load_balancer_flavor/querying_flavors.html#listflavors)\n\nUse this data source to get the info about an existing ELBv3 flavor.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst l7S2Small = opentelekomcloud.getLbFlavorV3({\n    name: \"L7_flavor.elb.s2.small\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nl7_s2_small = opentelekomcloud.get_lb_flavor_v3(name=\"L7_flavor.elb.s2.small\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var l7S2Small = Opentelekomcloud.GetLbFlavorV3.Invoke(new()\n    {\n        Name = \"L7_flavor.elb.s2.small\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetLbFlavorV3(ctx, &opentelekomcloud.GetLbFlavorV3Args{\n\t\t\tName: pulumi.StringRef(\"L7_flavor.elb.s2.small\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetLbFlavorV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var l7S2Small = OpentelekomcloudFunctions.getLbFlavorV3(GetLbFlavorV3Args.builder()\n            .name(\"L7_flavor.elb.s2.small\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  l7S2Small:\n    fn::invoke:\n      function: opentelekomcloud:getLbFlavorV3\n      arguments:\n        name: L7_flavor.elb.s2.small\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getLbFlavorV3.\n","properties":{"id":{"description":"Specifies the flavor ID.\n","type":"string"},"name":{"description":"Specifies the flavor name.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getLbFlavorV3.\n","properties":{"bandwidth":{"description":"Specifies the inbound and outbound bandwidth in the unit of Kbit/s.\n","type":"number"},"cps":{"description":"Specifies the number of new connections per second.\n","type":"number"},"id":{"type":"string"},"maxConnections":{"description":"Specifies the maximum concurrent connections.\n","type":"number"},"name":{"type":"string"},"qps":{"description":"Specifies the number of requests per second at Layer 7.\n","type":"number"},"shared":{"description":"Specifies whether the flavor is available to all users.\n","type":"boolean"},"type":{"description":"Specifies the flavor type.\n","type":"string"}},"required":["bandwidth","cps","id","maxConnections","name","qps","shared","type"],"type":"object"}},"opentelekomcloud:index/getLbFlavorsV3:getLbFlavorsV3":{"description":"Up-to-date reference of API arguments for ELBv3 flavor you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-load-balancing/api-ref/apis_v3/load_balancer_flavor/querying_flavors.html#listflavors)\n\nUse this data source to get list of ELBv3 flavors names.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst flavorsNames = opentelekomcloud.getLbFlavorsV3({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nflavors_names = opentelekomcloud.get_lb_flavors_v3()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var flavorsNames = Opentelekomcloud.GetLbFlavorsV3.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetLbFlavorsV3(ctx, &opentelekomcloud.GetLbFlavorsV3Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetLbFlavorsV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var flavorsNames = OpentelekomcloudFunctions.getLbFlavorsV3(GetLbFlavorsV3Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  flavorsNames:\n    fn::invoke:\n      function: opentelekomcloud:getLbFlavorsV3\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getLbFlavorsV3.\n","properties":{"id":{"description":"Specifies the flavor ID.\n","type":"string"},"name":{"description":"Specifies the flavor name.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getLbFlavorsV3.\n","properties":{"flavors":{"description":"A list of all the flavors names found. This data source will fail if none are found.\n","items":{"type":"string"},"type":"array"},"id":{"type":"string"},"name":{"type":"string"}},"required":["flavors","id","name"],"type":"object"}},"opentelekomcloud:index/getLbListenerV3:getLbListenerV3":{"description":"Up-to-date reference of API arguments for ELBv3 listener you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-load-balancing/api-ref/apis_v3/listener/querying_listeners.html#listlisteners)\n\nUse this data source to get the info about an existing ELBv3 listener.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst listener = opentelekomcloud.getLbListenerV3({\n    loadbalancerId: loadbalancerId,\n    name: \"https_listener\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nlistener = opentelekomcloud.get_lb_listener_v3(loadbalancer_id=loadbalancer_id,\n    name=\"https_listener\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var listener = Opentelekomcloud.GetLbListenerV3.Invoke(new()\n    {\n        LoadbalancerId = loadbalancerId,\n        Name = \"https_listener\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupLbListenerV3(ctx, &opentelekomcloud.LookupLbListenerV3Args{\n\t\t\tLoadbalancerId: pulumi.StringRef(loadbalancerId),\n\t\t\tName:           pulumi.StringRef(\"https_listener\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetLbListenerV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var listener = OpentelekomcloudFunctions.getLbListenerV3(GetLbListenerV3Args.builder()\n            .loadbalancerId(loadbalancerId)\n            .name(\"https_listener\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  listener:\n    fn::invoke:\n      function: opentelekomcloud:getLbListenerV3\n      arguments:\n        loadbalancerId: ${loadbalancerId}\n        name: https_listener\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getLbListenerV3.\n","properties":{"clientCaTlsContainerRef":{"description":"Specifies the ID of the CA certificate used by the listener.\n","type":"string"},"clientTimeout":{"description":"Specifies the timeout duration for waiting for a request from a client, in seconds.\nThis parameter is available only for `HTTP` and `HTTPS` listeners. The value ranges from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span>, and\nthe default value is <span pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\">`60`</span>. An error will be returned if you configure this parameter for `TCP` and `UDP` listeners.\n","type":"number"},"defaultPoolId":{"description":"Specifies the ID of the default backend server group.\n","type":"string"},"defaultTlsContainerRef":{"description":"Specifies the ID of the server certificate used by the listener.\n","type":"string"},"description":{"description":"Provides supplementary information about the listener.\n","type":"string"},"id":{"description":"Specifies the listener ID.\n","type":"string"},"keepAliveTimeout":{"description":"Specifies the idle timeout duration, in seconds.\n","type":"number"},"loadbalancerId":{"description":"Specifies the ID of the load balancer that the listener is added to.\n","type":"string"},"memberAddress":{"description":"Specifies the private IP address bound to the backend server.\nThis parameter is used only as a query condition and is not included in the response.\n","type":"string"},"memberDeviceId":{"description":"Specifies the ID of the cloud server that serves as a backend server.\nThis parameter is used only as a query condition and is not included in the response.\n","type":"string"},"memberTimeout":{"description":"Specifies the timeout duration for waiting for a request from a\nbackend server, in seconds. This parameter is available only for `HTTP` and `HTTPS` listeners.\nThe value ranges from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span>, and the default value is <span pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\">`60`</span>. An error will be returned if\nyou configure this parameter for `TCP` and `UDP` listeners.\n","type":"number"},"name":{"description":"Specifies the listener name.\n","type":"string"},"protocol":{"description":"The protocol - can either be `TCP`, `HTTP`, `HTTPS` or `UDP`.\n","type":"string"},"protocolPort":{"description":"Specifies the port used by the listener. Changing this creates a new Listener.\n","type":"number"},"tlsCiphersPolicy":{"description":"Specifies the TLS version used.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getLbListenerV3.\n","properties":{"adminStateUp":{"type":"boolean"},"advancedForwarding":{"description":"Specifies whether to enable advanced forwarding.\n","type":"boolean"},"clientCaTlsContainerRef":{"type":"string"},"clientTimeout":{"type":"number"},"createdAt":{"description":"Indicates the creation time.\n","type":"string"},"defaultPoolId":{"type":"string"},"defaultTlsContainerRef":{"type":"string"},"description":{"type":"string"},"http2Enable":{"description":"Specifies whether to use HTTP/2.\n","type":"boolean"},"id":{"type":"string"},"insertHeaders":{"description":"Specifies the HTTP header fields.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetLbListenerV3InsertHeader:getLbListenerV3InsertHeader"},"type":"array"},"ipGroups":{"description":"Specifies the IP address group associated with the listener.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetLbListenerV3IpGroup:getLbListenerV3IpGroup"},"type":"array"},"keepAliveTimeout":{"type":"number"},"loadbalancerId":{"type":"string"},"memberAddress":{"type":"string"},"memberDeviceId":{"type":"string"},"memberRetryEnable":{"description":"Specifies whether to enable health check retries for backend servers.\n","type":"boolean"},"memberTimeout":{"type":"number"},"memoryRetryEnable":{"type":"boolean"},"name":{"type":"string"},"projectId":{"description":"Specifies the project ID.\n","type":"string"},"protocol":{"type":"string"},"protocolPort":{"type":"number"},"securityPolicyId":{"description":"Specifies the ID of the custom security policy.\n","type":"string"},"sniContainerRefs":{"description":"Lists the IDs of SNI certificates (server certificates with domain names) used by the listener.\n","items":{"type":"string"},"type":"array"},"sniMatchAlgo":{"description":"Specifies how wildcard domain name matches with the SNI certificates\nused by the listener.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the loadbalancer listener.\n","type":"object"},"tlsCiphersPolicy":{"type":"string"},"updatedAt":{"description":"Indicates the update time.\n","type":"string"}},"required":["adminStateUp","advancedForwarding","createdAt","http2Enable","insertHeaders","ipGroups","memberRetryEnable","memoryRetryEnable","projectId","securityPolicyId","sniContainerRefs","sniMatchAlgo","tags","updatedAt"],"type":"object"}},"opentelekomcloud:index/getLbLoadbalancerV3:getLbLoadbalancerV3":{"description":"Up-to-date reference of API arguments for ELBv3 loadbalancer you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-load-balancing/api-ref/apis_v3/load_balancer/querying_load_balancers.html#listloadbalancers)\n\nUse this data source to get the info about an existing ELBv3 load balancer.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst loadbalancer1 = opentelekomcloud.getLbLoadbalancerV3({\n    id: lbId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nloadbalancer1 = opentelekomcloud.get_lb_loadbalancer_v3(id=lb_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var loadbalancer1 = Opentelekomcloud.GetLbLoadbalancerV3.Invoke(new()\n    {\n        Id = lbId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupLbLoadbalancerV3(ctx, &opentelekomcloud.LookupLbLoadbalancerV3Args{\n\t\t\tId: pulumi.StringRef(lbId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetLbLoadbalancerV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var loadbalancer1 = OpentelekomcloudFunctions.getLbLoadbalancerV3(GetLbLoadbalancerV3Args.builder()\n            .id(lbId)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  loadbalancer1:\n    fn::invoke:\n      function: opentelekomcloud:getLbLoadbalancerV3\n      arguments:\n        id: ${lbId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getLbLoadbalancerV3.\n","properties":{"id":{"description":"Specifies the LoadBalancer ID.\n","type":"string"},"l4Flavor":{"type":"string"},"l7Flavor":{"type":"string"},"name":{"description":"Specifies the LoadBalancer name.\n","type":"string"},"routerId":{"description":"The ID of the router (or VPC) this LoadBalancer belongs.\n","type":"string"},"subnetId":{"description":"The ID of the subnet to which the LoadBalancer belongs.\n","type":"string"},"vipAddress":{"description":"The IP address of the LoadBalancer.\n","type":"string"},"vipPortId":{"description":"The Port ID of the Load Balancer IP.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getLbLoadbalancerV3.\n","properties":{"adminStateUp":{"description":"The administrative state of the LoadBalancer.\n","type":"boolean"},"availabilityZones":{"description":"Specifies the availability zones where the LoadBalancer will be located.\n","items":{"type":"string"},"type":"array"},"createdAt":{"description":"The time the LoadBalancer was created.\n","type":"string"},"deletionProtection":{"description":"Specifies whether to enable deletion protection for the load balancer.\n","type":"boolean"},"description":{"description":"Specifies supplementary information about the load balancer.\n","type":"string"},"id":{"description":"Elastic IP ID.\n","type":"string"},"ipTargetEnable":{"description":"The value can be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> (enabled) or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> (disabled).\n","type":"boolean"},"l4Flavor":{"type":"string"},"l7Flavor":{"type":"string"},"name":{"type":"string"},"networkIds":{"description":"Specifies the subnet Network ID.\n","items":{"type":"string"},"type":"array"},"publicIps":{"description":"The elastic IP address of the instance.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetLbLoadbalancerV3PublicIp:getLbLoadbalancerV3PublicIp"},"type":"array"},"routerId":{"type":"string"},"subnetId":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"updatedAt":{"description":"The time the LoadBalancer was last updated.\n","type":"string"},"vipAddress":{"type":"string"},"vipPortId":{"type":"string"}},"required":["adminStateUp","availabilityZones","createdAt","deletionProtection","description","id","ipTargetEnable","l4Flavor","l7Flavor","name","networkIds","publicIps","routerId","subnetId","tags","updatedAt","vipAddress","vipPortId"],"type":"object"}},"opentelekomcloud:index/getLbMemberIdsV2:getLbMemberIdsV2":{"description":"Up-to-date reference of API arguments for ELBv3 pool members you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-load-balancing/api-ref/apis_v2.0/backend_server/querying_backend_servers.html#elb-zq-hd-0002)\n\nUse this data source to get a list of member IDs for a ELBv2 pool from OpenTelekomCloud.\nThis data source can be useful for getting back a list of member IDs for a ELBv2 pool.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst _this = opentelekomcloud.getLbMemberIdsV2({\n    poolId: poolId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nthis = opentelekomcloud.get_lb_member_ids_v2(pool_id=pool_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var @this = Opentelekomcloud.GetLbMemberIdsV2.Invoke(new()\n    {\n        PoolId = poolId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetLbMemberIdsV2(ctx, &opentelekomcloud.GetLbMemberIdsV2Args{\n\t\t\tPoolId: poolId,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetLbMemberIdsV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var this = OpentelekomcloudFunctions.getLbMemberIdsV2(GetLbMemberIdsV2Args.builder()\n            .poolId(poolId)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  this:\n    fn::invoke:\n      function: opentelekomcloud:getLbMemberIdsV2\n      arguments:\n        poolId: ${poolId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getLbMemberIdsV2.\n","properties":{"id":{"type":"string"},"poolId":{"description":"Specifies the ELBv2 pool ID used as the query filter.\n","type":"string"},"region":{"type":"string"}},"required":["poolId"],"type":"object"},"outputs":{"description":"A collection of values returned by getLbMemberIdsV2.\n","properties":{"id":{"type":"string"},"ids":{"description":"A list of all the member IDs found.\n","items":{"type":"string"},"type":"array"},"poolId":{"type":"string"},"region":{"type":"string"}},"required":["id","ids","poolId","region"],"type":"object"}},"opentelekomcloud:index/getLtsGroupsV2:getLtsGroupsV2":{"description":"Up-to-date reference of API arguments for LTS Groups you can get at\n[documentation portal](https://docs.otc.t-systems.com/log-tank-service/api-ref/apis/log_group_management/querying_all_log_groups_of_an_account.html#listloggroups)\n\nUse this data source to get the list of LTS log groups.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = opentelekomcloud.getLtsGroupsV2({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.get_lts_groups_v2()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = Opentelekomcloud.GetLtsGroupsV2.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetLtsGroupsV2(ctx, &opentelekomcloud.GetLtsGroupsV2Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetLtsGroupsV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = OpentelekomcloudFunctions.getLtsGroupsV2(GetLtsGroupsV2Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getLtsGroupsV2\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getLtsGroupsV2.\n","properties":{"id":{"description":"The log group ID.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getLtsGroupsV2.\n","properties":{"groups":{"description":"All log groups that match the filter parameters.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetLtsGroupsV2Group:getLtsGroupsV2Group"},"type":"array"},"id":{"description":"The log group ID.\n","type":"string"},"region":{"description":"Region in which to query the resources are placed.\n","type":"string"}},"required":["groups","id","region"],"type":"object"}},"opentelekomcloud:index/getLtsStreamsV2:getLtsStreamsV2":{"description":"Up-to-date reference of API arguments for LTS log streams service you can get at\n[documentation portal](https://docs.otc.t-systems.com/log-tank-service/api-ref/apis/log_stream_management/querying_log_streams.html#listlogstreams)\n\nUse this data source to get the list of LTS log streams.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = opentelekomcloud.getLtsStreamsV2({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.get_lts_streams_v2()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = Opentelekomcloud.GetLtsStreamsV2.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetLtsStreamsV2(ctx, &opentelekomcloud.GetLtsStreamsV2Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetLtsStreamsV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = OpentelekomcloudFunctions.getLtsStreamsV2(GetLtsStreamsV2Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getLtsStreamsV2\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getLtsStreamsV2.\n","properties":{"id":{"description":"The ID of the log stream.\n","type":"string"},"logGroupName":{"description":"Specifies the name of the log group.\n","type":"string"},"name":{"description":"Specifies the name of the log stream.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getLtsStreamsV2.\n","properties":{"id":{"description":"The ID of the log stream.\n","type":"string"},"logGroupName":{"type":"string"},"name":{"description":"The name of the log stream.\n","type":"string"},"region":{"description":"Shows the region in the log stream resources created.\n","type":"string"},"streams":{"description":"All log streams that match the filter parameters.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetLtsStreamsV2Stream:getLtsStreamsV2Stream"},"type":"array"}},"required":["id","region","streams"],"type":"object"}},"opentelekomcloud:index/getNatDnatRulesV2:getNatDnatRulesV2":{"description":"Up-to-date reference of API arguments for NAT Gateway you can get at\n[documentation portal](https://docs.otc.t-systems.com/nat-gateway/api-ref/api_v2.0/dnat_rules/querying_dnat_rules.html#nat-api-0012)\n\nUse this data source to get the list of DNAT rules within OpenTelekomCloud..\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst protocol = config.requireObject<any>(\"protocol\");\nconst rule = opentelekomcloud.getNatDnatRulesV2({\n    protocol: protocol,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nprotocol = config.require_object(\"protocol\")\nrule = opentelekomcloud.get_nat_dnat_rules_v2(protocol=protocol)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var protocol = config.RequireObject<dynamic>(\"protocol\");\n    var rule = Opentelekomcloud.GetNatDnatRulesV2.Invoke(new()\n    {\n        Protocol = protocol,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tprotocol := cfg.RequireObject(\"protocol\")\n\t\t_, err := opentelekomcloud.GetNatDnatRulesV2(ctx, &opentelekomcloud.GetNatDnatRulesV2Args{\n\t\t\tProtocol: pulumi.StringRef(protocol),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetNatDnatRulesV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var protocol = config.get(\"protocol\");\n        final var rule = OpentelekomcloudFunctions.getNatDnatRulesV2(GetNatDnatRulesV2Args.builder()\n            .protocol(protocol)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  protocol:\n    type: dynamic\nvariables:\n  rule:\n    fn::invoke:\n      function: opentelekomcloud:getNatDnatRulesV2\n      arguments:\n        protocol: ${protocol}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getNatDnatRulesV2.\n","properties":{"description":{"description":"Specifies the description of the DNAT rule.\n","type":"string"},"externalServicePort":{"description":"Specifies the port of the EIP associated with the DNAT rule.\n","type":"number"},"floatingIpAddress":{"description":"Specifies the IP address of the EIP associated with the DNAT rule.\n","type":"string"},"floatingIpId":{"description":"Specifies the ID of the EIP associated with the DNAT rule.\n","type":"string"},"gatewayId":{"description":"Specifies the ID of the NAT gateway to which the DNAT rule belongs.\n","type":"string"},"id":{"description":"The ID of the DNAT rule.\n","type":"string"},"internalServicePort":{"description":"Specifies the port of the backend instance to which the DNAT rule\nbelongs.\n","type":"number"},"portId":{"description":"Specifies the port ID of the backend instance to which the DNAT rule belongs.\n","type":"string"},"privateIp":{"description":"Specifies the private IP address of the backend instance to which the DNAT rule\nbelongs.\n","type":"string"},"protocol":{"description":"Specifies the protocol type of the DNAT rule.\nThe value can be one of the following:\n","type":"string"},"ruleId":{"description":"Specifies the ID of the DNAT rule.\n","type":"string"},"status":{"description":"Specifies the status of the DNAT rule.\nThe value can be one of the following:\n* `ACTIVE`: The SNAT rule is available.\n* `EIP_FREEZED`: The EIP is frozen associated with SNAT rule.\n* `INACTIVE`: The SNAT rule is unavailable.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getNatDnatRulesV2.\n","properties":{"description":{"description":"The description of the DNAT rule.\n","type":"string"},"externalServicePort":{"description":"The port of the EIP associated with the DNAT rule belongs.\n","type":"number"},"floatingIpAddress":{"description":"The IP address of the EIP associated with the DNAT rule.\n","type":"string"},"floatingIpId":{"description":"The ID of the EIP associated with the DNAT rule.\n","type":"string"},"gatewayId":{"description":"The ID of the NAT gateway to which the DNAT rule belongs.\n","type":"string"},"id":{"description":"The ID of the DNAT rule.\n","type":"string"},"internalServicePort":{"description":"The port of the backend instance to which the DNAT rule belongs.\n","type":"number"},"portId":{"description":"The port ID of the backend instance to which the DNAT rule belongs.\n","type":"string"},"privateIp":{"description":"The private IP address of the backend instance to which the DNAT rule belongs.\n","type":"string"},"protocol":{"description":"The protocol type of the DNAT rule.\n","type":"string"},"region":{"description":"The region where the DNAT rules are located.\n","type":"string"},"ruleId":{"type":"string"},"rules":{"description":"The list ot the DNAT rules.\nThe rules structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetNatDnatRulesV2Rule:getNatDnatRulesV2Rule"},"type":"array"},"status":{"description":"The status of the DNAT rule.\n","type":"string"}},"required":["id","region","rules"],"type":"object"}},"opentelekomcloud:index/getNatGatewayV2:getNatGatewayV2":{"description":"Up-to-date reference of API arguments for NAT Gateway you can get at\n[documentation portal](https://docs.otc.t-systems.com/nat-gateway/api-ref/api_v2.0/nat_gateway_service/querying_nat_gateways.html#nat-api-0002)\n\nUse this data source to get the info about an existing V2 NAT Gateway resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst _this = opentelekomcloud.getNatGatewayV2({\n    name: \"tf_nat\",\n    spec: \"1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nthis = opentelekomcloud.get_nat_gateway_v2(name=\"tf_nat\",\n    spec=\"1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var @this = Opentelekomcloud.GetNatGatewayV2.Invoke(new()\n    {\n        Name = \"tf_nat\",\n        Spec = \"1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupNatGatewayV2(ctx, &opentelekomcloud.LookupNatGatewayV2Args{\n\t\t\tName: pulumi.StringRef(\"tf_nat\"),\n\t\t\tSpec: pulumi.StringRef(\"1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetNatGatewayV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var this = OpentelekomcloudFunctions.getNatGatewayV2(GetNatGatewayV2Args.builder()\n            .name(\"tf_nat\")\n            .spec(\"1\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  this:\n    fn::invoke:\n      function: opentelekomcloud:getNatGatewayV2\n      arguments:\n        name: tf_nat\n        spec: '1'\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getNatGatewayV2.\n","properties":{"adminStateUp":{"description":"Specifies whether the NAT gateway is up or down. Possible values are:\n","type":"boolean"},"description":{"description":"The description of the NAT Gateway.\n","type":"string"},"id":{"description":"ID of NAT gateway.\n","type":"string"},"internalNetworkId":{"description":"ID of the network this NAT Gateway connects to.\n","type":"string"},"name":{"description":"The name of the NAT Gateway.\n","type":"string"},"natId":{"description":"The ID of the NAT Gateway.\n","type":"string"},"region":{"description":"Region of NAT gateway.\n","type":"string"},"routerId":{"description":"ID of the router (or VPC) this NAT Gateway belongs to.\n","type":"string"},"spec":{"description":"The specification of the NAT Gateway, valid values are `\"1\"`, `\"2\"`, `\"3\"`, `\"4\"`.\n","type":"string"},"status":{"description":"Specifies the NAT gateway status.\n","type":"string"},"tenantId":{"description":"The target tenant ID in which to allocate the NAT\nGateway.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getNatGatewayV2.\n","properties":{"adminStateUp":{"type":"boolean"},"description":{"type":"string"},"id":{"description":"ID of NAT gateway.\n","type":"string"},"internalNetworkId":{"type":"string"},"name":{"type":"string"},"natId":{"type":"string"},"region":{"description":"Region of NAT gateway.\n","type":"string"},"routerId":{"type":"string"},"spec":{"type":"string"},"status":{"type":"string"},"tenantId":{"type":"string"}},"required":["adminStateUp","description","id","internalNetworkId","name","natId","region","routerId","spec","status","tenantId"],"type":"object"}},"opentelekomcloud:index/getNatSnatRulesV2:getNatSnatRulesV2":{"description":"Up-to-date reference of API arguments for NAT Gateway you can get at\n[documentation portal](https://docs.otc.t-systems.com/nat-gateway/api-ref/api_v2.0/snat_rules/querying_snat_rules.html#nat-api-0007)\n\nUse this data source to get the list of SNAT rules.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst ruleId = config.requireObject<any>(\"ruleId\");\nconst rule = opentelekomcloud.getNatSnatRulesV2({\n    ruleId: ruleId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nrule_id = config.require_object(\"ruleId\")\nrule = opentelekomcloud.get_nat_snat_rules_v2(rule_id=rule_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var ruleId = config.RequireObject<dynamic>(\"ruleId\");\n    var rule = Opentelekomcloud.GetNatSnatRulesV2.Invoke(new()\n    {\n        RuleId = ruleId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\truleId := cfg.RequireObject(\"ruleId\")\n\t\t_, err := opentelekomcloud.GetNatSnatRulesV2(ctx, &opentelekomcloud.GetNatSnatRulesV2Args{\n\t\t\tRuleId: pulumi.StringRef(ruleId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetNatSnatRulesV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var ruleId = config.get(\"ruleId\");\n        final var rule = OpentelekomcloudFunctions.getNatSnatRulesV2(GetNatSnatRulesV2Args.builder()\n            .ruleId(ruleId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  ruleId:\n    type: dynamic\nvariables:\n  rule:\n    fn::invoke:\n      function: opentelekomcloud:getNatSnatRulesV2\n      arguments:\n        ruleId: ${ruleId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getNatSnatRulesV2.\n","properties":{"cidr":{"description":"Specifies the CIDR block to which the SNAT rule belongs.\n","type":"string"},"description":{"description":"Specifies the description of the SNAT rule.\n","type":"string"},"floatingIpAddress":{"description":"Specifies the IP of the EIP associated with SNAT rule.\n","type":"string"},"floatingIpId":{"description":"Specifies the ID of the EIP associated with SNAT rule.\n","type":"string"},"gatewayId":{"description":"Specifies the ID of the NAT gateway to which the SNAT rule belongs.\n","type":"string"},"id":{"description":"The ID of the SNAT rule.\n","type":"string"},"projectId":{"description":"Specifies the project ID to which the SNAT rule belongs.\n","type":"string"},"ruleId":{"description":"Specifies the ID of the SNAT rule.\n","type":"string"},"sourceType":{"description":"Specifies the source type of the SNAT rule.\nThe value can be one of the following:\n","type":"number"},"status":{"description":"Specifies the status of the SNAT rule.\nThe value can be one of the following:\n* `ACTIVE`: The SNAT rule is available.\n* `EIP_FREEZED`: The global EIP is frozen associated with SNAT rule.\n+ `INACTIVE`: The SNAT rule is unavailable.\n","type":"string"},"subnetId":{"description":"Specifies the ID of the subnet to which the SNAT rule belongs.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getNatSnatRulesV2.\n","properties":{"cidr":{"description":"The CIDR block to which the SNAT rule belongs.\n","type":"string"},"description":{"type":"string"},"floatingIpAddress":{"description":"The IPs of the EIP associated with SNAT rule, multiple EIP IPs separate by commas.\ne.g. `IP1,IP2`.\n","type":"string"},"floatingIpId":{"description":"The IDs of the EIP associated with SNAT rule, multiple EIP IDs separate by commas.\ne.g. `ID1,ID2`.\n","type":"string"},"gatewayId":{"description":"The ID of the NAT gateway to which the SNAT rule belongs.\n","type":"string"},"id":{"description":"The ID of the SNAT rule.\n","type":"string"},"projectId":{"description":"The ID of the project ID to which the SNAT rule belongs.\n","type":"string"},"region":{"description":"The region where the SNAT rules are located.\n","type":"string"},"ruleId":{"type":"string"},"rules":{"description":"The list of the SNAT rules.\nThe rules structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetNatSnatRulesV2Rule:getNatSnatRulesV2Rule"},"type":"array"},"sourceType":{"description":"The source type of the SNAT rule.\n","type":"number"},"status":{"description":"The status of the SNAT rule.\n","type":"string"},"subnetId":{"description":"The ID of the subnet to which the SNAT rule belongs.\n","type":"string"}},"required":["id","region","rules"],"type":"object"}},"opentelekomcloud:index/getNetworkingNetworkV2:getNetworkingNetworkV2":{"description":"Up-to-date reference of API arguments for Network you can get at\n[documentation portal](https://docs.otc.t-systems.com/virtual-private-cloud/api-ref/native_openstack_neutron_apis_v2.0/network/querying_networks.html#vpc-network-0001)\n\nUse this data source to get the ID of an available OpenTelekomCloud network.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst network = opentelekomcloud.getNetworkingNetworkV2({\n    name: \"tf_test_network\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nnetwork = opentelekomcloud.get_networking_network_v2(name=\"tf_test_network\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var network = Opentelekomcloud.GetNetworkingNetworkV2.Invoke(new()\n    {\n        Name = \"tf_test_network\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupNetworkingNetworkV2(ctx, &opentelekomcloud.LookupNetworkingNetworkV2Args{\n\t\t\tName: pulumi.StringRef(\"tf_test_network\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetNetworkingNetworkV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var network = OpentelekomcloudFunctions.getNetworkingNetworkV2(GetNetworkingNetworkV2Args.builder()\n            .name(\"tf_test_network\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  network:\n    fn::invoke:\n      function: opentelekomcloud:getNetworkingNetworkV2\n      arguments:\n        name: tf_test_network\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getNetworkingNetworkV2.\n","properties":{"id":{"type":"string"},"matchingSubnetCidr":{"description":"The CIDR of a subnet within the network.\n","type":"string"},"name":{"description":"The name of the network.\n","type":"string"},"networkId":{"description":"The ID of the network.\n","type":"string"},"region":{"type":"string"},"tenantId":{"description":"The owner of the network.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getNetworkingNetworkV2.\n","properties":{"adminStateUp":{"description":"The administrative state of the network.\n","type":"string"},"id":{"type":"string"},"matchingSubnetCidr":{"type":"string"},"name":{"description":"See Argument Reference above.\n","type":"string"},"networkId":{"type":"string"},"region":{"type":"string"},"shared":{"description":"Specifies whether the network resource can be accessed by any tenant or not.\n","type":"string"},"tenantId":{"type":"string"}},"required":["adminStateUp","id","region","shared"],"type":"object"}},"opentelekomcloud:index/getNetworkingPortIdsV2:getNetworkingPortIdsV2":{"description":"Up-to-date reference of API arguments for Network port you can get at\n[documentation portal](https://docs.otc.t-systems.com/virtual-private-cloud/api-ref/native_openstack_neutron_apis_v2.0/port/querying_ports.html#vpc-port02-0001)\n\nUse this data source to get a list of OpenTelekomCloud Port IDs matching the\nspecified criteria.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst ports = opentelekomcloud.getNetworkingPortIdsV2({\n    name: \"port\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nports = opentelekomcloud.get_networking_port_ids_v2(name=\"port\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var ports = Opentelekomcloud.GetNetworkingPortIdsV2.Invoke(new()\n    {\n        Name = \"port\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetNetworkingPortIdsV2(ctx, &opentelekomcloud.GetNetworkingPortIdsV2Args{\n\t\t\tName: pulumi.StringRef(\"port\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetNetworkingPortIdsV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ports = OpentelekomcloudFunctions.getNetworkingPortIdsV2(GetNetworkingPortIdsV2Args.builder()\n            .name(\"port\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  ports:\n    fn::invoke:\n      function: opentelekomcloud:getNetworkingPortIdsV2\n      arguments:\n        name: port\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getNetworkingPortIdsV2.\n","properties":{"deviceId":{"description":"The ID of the device the port belongs to.\n","type":"string"},"deviceOwner":{"description":"The device owner of the port.\n","type":"string"},"fixedIp":{"description":"The port IP address filter.\n","type":"string"},"id":{"type":"string"},"macAddress":{"description":"The MAC address of the port.\n","type":"string"},"name":{"description":"The name of the port.\n","type":"string"},"networkId":{"description":"The ID of the network the port belongs to.\n","type":"string"},"projectId":{"description":"The owner of the port.\n","type":"string"},"region":{"description":"The region in which to obtain the V2 Neutron client.\nA Neutron client is needed to retrieve port ids. If omitted, the\n<span pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\">`region`</span> argument of the provider is used.\n","type":"string"},"securityGroupIds":{"description":"The list of port security group IDs to filter.\n","items":{"type":"string"},"type":"array"},"sortDirection":{"description":"Order the results in either <span pulumi-lang-nodejs=\"`asc`\" pulumi-lang-dotnet=\"`Asc`\" pulumi-lang-go=\"`asc`\" pulumi-lang-python=\"`asc`\" pulumi-lang-yaml=\"`asc`\" pulumi-lang-java=\"`asc`\">`asc`</span> or <span pulumi-lang-nodejs=\"`desc`\" pulumi-lang-dotnet=\"`Desc`\" pulumi-lang-go=\"`desc`\" pulumi-lang-python=\"`desc`\" pulumi-lang-yaml=\"`desc`\" pulumi-lang-java=\"`desc`\">`desc`</span>.\nDefaults to none.\n","type":"string"},"sortKey":{"description":"Sort ports based on a certain key. Defaults to none.\n","type":"string"},"status":{"description":"The status of the port.\n","type":"string"},"tenantId":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getNetworkingPortIdsV2.\n","properties":{"deviceId":{"type":"string"},"deviceOwner":{"type":"string"},"fixedIp":{"type":"string"},"id":{"type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"macAddress":{"type":"string"},"name":{"type":"string"},"networkId":{"type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"securityGroupIds":{"items":{"type":"string"},"type":"array"},"sortDirection":{"type":"string"},"sortKey":{"type":"string"},"status":{"type":"string"},"tenantId":{"type":"string"}},"required":["id","ids"],"type":"object"}},"opentelekomcloud:index/getNetworkingPortV2:getNetworkingPortV2":{"description":"Up-to-date reference of API arguments for Network port you can get at\n[documentation portal](https://docs.otc.t-systems.com/virtual-private-cloud/api-ref/native_openstack_neutron_apis_v2.0/port/querying_ports.html#vpc-port02-0001)\n\nUse this data source to get the ID of an available OpenTelekomCloud port.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst port1 = opentelekomcloud.getNetworkingPortV2({\n    name: \"port_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nport1 = opentelekomcloud.get_networking_port_v2(name=\"port_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var port1 = Opentelekomcloud.GetNetworkingPortV2.Invoke(new()\n    {\n        Name = \"port_1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupNetworkingPortV2(ctx, &opentelekomcloud.LookupNetworkingPortV2Args{\n\t\t\tName: pulumi.StringRef(\"port_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetNetworkingPortV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var port1 = OpentelekomcloudFunctions.getNetworkingPortV2(GetNetworkingPortV2Args.builder()\n            .name(\"port_1\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  port1:\n    fn::invoke:\n      function: opentelekomcloud:getNetworkingPortV2\n      arguments:\n        name: port_1\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getNetworkingPortV2.\n","properties":{"adminStateUp":{"description":"The administrative state of the port.\n","type":"boolean"},"deviceId":{"description":"The ID of the device the port belongs to.\n","type":"string"},"deviceOwner":{"description":"The device owner of the port.\n","type":"string"},"fixedIp":{"description":"The port IP address filter.\n","type":"string"},"id":{"type":"string"},"macAddress":{"description":"The MAC address of the port.\n","type":"string"},"name":{"description":"The name of the port.\n","type":"string"},"networkId":{"description":"The ID of the network the port belongs to.\n","type":"string"},"portId":{"description":"The ID of the port.\n","type":"string"},"projectId":{"description":"The owner of the port.\n","type":"string"},"region":{"description":"The region in which to obtain the V2 Neutron client.\nA Neutron client is needed to retrieve port ids. If omitted, the\n<span pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\">`region`</span> argument of the provider is used.\n","type":"string"},"securityGroupIds":{"description":"The list of port security group IDs to filter.\n","items":{"type":"string"},"type":"array"},"status":{"description":"The status of the port.\n","type":"string"},"tenantId":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getNetworkingPortV2.\n","properties":{"adminStateUp":{"description":"See Argument Reference above.\n","type":"boolean"},"allFixedIps":{"description":"The collection of Fixed IP addresses on the port in the\norder returned by the Network v2 API.\n","items":{"type":"string"},"type":"array"},"allSecurityGroupIds":{"description":"The set of security group IDs applied on the port.\n","items":{"type":"string"},"type":"array"},"deviceId":{"description":"See Argument Reference above.\n","type":"string"},"deviceOwner":{"description":"See Argument Reference above.\n","type":"string"},"fixedIp":{"type":"string"},"id":{"type":"string"},"macAddress":{"description":"See Argument Reference above.\n","type":"string"},"name":{"description":"See Argument Reference above.\n","type":"string"},"networkId":{"description":"See Argument Reference above.\n","type":"string"},"portId":{"description":"See Argument Reference above.\n","type":"string"},"projectId":{"description":"See Argument Reference above.\n","type":"string"},"region":{"description":"See Argument Reference above.\n","type":"string"},"securityGroupIds":{"items":{"type":"string"},"type":"array"},"status":{"type":"string"},"tenantId":{"type":"string"}},"required":["allFixedIps","allSecurityGroupIds","id"],"type":"object"}},"opentelekomcloud:index/getNetworkingSecgroupRuleIdsV2:getNetworkingSecgroupRuleIdsV2":{"description":"Up-to-date reference of API arguments for Network security group you can get at\n[documentation portal](https://docs.otc.t-systems.com/virtual-private-cloud/api-ref/native_openstack_neutron_apis_v2.0/security_group/querying_security_groups.html#vpc-sg02-0001)\n\nUse this data source to get a list of security group rules ids for a <span pulumi-lang-nodejs=\"`securityGroupId`\" pulumi-lang-dotnet=\"`SecurityGroupId`\" pulumi-lang-go=\"`securityGroupId`\" pulumi-lang-python=\"`security_group_id`\" pulumi-lang-yaml=\"`securityGroupId`\" pulumi-lang-java=\"`securityGroupId`\">`security_group_id`</span>.\n\nThis resource can be useful for getting back a list of security group rules ids for a Security Group.\n\n## Example Usage\n\nThe following example shows outputting all security group rules for security group.\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst securityGroupId = config.requireObject<any>(\"securityGroupId\");\nconst sgIds = opentelekomcloud.getNetworkingSecgroupRuleIdsV2({\n    securityGroupId: securityGroupId,\n});\nexport const secgroupRuleIds = sgIds.then(sgIds => .map(id => (id)));\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nsecurity_group_id = config.require_object(\"securityGroupId\")\nsg_ids = opentelekomcloud.get_networking_secgroup_rule_ids_v2(security_group_id=security_group_id)\npulumi.export(\"secgroupRuleIds\", [id for id in sg_ids.ids])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var securityGroupId = config.RequireObject<dynamic>(\"securityGroupId\");\n    var sgIds = Opentelekomcloud.GetNetworkingSecgroupRuleIdsV2.Invoke(new()\n    {\n        SecurityGroupId = securityGroupId,\n    });\n\n    return new Dictionary<string, object?>\n    {\n        [\"secgroupRuleIds\"] = .Select(id => \n        {\n            return id;\n        }).ToList(),\n    };\n});\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getNetworkingSecgroupRuleIdsV2.\n","properties":{"id":{"type":"string"},"region":{"type":"string"},"securityGroupId":{"description":"Specifies the security group ID used as the query filter.\n","type":"string"}},"required":["securityGroupId"],"type":"object"},"outputs":{"description":"A collection of values returned by getNetworkingSecgroupRuleIdsV2.\n","properties":{"id":{"type":"string"},"ids":{"description":"A list of all the security group rule IDs found. This data source will fail if none are found.\n","items":{"type":"string"},"type":"array"},"region":{"type":"string"},"securityGroupId":{"type":"string"}},"required":["id","ids","region","securityGroupId"],"type":"object"}},"opentelekomcloud:index/getNetworkingSecgroupV2:getNetworkingSecgroupV2":{"description":"Up-to-date reference of API arguments for Network security group you can get at\n[documentation portal](https://docs.otc.t-systems.com/virtual-private-cloud/api-ref/native_openstack_neutron_apis_v2.0/security_group/querying_security_groups.html#vpc-sg02-0001)\n\nUse this data source to get the ID of an available OpenTelekomCloud security group.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst secgroup = opentelekomcloud.getNetworkingSecgroupV2({\n    name: \"tf_test_secgroup\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nsecgroup = opentelekomcloud.get_networking_secgroup_v2(name=\"tf_test_secgroup\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var secgroup = Opentelekomcloud.GetNetworkingSecgroupV2.Invoke(new()\n    {\n        Name = \"tf_test_secgroup\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupNetworkingSecgroupV2(ctx, &opentelekomcloud.LookupNetworkingSecgroupV2Args{\n\t\t\tName: pulumi.StringRef(\"tf_test_secgroup\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetNetworkingSecgroupV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var secgroup = OpentelekomcloudFunctions.getNetworkingSecgroupV2(GetNetworkingSecgroupV2Args.builder()\n            .name(\"tf_test_secgroup\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  secgroup:\n    fn::invoke:\n      function: opentelekomcloud:getNetworkingSecgroupV2\n      arguments:\n        name: tf_test_secgroup\n```\n<!--End PulumiCodeChooser -->\n\n## Example Filter by regex\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst secgroup1 = opentelekomcloud.getNetworkingSecgroupV2({\n    nameRegex: \"^secgroup_1.+\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nsecgroup1 = opentelekomcloud.get_networking_secgroup_v2(name_regex=\"^secgroup_1.+\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var secgroup1 = Opentelekomcloud.GetNetworkingSecgroupV2.Invoke(new()\n    {\n        NameRegex = \"^secgroup_1.+\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupNetworkingSecgroupV2(ctx, &opentelekomcloud.LookupNetworkingSecgroupV2Args{\n\t\t\tNameRegex: pulumi.StringRef(\"^secgroup_1.+\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetNetworkingSecgroupV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var secgroup1 = OpentelekomcloudFunctions.getNetworkingSecgroupV2(GetNetworkingSecgroupV2Args.builder()\n            .nameRegex(\"^secgroup_1.+\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  secgroup1:\n    fn::invoke:\n      function: opentelekomcloud:getNetworkingSecgroupV2\n      arguments:\n        nameRegex: ^secgroup_1.+\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getNetworkingSecgroupV2.\n","properties":{"id":{"type":"string"},"name":{"description":"The name of the security group.\n","type":"string"},"nameRegex":{"description":"A regex string to apply to the security group list.\nThis allows more advanced filtering not supported from the OpenTelekomCloud API.\nThis filtering is done locally on what OpenTelekomCloud returns.\n","type":"string"},"region":{"type":"string"},"secgroupId":{"description":"The ID of the security group.\n","type":"string"},"tenantId":{"description":"The owner of the security group.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getNetworkingSecgroupV2.\n","properties":{"description":{"description":"The description of the security group.\n","type":"string"},"id":{"type":"string"},"name":{"description":"See Argument Reference above.\n","type":"string"},"nameRegex":{"type":"string"},"region":{"type":"string"},"secgroupId":{"type":"string"},"tenantId":{"type":"string"}},"required":["description","id","region","tenantId"],"type":"object"}},"opentelekomcloud:index/getObsBucket:getObsBucket":{"description":"Up-to-date reference of API arguments for OBS bucket you can get at\n[documentation portal](https://docs.otc.t-systems.com/object-storage-service/api-ref/apis/operations_on_buckets/listing_buckets.html#obs-04-0020)\n\nUse this data source to get details about bucket within OpenTelekomCloud.\n\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst bucket = opentelekomcloud.getObsBucket({\n    bucket: \"my-test-bucket\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nbucket = opentelekomcloud.get_obs_bucket(bucket=\"my-test-bucket\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var bucket = Opentelekomcloud.GetObsBucket.Invoke(new()\n    {\n        Bucket = \"my-test-bucket\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupObsBucket(ctx, &opentelekomcloud.LookupObsBucketArgs{\n\t\t\tBucket: \"my-test-bucket\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetObsBucketArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var bucket = OpentelekomcloudFunctions.getObsBucket(GetObsBucketArgs.builder()\n            .bucket(\"my-test-bucket\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  bucket:\n    fn::invoke:\n      function: opentelekomcloud:getObsBucket\n      arguments:\n        bucket: my-test-bucket\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getObsBucket.\n","properties":{"bucket":{"description":"The name of the bucket to read.\n","type":"string"},"id":{"type":"string"}},"required":["bucket"],"type":"object"},"outputs":{"description":"A collection of values returned by getObsBucket.\n","properties":{"bucket":{"type":"string"},"bucketDomainName":{"description":"The bucket domain name. Will be of format `bucketname.obs.region.otc.t-systems.com`.\n","type":"string"},"corsRules":{"description":"A rule of Cross-Origin Resource Sharing (documented below).\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetObsBucketCorsRule:getObsBucketCorsRule"},"type":"array"},"eventNotifications":{"description":"A configuration of bucket event notifications (documented below).\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetObsBucketEventNotification:getObsBucketEventNotification"},"type":"array"},"id":{"type":"string"},"lifecycleRules":{"description":"A configuration of object lifecycle management (documented below).\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetObsBucketLifecycleRule:getObsBucketLifecycleRule"},"type":"array"},"loggings":{"description":"A settings of bucket logging (documented below).\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetObsBucketLogging:getObsBucketLogging"},"type":"array"},"region":{"description":"The region this bucket resides in.\n","type":"string"},"serverSideEncryptions":{"description":"A configuration of server side encryption (documented below).\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetObsBucketServerSideEncryption:getObsBucketServerSideEncryption"},"type":"array"},"storageClass":{"description":"The class of storage used to store the object.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the bucket. Each tag is represented by one key-value pair.\n","type":"object"},"versioning":{"type":"boolean"},"websites":{"description":"A website object (documented below).\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetObsBucketWebsite:getObsBucketWebsite"},"type":"array"}},"required":["bucket","bucketDomainName","corsRules","eventNotifications","id","lifecycleRules","loggings","region","serverSideEncryptions","storageClass","tags","versioning","websites"],"type":"object"}},"opentelekomcloud:index/getObsBucketObject:getObsBucketObject":{"description":"Up-to-date reference of API arguments for OBS bucket object you can get at\n[documentation portal](https://docs.otc.t-systems.com/object-storage-service/api-ref/apis/operations_on_buckets/listing_objects_in_a_bucket.html)\n\nUse this data source to get details about the metadata and\n_optionally_ (see below) content of an object stored inside OBS bucket.\n\n> **Note:** The content of an object (<span pulumi-lang-nodejs=\"`body`\" pulumi-lang-dotnet=\"`Body`\" pulumi-lang-go=\"`body`\" pulumi-lang-python=\"`body`\" pulumi-lang-yaml=\"`body`\" pulumi-lang-java=\"`body`\">`body`</span> field) is available only for objects which have a human-readable `Content-Type` (`text/*` and `application/json`).\n  This is to prevent printing unsafe characters and potentially downloading large amount of data which would be thrown away in favour of metadata.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst hello = opentelekomcloud.getObsBucketObject({\n    bucket: \"my-test-bucket\",\n    key: \"hello-world.zip\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nhello = opentelekomcloud.get_obs_bucket_object(bucket=\"my-test-bucket\",\n    key=\"hello-world.zip\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var hello = Opentelekomcloud.GetObsBucketObject.Invoke(new()\n    {\n        Bucket = \"my-test-bucket\",\n        Key = \"hello-world.zip\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupObsBucketObject(ctx, &opentelekomcloud.LookupObsBucketObjectArgs{\n\t\t\tBucket: \"my-test-bucket\",\n\t\t\tKey:    \"hello-world.zip\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetObsBucketObjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var hello = OpentelekomcloudFunctions.getObsBucketObject(GetObsBucketObjectArgs.builder()\n            .bucket(\"my-test-bucket\")\n            .key(\"hello-world.zip\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  hello:\n    fn::invoke:\n      function: opentelekomcloud:getObsBucketObject\n      arguments:\n        bucket: my-test-bucket\n        key: hello-world.zip\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getObsBucketObject.\n","properties":{"bucket":{"description":"The name of the bucket to read the object from.\n","type":"string"},"id":{"type":"string"},"key":{"description":"The full path to the object inside the bucket.\n","type":"string"},"versionId":{"description":"Specific version ID of the object returned (defaults to latest version).\n","type":"string"}},"required":["bucket","key"],"type":"object"},"outputs":{"description":"A collection of values returned by getObsBucketObject.\n","properties":{"body":{"description":"Object data (see **limitations above** to understand cases in which this field is actually available)\n","type":"string"},"bucket":{"type":"string"},"cacheControl":{"description":"Specifies caching behavior along the request/reply chain.\n","type":"string"},"contentDisposition":{"description":"Specifies presentational information for the object.\n","type":"string"},"contentEncoding":{"description":"Specifies what content encodings have been applied to the\nobject and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.\n","type":"string"},"contentLanguage":{"description":"The language the content is in.\n","type":"string"},"contentLength":{"description":"Size of the body in bytes.\n","type":"number"},"contentType":{"description":"A standard MIME type describing the format of the object data.\n","type":"string"},"etag":{"description":"[ETag](https://en.wikipedia.org/wiki/HTTP_ETag) generated for the object (an MD5 sum of the object content in case it's not encrypted).\n","type":"string"},"expiration":{"description":"If the object expiration is configured\n(see [object lifecycle management](http://docs.opentelekomcloud.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html)), the field includes this header. It includes the expiry-date and rule-id key value pairs providing object expiration information. The value of the rule-id is URL encoded.\n","type":"string"},"expires":{"description":"The date and time at which the object is no longer cacheable.\n","type":"string"},"id":{"type":"string"},"key":{"type":"string"},"lastModified":{"description":"Last modified date of the object in RFC1123 format\n(e.g. `Mon, 02 Jan 2006 15:04:05 MST`)\n","type":"string"},"metadata":{"additionalProperties":{"type":"string"},"description":"A map of metadata stored with the object in S3\n","type":"object"},"versionId":{"description":"The latest version ID of the object returned.\n","type":"string"},"websiteRedirectLocation":{"description":"If the bucket is configured as a website,\nredirects requests for this object to another object in the same bucket or to an external URL. OBS stores the value of this header in the object metadata.\n","type":"string"}},"required":["body","bucket","cacheControl","contentDisposition","contentEncoding","contentLanguage","contentLength","contentType","etag","expiration","expires","id","key","lastModified","metadata","versionId","websiteRedirectLocation"],"type":"object"}},"opentelekomcloud:index/getPrivateNatDnatRuleV3:getPrivateNatDnatRuleV3":{"description":"Up-to-date reference of API arguments for Private NAT DNAT rule you can get at\n[documentation portal](https://docs.otc.t-systems.com/nat-gateway/api-ref/apis_for_private_nat_gateways_v3.0/dnat_rules/index.html)\n\nManages a V3 Private NAT DNAT rule v3 data source within OpenTelekomCloud.\n\n## Example Usage\n\n### List all Private NAT DNAT rules\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst rule1 = opentelekomcloud.getPrivateNatDnatRuleV3({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nrule1 = opentelekomcloud.get_private_nat_dnat_rule_v3()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var rule1 = Opentelekomcloud.GetPrivateNatDnatRuleV3.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupPrivateNatDnatRuleV3(ctx, &opentelekomcloud.LookupPrivateNatDnatRuleV3Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetPrivateNatDnatRuleV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var rule1 = OpentelekomcloudFunctions.getPrivateNatDnatRuleV3(GetPrivateNatDnatRuleV3Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  rule1:\n    fn::invoke:\n      function: opentelekomcloud:getPrivateNatDnatRuleV3\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n\n","inputs":{"description":"A collection of arguments for invoking getPrivateNatDnatRuleV3.\n","properties":{"id":{"description":"Specifies the private NAT DNAT rule ID.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getPrivateNatDnatRuleV3.\n","properties":{"dnatRules":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetPrivateNatDnatRuleV3DnatRule:getPrivateNatDnatRuleV3DnatRule"},"type":"array"},"id":{"description":"Private NAT DNAT rule ID.\n","type":"string"}},"required":["dnatRules"],"type":"object"}},"opentelekomcloud:index/getPrivateNatGatewayV3:getPrivateNatGatewayV3":{"description":"Up-to-date reference of API arguments for Private NAT gateway you can get at\n[documentation portal](https://docs.otc.t-systems.com/nat-gateway/api-ref/apis_for_private_nat_gateways_v3.0/private_nat_gateways/index.html)\n\nManages a V3 Private NAT Gateway data source within OpenTelekomCloud.\n\n## Example Usage\n\n### List all Private NAT gateways\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst gateway1 = opentelekomcloud.getPrivateNatGatewayV3({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ngateway1 = opentelekomcloud.get_private_nat_gateway_v3()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var gateway1 = Opentelekomcloud.GetPrivateNatGatewayV3.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupPrivateNatGatewayV3(ctx, &opentelekomcloud.LookupPrivateNatGatewayV3Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetPrivateNatGatewayV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var gateway1 = OpentelekomcloudFunctions.getPrivateNatGatewayV3(GetPrivateNatGatewayV3Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  gateway1:\n    fn::invoke:\n      function: opentelekomcloud:getPrivateNatGatewayV3\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n\n### Get Private NAT gateway using ID\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst gatewayId = config.requireObject<any>(\"gatewayId\");\nconst gateway1 = opentelekomcloud.getPrivateNatGatewayV3({\n    id: gatewayId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ngateway_id = config.require_object(\"gatewayId\")\ngateway1 = opentelekomcloud.get_private_nat_gateway_v3(id=gateway_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var gatewayId = config.RequireObject<dynamic>(\"gatewayId\");\n    var gateway1 = Opentelekomcloud.GetPrivateNatGatewayV3.Invoke(new()\n    {\n        Id = gatewayId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tgatewayId := cfg.RequireObject(\"gatewayId\")\n\t\t_, err := opentelekomcloud.LookupPrivateNatGatewayV3(ctx, &opentelekomcloud.LookupPrivateNatGatewayV3Args{\n\t\t\tId: pulumi.StringRef(gatewayId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetPrivateNatGatewayV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var gatewayId = config.get(\"gatewayId\");\n        final var gateway1 = OpentelekomcloudFunctions.getPrivateNatGatewayV3(GetPrivateNatGatewayV3Args.builder()\n            .id(gatewayId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  gatewayId:\n    type: dynamic\nvariables:\n  gateway1:\n    fn::invoke:\n      function: opentelekomcloud:getPrivateNatGatewayV3\n      arguments:\n        id: ${gatewayId}\n```\n<!--End PulumiCodeChooser -->\n\n### Get Private NAT gateway using Name\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst gatewayName = config.requireObject<any>(\"gatewayName\");\nconst gateway1 = opentelekomcloud.getPrivateNatGatewayV3({\n    name: gatewayName,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ngateway_name = config.require_object(\"gatewayName\")\ngateway1 = opentelekomcloud.get_private_nat_gateway_v3(name=gateway_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var gatewayName = config.RequireObject<dynamic>(\"gatewayName\");\n    var gateway1 = Opentelekomcloud.GetPrivateNatGatewayV3.Invoke(new()\n    {\n        Name = gatewayName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tgatewayName := cfg.RequireObject(\"gatewayName\")\n\t\t_, err := opentelekomcloud.LookupPrivateNatGatewayV3(ctx, &opentelekomcloud.LookupPrivateNatGatewayV3Args{\n\t\t\tName: pulumi.StringRef(gatewayName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetPrivateNatGatewayV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var gatewayName = config.get(\"gatewayName\");\n        final var gateway1 = OpentelekomcloudFunctions.getPrivateNatGatewayV3(GetPrivateNatGatewayV3Args.builder()\n            .name(gatewayName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  gatewayName:\n    type: dynamic\nvariables:\n  gateway1:\n    fn::invoke:\n      function: opentelekomcloud:getPrivateNatGatewayV3\n      arguments:\n        name: ${gatewayName}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getPrivateNatGatewayV3.\n","properties":{"id":{"description":"Specifies the private NAT gateway name.\n","type":"string"},"name":{"description":"Specifies the private NAT gateway name.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getPrivateNatGatewayV3.\n","properties":{"gateways":{"description":"Indicates the private NAT gateways. The structure is defined below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetPrivateNatGatewayV3Gateway:getPrivateNatGatewayV3Gateway"},"type":"array"},"id":{"description":"Private NAT gateway ID.\n","type":"string"},"name":{"description":"Indicates the private NAT gateway name.\n","type":"string"}},"required":["gateways"],"type":"object"}},"opentelekomcloud:index/getPrivateNatSnatRuleV3:getPrivateNatSnatRuleV3":{"description":"Up-to-date reference of API arguments for Private NAT SNAT rule you can get at\n[documentation portal](https://docs.otc.t-systems.com/nat-gateway/api-ref/apis_for_private_nat_gateways_v3.0/snat_rules/index.html)\n\nManages a V3 Private NAT SNAT rule data source within OpenTelekomCloud.\n\n## Example Usage\n\n### List all Private NAT SNAT rules\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst rule1 = opentelekomcloud.getPrivateNatSnatRuleV3({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nrule1 = opentelekomcloud.get_private_nat_snat_rule_v3()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var rule1 = Opentelekomcloud.GetPrivateNatSnatRuleV3.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupPrivateNatSnatRuleV3(ctx, &opentelekomcloud.LookupPrivateNatSnatRuleV3Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetPrivateNatSnatRuleV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var rule1 = OpentelekomcloudFunctions.getPrivateNatSnatRuleV3(GetPrivateNatSnatRuleV3Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  rule1:\n    fn::invoke:\n      function: opentelekomcloud:getPrivateNatSnatRuleV3\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n\n","inputs":{"description":"A collection of arguments for invoking getPrivateNatSnatRuleV3.\n","properties":{"id":{"description":"Specifies the private NAT SNAT rule ID.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getPrivateNatSnatRuleV3.\n","properties":{"id":{"description":"Private NAT SNAT rule ID.\n","type":"string"},"snatRules":{"description":"Indicates the private NAT SNAT rules. The structure is defined below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetPrivateNatSnatRuleV3SnatRule:getPrivateNatSnatRuleV3SnatRule"},"type":"array"}},"required":["snatRules"],"type":"object"}},"opentelekomcloud:index/getPrivateNatTransitIpV3:getPrivateNatTransitIpV3":{"description":"Up-to-date reference of API arguments for Private NAT Transit IP you can get at\n[documentation portal](https://docs.otc.t-systems.com/nat-gateway/api-ref/apis_for_private_nat_gateways_v3.0/transit_ip_addresses/index.html)\n\nManages a V3 Private NAT Transit IP data source within OpenTelekomCloud.\n\n## Example Usage\n\n### List all Transit IPs\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst transitIp1 = opentelekomcloud.getPrivateNatTransitIpV3({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntransit_ip1 = opentelekomcloud.get_private_nat_transit_ip_v3()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var transitIp1 = Opentelekomcloud.GetPrivateNatTransitIpV3.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupPrivateNatTransitIpV3(ctx, &opentelekomcloud.LookupPrivateNatTransitIpV3Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetPrivateNatTransitIpV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var transitIp1 = OpentelekomcloudFunctions.getPrivateNatTransitIpV3(GetPrivateNatTransitIpV3Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  transitIp1:\n    fn::invoke:\n      function: opentelekomcloud:getPrivateNatTransitIpV3\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n\n### List all Transit IPs in a subnet\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst networkId = config.requireObject<any>(\"networkId\");\nconst transitIp1 = opentelekomcloud.getPrivateNatTransitIpV3({\n    virsubnetId: networkId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nnetwork_id = config.require_object(\"networkId\")\ntransit_ip1 = opentelekomcloud.get_private_nat_transit_ip_v3(virsubnet_id=network_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var networkId = config.RequireObject<dynamic>(\"networkId\");\n    var transitIp1 = Opentelekomcloud.GetPrivateNatTransitIpV3.Invoke(new()\n    {\n        VirsubnetId = networkId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tnetworkId := cfg.RequireObject(\"networkId\")\n\t\t_, err := opentelekomcloud.LookupPrivateNatTransitIpV3(ctx, &opentelekomcloud.LookupPrivateNatTransitIpV3Args{\n\t\t\tVirsubnetId: pulumi.StringRef(networkId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetPrivateNatTransitIpV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var networkId = config.get(\"networkId\");\n        final var transitIp1 = OpentelekomcloudFunctions.getPrivateNatTransitIpV3(GetPrivateNatTransitIpV3Args.builder()\n            .virsubnetId(networkId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  networkId:\n    type: dynamic\nvariables:\n  transitIp1:\n    fn::invoke:\n      function: opentelekomcloud:getPrivateNatTransitIpV3\n      arguments:\n        virsubnetId: ${networkId}\n```\n<!--End PulumiCodeChooser -->\n\n### Get Transit IP by ID\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst id = config.requireObject<any>(\"id\");\nconst transitIp1 = opentelekomcloud.getPrivateNatTransitIpV3({\n    id: id,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nid = config.require_object(\"id\")\ntransit_ip1 = opentelekomcloud.get_private_nat_transit_ip_v3(id=id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var id = config.RequireObject<dynamic>(\"id\");\n    var transitIp1 = Opentelekomcloud.GetPrivateNatTransitIpV3.Invoke(new()\n    {\n        Id = id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tid := cfg.RequireObject(\"id\")\n\t\t_, err := opentelekomcloud.LookupPrivateNatTransitIpV3(ctx, &opentelekomcloud.LookupPrivateNatTransitIpV3Args{\n\t\t\tId: pulumi.StringRef(id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetPrivateNatTransitIpV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var id = config.get(\"id\");\n        final var transitIp1 = OpentelekomcloudFunctions.getPrivateNatTransitIpV3(GetPrivateNatTransitIpV3Args.builder()\n            .id(id)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  id:\n    type: dynamic\nvariables:\n  transitIp1:\n    fn::invoke:\n      function: opentelekomcloud:getPrivateNatTransitIpV3\n      arguments:\n        id: ${id}\n```\n<!--End PulumiCodeChooser -->\n\n### Get Transit IP by IP address\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst ipAddress = config.requireObject<any>(\"ipAddress\");\nconst transitIp1 = opentelekomcloud.getPrivateNatTransitIpV3({\n    ipAddress: ipAddress,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nip_address = config.require_object(\"ipAddress\")\ntransit_ip1 = opentelekomcloud.get_private_nat_transit_ip_v3(ip_address=ip_address)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var ipAddress = config.RequireObject<dynamic>(\"ipAddress\");\n    var transitIp1 = Opentelekomcloud.GetPrivateNatTransitIpV3.Invoke(new()\n    {\n        IpAddress = ipAddress,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tipAddress := cfg.RequireObject(\"ipAddress\")\n\t\t_, err := opentelekomcloud.LookupPrivateNatTransitIpV3(ctx, &opentelekomcloud.LookupPrivateNatTransitIpV3Args{\n\t\t\tIpAddress: pulumi.StringRef(ipAddress),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetPrivateNatTransitIpV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var ipAddress = config.get(\"ipAddress\");\n        final var transitIp1 = OpentelekomcloudFunctions.getPrivateNatTransitIpV3(GetPrivateNatTransitIpV3Args.builder()\n            .ipAddress(ipAddress)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  ipAddress:\n    type: dynamic\nvariables:\n  transitIp1:\n    fn::invoke:\n      function: opentelekomcloud:getPrivateNatTransitIpV3\n      arguments:\n        ipAddress: ${ipAddress}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getPrivateNatTransitIpV3.\n","properties":{"id":{"description":"Specifies the private NAT transit IP ID.\n","type":"string"},"ipAddress":{"description":"Specifies the transit IP address.\n","type":"string"},"virsubnetId":{"description":"Specifies the subnet ID of the current project.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getPrivateNatTransitIpV3.\n","properties":{"id":{"description":"Private NAT Transit IP ID.\n","type":"string"},"ipAddress":{"description":"Indicates the transit IP address.\n","type":"string"},"transitIps":{"description":"The list of private NAT transit IPs. The structure is defined below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetPrivateNatTransitIpV3TransitIp:getPrivateNatTransitIpV3TransitIp"},"type":"array"},"virsubnetId":{"description":"Indicates the subnet ID of the current project.\n","type":"string"}},"required":["transitIps"],"type":"object"}},"opentelekomcloud:index/getRdsBackupV3:getRdsBackupV3":{"description":"Up-to-date reference of API arguments for RDSv3 instance backup you can get at\n[documentation portal](https://docs.otc.t-systems.com/relational-database-service/api-ref/api_v3_recommended/backup_and_restoration/obtaining_details_about_backups.html#rds-09-0005)\n\nUse this data source to get information about RDSv3 instance backup.\n\n## Example Usage\n\nFinding the latest automatic backup:\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst backup = opentelekomcloud.getRdsBackupV3({\n    instanceId: rdsInstanceId,\n    type: \"auto\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nbackup = opentelekomcloud.get_rds_backup_v3(instance_id=rds_instance_id,\n    type=\"auto\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var backup = Opentelekomcloud.GetRdsBackupV3.Invoke(new()\n    {\n        InstanceId = rdsInstanceId,\n        Type = \"auto\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupRdsBackupV3(ctx, &opentelekomcloud.LookupRdsBackupV3Args{\n\t\t\tInstanceId: rdsInstanceId,\n\t\t\tType:       pulumi.StringRef(\"auto\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetRdsBackupV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var backup = OpentelekomcloudFunctions.getRdsBackupV3(GetRdsBackupV3Args.builder()\n            .instanceId(rdsInstanceId)\n            .type(\"auto\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  backup:\n    fn::invoke:\n      function: opentelekomcloud:getRdsBackupV3\n      arguments:\n        instanceId: ${rdsInstanceId}\n        type: auto\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getRdsBackupV3.\n","properties":{"backupId":{"description":"Specifies the backup ID.\n","type":"string"},"id":{"type":"string"},"instanceId":{"description":"Specifies the DB instance ID.\n","type":"string"},"type":{"description":"Specifies the backup type.\n\nPossible values:\n","type":"string"}},"required":["instanceId"],"type":"object"},"outputs":{"description":"A collection of values returned by getRdsBackupV3.\n","properties":{"backupId":{"type":"string"},"beginTime":{"description":"Indicates the backup start time in the `yyyy-mm-ddThh:mm:ssZ` format.\n","type":"string"},"databases":{"description":"Indicates a list of self-built Microsoft SQL Server databases that support partial backups.\n","items":{"type":"string"},"type":"array"},"dbType":{"description":"Indicates the DB engine.\n","type":"string"},"dbVersion":{"description":"Indicates the database version.\n","type":"string"},"endTime":{"description":"Indicates the backup end time in the `yyyy-mm-ddThh:mm:ssZ` format.\n","type":"string"},"id":{"type":"string"},"instanceId":{"type":"string"},"name":{"description":"Indicates the backup name.\n","type":"string"},"size":{"description":"Indicates the backup size in kB.\n","type":"number"},"status":{"description":"Indicates the status of the backup.\n","type":"string"},"type":{"description":"Indicates the backup type.\n","type":"string"}},"required":["beginTime","databases","dbType","dbVersion","endTime","id","instanceId","name","size","status","type"],"type":"object"}},"opentelekomcloud:index/getRdsFlavorsV1:getRdsFlavorsV1":{"description":"Up-to-date reference of API arguments for RDSv1 flavor you can get at\n[documentation portal](https://docs.otc.t-systems.com/relational-database-service/api-ref/api_v1_to_be_discarded/db_instance_management/obtaining_all_db_instance_specifications.html#en-us-topic-0032347783)\n\n**DEPRECATED**\nUse this data source to get the ID of an available OpenTelekomCloud RDS flavor.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst flavor = opentelekomcloud.getRdsFlavorsV1({\n    datastoreName: \"PostgreSQL\",\n    datastoreVersion: \"16\",\n    speccode: \"rds.pg.x1.xlarge.4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nflavor = opentelekomcloud.get_rds_flavors_v1(datastore_name=\"PostgreSQL\",\n    datastore_version=\"16\",\n    speccode=\"rds.pg.x1.xlarge.4\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var flavor = Opentelekomcloud.GetRdsFlavorsV1.Invoke(new()\n    {\n        DatastoreName = \"PostgreSQL\",\n        DatastoreVersion = \"16\",\n        Speccode = \"rds.pg.x1.xlarge.4\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetRdsFlavorsV1(ctx, &opentelekomcloud.GetRdsFlavorsV1Args{\n\t\t\tDatastoreName:    \"PostgreSQL\",\n\t\t\tDatastoreVersion: \"16\",\n\t\t\tSpeccode:         pulumi.StringRef(\"rds.pg.x1.xlarge.4\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetRdsFlavorsV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var flavor = OpentelekomcloudFunctions.getRdsFlavorsV1(GetRdsFlavorsV1Args.builder()\n            .datastoreName(\"PostgreSQL\")\n            .datastoreVersion(\"16\")\n            .speccode(\"rds.pg.x1.xlarge.4\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  flavor:\n    fn::invoke:\n      function: opentelekomcloud:getRdsFlavorsV1\n      arguments:\n        datastoreName: PostgreSQL\n        datastoreVersion: '16'\n        speccode: rds.pg.x1.xlarge.4\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getRdsFlavorsV1.\n","properties":{"datastoreName":{"description":"The datastore name of the rds.\n","type":"string"},"datastoreVersion":{"description":"The datastore version of the rds.\n","type":"string"},"id":{"type":"string"},"region":{"type":"string"},"speccode":{"description":"The spec code of a rds flavor.\n","type":"string"}},"required":["datastoreName","datastoreVersion"],"type":"object"},"outputs":{"description":"A collection of values returned by getRdsFlavorsV1.\n","properties":{"datastoreName":{"description":"See Argument Reference above.\n","type":"string"},"datastoreVersion":{"description":"See Argument Reference above.\n","type":"string"},"id":{"type":"string"},"name":{"description":"The name of the rds flavor.\n","type":"string"},"ram":{"description":"The name of the rds flavor.\n","type":"number"},"region":{"type":"string"},"speccode":{"description":"See Argument Reference above.\n","type":"string"}},"required":["datastoreName","datastoreVersion","id","name","ram","region","speccode"],"type":"object"}},"opentelekomcloud:index/getRdsFlavorsV3:getRdsFlavorsV3":{"description":"Up-to-date reference of API arguments for RDSv3 flavor you can get at\n[documentation portal](https://docs.otc.t-systems.com/relational-database-service/api-ref/api_v3_recommended/querying_database_specifications.html)\n\nUse this data source to get available OpenTelekomCloud RDSv3 flavors.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst flavor = opentelekomcloud.getRdsFlavorsV3({\n    dbType: \"PostgreSQL\",\n    dbVersion: \"16\",\n    instanceMode: \"ha\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nflavor = opentelekomcloud.get_rds_flavors_v3(db_type=\"PostgreSQL\",\n    db_version=\"16\",\n    instance_mode=\"ha\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var flavor = Opentelekomcloud.GetRdsFlavorsV3.Invoke(new()\n    {\n        DbType = \"PostgreSQL\",\n        DbVersion = \"16\",\n        InstanceMode = \"ha\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetRdsFlavorsV3(ctx, &opentelekomcloud.GetRdsFlavorsV3Args{\n\t\t\tDbType:       \"PostgreSQL\",\n\t\t\tDbVersion:    \"16\",\n\t\t\tInstanceMode: \"ha\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetRdsFlavorsV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var flavor = OpentelekomcloudFunctions.getRdsFlavorsV3(GetRdsFlavorsV3Args.builder()\n            .dbType(\"PostgreSQL\")\n            .dbVersion(\"16\")\n            .instanceMode(\"ha\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  flavor:\n    fn::invoke:\n      function: opentelekomcloud:getRdsFlavorsV3\n      arguments:\n        dbType: PostgreSQL\n        dbVersion: '16'\n        instanceMode: ha\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getRdsFlavorsV3.\n","properties":{"dbType":{"description":"Specifies the DB engine. Possible values are: `MySQL`, `PostgreSQL`, `SQLServer`.\n","type":"string"},"dbVersion":{"description":"Specifies the database version.\n* MySQL: 8.0, 5.7, and 5.6\n* PostgreSQL: 12 through 16\n* Microsoft SQL Server: 2017 (Enterprise/Standard) through 2022 (Enterprise/Standard)\n","type":"string"},"id":{"type":"string"},"instanceMode":{"description":"The mode of instance. Possible values are:\n<span pulumi-lang-nodejs=\"`ha`\" pulumi-lang-dotnet=\"`Ha`\" pulumi-lang-go=\"`ha`\" pulumi-lang-python=\"`ha`\" pulumi-lang-yaml=\"`ha`\" pulumi-lang-java=\"`ha`\">`ha`</span> indicates primary/standby instance, <span pulumi-lang-nodejs=\"`single`\" pulumi-lang-dotnet=\"`Single`\" pulumi-lang-go=\"`single`\" pulumi-lang-python=\"`single`\" pulumi-lang-yaml=\"`single`\" pulumi-lang-java=\"`single`\">`single`</span> indicates single instance\nand <span pulumi-lang-nodejs=\"`replica`\" pulumi-lang-dotnet=\"`Replica`\" pulumi-lang-go=\"`replica`\" pulumi-lang-python=\"`replica`\" pulumi-lang-yaml=\"`replica`\" pulumi-lang-java=\"`replica`\">`replica`</span> indicates read-replica instance.\n","type":"string"}},"required":["dbType","dbVersion","instanceMode"],"type":"object"},"outputs":{"description":"A collection of values returned by getRdsFlavorsV3.\n","properties":{"dbType":{"type":"string"},"dbVersion":{"type":"string"},"flavors":{"description":"Indicates the <span pulumi-lang-nodejs=\"`flavors`\" pulumi-lang-dotnet=\"`Flavors`\" pulumi-lang-go=\"`flavors`\" pulumi-lang-python=\"`flavors`\" pulumi-lang-yaml=\"`flavors`\" pulumi-lang-java=\"`flavors`\">`flavors`</span> information. Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetRdsFlavorsV3Flavor:getRdsFlavorsV3Flavor"},"type":"array"},"id":{"type":"string"},"instanceMode":{"type":"string"}},"required":["dbType","dbVersion","flavors","id","instanceMode"],"type":"object"}},"opentelekomcloud:index/getRdsInstanceV3:getRdsInstanceV3":{"description":"Up-to-date reference of API arguments for RDSv3 instance you can get at\n[documentation portal](https://docs.otc.t-systems.com/relational-database-service/api-ref/api_v3_recommended/db_instance_management/querying_details_about_db_instances.html#rds-01-0004)\n\nUse the <span pulumi-lang-nodejs=\"`opentelekomcloud.RdsInstanceV3`\" pulumi-lang-dotnet=\"`opentelekomcloud.RdsInstanceV3`\" pulumi-lang-go=\"`RdsInstanceV3`\" pulumi-lang-python=\"`RdsInstanceV3`\" pulumi-lang-yaml=\"`opentelekomcloud.RdsInstanceV3`\" pulumi-lang-java=\"`opentelekomcloud.RdsInstanceV3`\">`opentelekomcloud.RdsInstanceV3`</span> datasource to query DB instances according to search criteria.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst instance = opentelekomcloud.getRdsInstanceV3({\n    name: \"rds_instance_1\",\n    id: \"rds_instance_1_id\",\n    type: \"single\",\n    datastoreType: \"PostgreSQL\",\n    vpcId: \"vpc-id\",\n    subnetId: \"subnet-id\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ninstance = opentelekomcloud.get_rds_instance_v3(name=\"rds_instance_1\",\n    id=\"rds_instance_1_id\",\n    type=\"single\",\n    datastore_type=\"PostgreSQL\",\n    vpc_id=\"vpc-id\",\n    subnet_id=\"subnet-id\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var instance = Opentelekomcloud.GetRdsInstanceV3.Invoke(new()\n    {\n        Name = \"rds_instance_1\",\n        Id = \"rds_instance_1_id\",\n        Type = \"single\",\n        DatastoreType = \"PostgreSQL\",\n        VpcId = \"vpc-id\",\n        SubnetId = \"subnet-id\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupRdsInstanceV3(ctx, &opentelekomcloud.LookupRdsInstanceV3Args{\n\t\t\tName:          pulumi.StringRef(\"rds_instance_1\"),\n\t\t\tId:            pulumi.StringRef(\"rds_instance_1_id\"),\n\t\t\tType:          pulumi.StringRef(\"single\"),\n\t\t\tDatastoreType: pulumi.StringRef(\"PostgreSQL\"),\n\t\t\tVpcId:         pulumi.StringRef(\"vpc-id\"),\n\t\t\tSubnetId:      pulumi.StringRef(\"subnet-id\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetRdsInstanceV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var instance = OpentelekomcloudFunctions.getRdsInstanceV3(GetRdsInstanceV3Args.builder()\n            .name(\"rds_instance_1\")\n            .id(\"rds_instance_1_id\")\n            .type(\"single\")\n            .datastoreType(\"PostgreSQL\")\n            .vpcId(\"vpc-id\")\n            .subnetId(\"subnet-id\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  instance:\n    fn::invoke:\n      function: opentelekomcloud:getRdsInstanceV3\n      arguments:\n        name: rds_instance_1\n        id: rds_instance_1_id\n        type: single\n        datastoreType: PostgreSQL\n        vpcId: vpc-id\n        subnetId: subnet-id\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getRdsInstanceV3.\n","properties":{"datastoreType":{"description":"Specifies the database type.\nIts value can be any of the following and is case-sensitive:\n`MySQL`, ` PostgreSQL`, `SQLServer`\n","type":"string"},"id":{"description":"ID of the RDS instance.\n","type":"string"},"name":{"description":"Specifies the DB instance ID.\n","type":"string"},"port":{"description":"Indicates the database port number.\n","type":"number"},"region":{"description":"Indicates the region where the DB instance is deployed.\n","type":"string"},"subnetId":{"description":"Specifies the network ID of the subnet.\n","type":"string"},"type":{"description":"Specifies the instance type based query.\nThe value is Single, Ha, or Replica, which correspond to single instance,\nprimary/standby instances, and read replica, respectively.\n","type":"string"},"vpcId":{"description":"Specifies the VPC ID.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRdsInstanceV3.\n","properties":{"availabilityZones":{"description":"Indicates the availability zone.\n","items":{"type":"string"},"type":"array"},"backupStrategies":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetRdsInstanceV3BackupStrategy:getRdsInstanceV3BackupStrategy"},"type":"array"},"created":{"description":"Indicates the creation time.\n","type":"string"},"datastoreType":{"description":"Indicates the database type.\n","type":"string"},"datastoreVersion":{"description":"Indicates the database version.\n","type":"string"},"dbUsername":{"description":"Indicates the database username.\n","type":"string"},"diskEncryptionId":{"description":"Indicates the disk encryption ID.\n","type":"string"},"fixedIp":{"type":"string"},"flavor":{"description":"Indicates the flavor ID.\n","type":"string"},"ha":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"description":"Indicates the DB instance ID.\n","type":"string"},"name":{"description":"Indicates created the DB instance name.\n","type":"string"},"nodes":{"description":"Indicates the node information.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetRdsInstanceV3Node:getRdsInstanceV3Node"},"type":"array"},"port":{"description":"Indicates the database port number.\n","type":"number"},"privateDomainName":{"description":"Indicates the prefix of the new domain name (not supported in `eu-ch2` region).\n","type":"string"},"privateFqdn":{"description":"Indicates the fully qualified domain name of an RDS instance (not supported in `eu-ch2` region).\n","type":"string"},"privateIps":{"description":"Indicates the private IP address. It is a blank string until an ECS is created.\n","items":{"type":"string"},"type":"array"},"publicIps":{"description":"Indicates the public IP address.\n","items":{"type":"string"},"type":"array"},"region":{"description":"Indicates the region where the DB instance is deployed.\n","type":"string"},"securityGroupId":{"description":"Indicates the security group ID.\n","type":"string"},"status":{"description":"Indicates the DB instance status.\n","type":"string"},"subnetId":{"description":"Indicates the network ID of the subnet.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Indicates the tags.\n","type":"object"},"timezone":{"description":"Indicates the time zone.\n","type":"string"},"type":{"description":"The value is Single, Ha, or Replica, which correspond to single instance,\nprimary/standby instances, and read replica, respectively.\n","type":"string"},"updated":{"description":"Indicates the update time.\n","type":"string"},"volumeSize":{"description":"Indicates the volume size.\n","type":"number"},"volumeType":{"description":"Indicates the volume type.\n","type":"string"},"vpcId":{"description":"Indicates the VPC ID.\n","type":"string"}},"required":["availabilityZones","backupStrategies","created","datastoreVersion","dbUsername","diskEncryptionId","fixedIp","flavor","ha","id","nodes","privateDomainName","privateFqdn","privateIps","publicIps","region","securityGroupId","status","tags","timezone","updated","volumeSize","volumeType"],"type":"object"}},"opentelekomcloud:index/getRdsMajorVersionsV3:getRdsMajorVersionsV3":{"description":"Up-to-date reference of API arguments for RDS major version upgrade you can get at\n[documentation portal](https://docs.otc.t-systems.com/relational-database-service/api-ref/api_v3_recommended/upgrading_a_major_version/querying_the_target_version_to_which_a_db_instance_can_be_upgraded_rds_for_postgresql.html)\n\nUse this data source to get available major versions for upgrading an OpenTelekomCloud RDS instance.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst versions = opentelekomcloud.getRdsMajorVersionsV3({\n    instanceId: instanceId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nversions = opentelekomcloud.get_rds_major_versions_v3(instance_id=instance_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var versions = Opentelekomcloud.GetRdsMajorVersionsV3.Invoke(new()\n    {\n        InstanceId = instanceId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetRdsMajorVersionsV3(ctx, &opentelekomcloud.GetRdsMajorVersionsV3Args{\n\t\t\tInstanceId: instanceId,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetRdsMajorVersionsV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var versions = OpentelekomcloudFunctions.getRdsMajorVersionsV3(GetRdsMajorVersionsV3Args.builder()\n            .instanceId(instanceId)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  versions:\n    fn::invoke:\n      function: opentelekomcloud:getRdsMajorVersionsV3\n      arguments:\n        instanceId: ${instanceId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getRdsMajorVersionsV3.\n","properties":{"id":{"type":"string"},"instanceId":{"description":"Specifies the ID of the RDS instance.\n","type":"string"}},"required":["instanceId"],"type":"object"},"outputs":{"description":"A collection of values returned by getRdsMajorVersionsV3.\n","properties":{"availableVersions":{"description":"List of available major versions for upgrade.\n","items":{"type":"string"},"type":"array"},"id":{"type":"string"},"instanceId":{"type":"string"}},"required":["availableVersions","id","instanceId"],"type":"object"}},"opentelekomcloud:index/getRdsVersionsV3:getRdsVersionsV3":{"description":"Up-to-date reference of API arguments for RDSv3 versions you can get at\n[documentation portal](https://docs.otc.t-systems.com/relational-database-service/api-ref/api_v3_recommended/querying_version_information_about_a_db_engine.html)\n\nUse this data source to get available OpenTelekomCloud rds versions.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst versions = opentelekomcloud.getRdsVersionsV3({\n    databaseName: \"mysql\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nversions = opentelekomcloud.get_rds_versions_v3(database_name=\"mysql\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var versions = Opentelekomcloud.GetRdsVersionsV3.Invoke(new()\n    {\n        DatabaseName = \"mysql\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetRdsVersionsV3(ctx, &opentelekomcloud.GetRdsVersionsV3Args{\n\t\t\tDatabaseName: \"mysql\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetRdsVersionsV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var versions = OpentelekomcloudFunctions.getRdsVersionsV3(GetRdsVersionsV3Args.builder()\n            .databaseName(\"mysql\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  versions:\n    fn::invoke:\n      function: opentelekomcloud:getRdsVersionsV3\n      arguments:\n        databaseName: mysql\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getRdsVersionsV3.\n","properties":{"databaseName":{"description":"Specifies the DB engine. Value: MySQL, PostgreSQL, SQLServer. Case-insensitive.\n","type":"string"},"id":{"type":"string"}},"required":["databaseName"],"type":"object"},"outputs":{"description":"A collection of values returned by getRdsVersionsV3.\n","properties":{"databaseName":{"type":"string"},"id":{"type":"string"},"versions":{"description":"List of version names, sorted by a version (higher to lower). Example: `[\"16\", \"14\", \"14\", \"13\"]`.\n","items":{"type":"string"},"type":"array"}},"required":["databaseName","id","versions"],"type":"object"}},"opentelekomcloud:index/getRmsAdvancedQueriesV1:getRmsAdvancedQueriesV1":{"description":"Up-to-date reference of API arguments for RMS Advanced Queries you can get at\n[documentation portal](https://docs.otc.t-systems.com/config/api-ref/apis/advanced_queries/listing_advanced_queries.html#rms-04-0703)\n\n\nUse this data source to get the list of RMS advanced queries.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst advancedQueryName = config.requireObject<any>(\"advancedQueryName\");\nconst test = opentelekomcloud.getRmsAdvancedQueriesV1({\n    name: advancedQueryName,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nadvanced_query_name = config.require_object(\"advancedQueryName\")\ntest = opentelekomcloud.get_rms_advanced_queries_v1(name=advanced_query_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var advancedQueryName = config.RequireObject<dynamic>(\"advancedQueryName\");\n    var test = Opentelekomcloud.GetRmsAdvancedQueriesV1.Invoke(new()\n    {\n        Name = advancedQueryName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tadvancedQueryName := cfg.RequireObject(\"advancedQueryName\")\n\t\t_, err := opentelekomcloud.GetRmsAdvancedQueriesV1(ctx, &opentelekomcloud.GetRmsAdvancedQueriesV1Args{\n\t\t\tName: pulumi.StringRef(advancedQueryName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetRmsAdvancedQueriesV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var advancedQueryName = config.get(\"advancedQueryName\");\n        final var test = OpentelekomcloudFunctions.getRmsAdvancedQueriesV1(GetRmsAdvancedQueriesV1Args.builder()\n            .name(advancedQueryName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  advancedQueryName:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getRmsAdvancedQueriesV1\n      arguments:\n        name: ${advancedQueryName}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getRmsAdvancedQueriesV1.\n","properties":{"id":{"description":"The advanced query ID.\n","type":"string"},"name":{"description":"Specifies the advanced query name.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRmsAdvancedQueriesV1.\n","properties":{"id":{"description":"The advanced query ID.\n","type":"string"},"name":{"description":"The advanced query name.\n","type":"string"},"queries":{"description":"The list of advanced queries.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetRmsAdvancedQueriesV1Query:getRmsAdvancedQueriesV1Query"},"type":"array"},"region":{"description":"The queries region.\n","type":"string"}},"required":["id","queries","region"],"type":"object"}},"opentelekomcloud:index/getRmsAdvancedQuerySchemasV1:getRmsAdvancedQuerySchemasV1":{"description":"Up-to-date reference of API arguments for RMS Advanced Query Schemas you can get at\n[documentation portal](https://docs.otc.t-systems.com/config/api-ref/apis/advanced_queries/querying_schemas.html)\n\n\nUse this data source to get the list of RMS advanced query schemas.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = opentelekomcloud.getRmsAdvancedQuerySchemasV1({\n    type: \"aad.instances\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.get_rms_advanced_query_schemas_v1(type=\"aad.instances\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = Opentelekomcloud.GetRmsAdvancedQuerySchemasV1.Invoke(new()\n    {\n        Type = \"aad.instances\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetRmsAdvancedQuerySchemasV1(ctx, &opentelekomcloud.GetRmsAdvancedQuerySchemasV1Args{\n\t\t\tType: pulumi.StringRef(\"aad.instances\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetRmsAdvancedQuerySchemasV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = OpentelekomcloudFunctions.getRmsAdvancedQuerySchemasV1(GetRmsAdvancedQuerySchemasV1Args.builder()\n            .type(\"aad.instances\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getRmsAdvancedQuerySchemasV1\n      arguments:\n        type: aad.instances\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getRmsAdvancedQuerySchemasV1.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"},"type":{"description":"Specifies the type of the schema.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRmsAdvancedQuerySchemasV1.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"},"schemas":{"description":"The list of schema.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetRmsAdvancedQuerySchemasV1Schema:getRmsAdvancedQuerySchemasV1Schema"},"type":"array"},"type":{"description":"The schema type.\n","type":"string"}},"required":["id","schemas"],"type":"object"}},"opentelekomcloud:index/getRmsAdvancedQueryV1:getRmsAdvancedQueryV1":{"description":"Up-to-date reference of API arguments for RMS Advanced Query you can get at\n[documentation portal](https://docs.otc.t-systems.com/config/api-ref/apis/advanced_queries/running_advanced_queries.html#rms-04-0701-response-queryinfo)\n\n\nUse this data source to do an RMS advanced query.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```yaml\nconfiguration:\n  exression:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getRmsAdvancedQueryV1\n      arguments:\n        exression: ${exression}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getRmsAdvancedQueryV1.\n","properties":{"expression":{"description":"Specifies the expression of the query.\n\nFor example, **select name, id from<span pulumi-lang-nodejs=\" trackedResources \" pulumi-lang-dotnet=\" TrackedResources \" pulumi-lang-go=\" trackedResources \" pulumi-lang-python=\" tracked_resources \" pulumi-lang-yaml=\" trackedResources \" pulumi-lang-java=\" trackedResources \"> tracked_resources </span>where provider = 'ecs' and type = 'cloudservers'**\n","type":"string"},"id":{"description":"The data source ID.\n","type":"string"}},"required":["expression"],"type":"object"},"outputs":{"description":"A collection of values returned by getRmsAdvancedQueryV1.\n","properties":{"expression":{"type":"string"},"id":{"description":"The data source ID.\n","type":"string"},"queryInfos":{"description":"The query info.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetRmsAdvancedQueryV1QueryInfo:getRmsAdvancedQueryV1QueryInfo"},"type":"array"},"results":{"description":"The list of query results.\n","items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array"}},"required":["expression","id","queryInfos","results"],"type":"object"}},"opentelekomcloud:index/getRmsPolicyDefinitionsV1:getRmsPolicyDefinitionsV1":{"description":"Up-to-date reference of API arguments for RMS Policy Definitions you can get at\n[documentation portal](https://docs.otc.t-systems.com/config/api-ref/apis/compliance/querying_all_built-in_policies.html#rms-04-0501)\n\n\nUse this data source to query policy definition list.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst triggerType = config.requireObject<any>(\"triggerType\");\nconst test = opentelekomcloud.getRmsPolicyDefinitionsV1({\n    triggerType: triggerType,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ntrigger_type = config.require_object(\"triggerType\")\ntest = opentelekomcloud.get_rms_policy_definitions_v1(trigger_type=trigger_type)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var triggerType = config.RequireObject<dynamic>(\"triggerType\");\n    var test = Opentelekomcloud.GetRmsPolicyDefinitionsV1.Invoke(new()\n    {\n        TriggerType = triggerType,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\ttriggerType := cfg.RequireObject(\"triggerType\")\n\t\t_, err := opentelekomcloud.GetRmsPolicyDefinitionsV1(ctx, &opentelekomcloud.GetRmsPolicyDefinitionsV1Args{\n\t\t\tTriggerType: pulumi.StringRef(triggerType),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetRmsPolicyDefinitionsV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var triggerType = config.get(\"triggerType\");\n        final var test = OpentelekomcloudFunctions.getRmsPolicyDefinitionsV1(GetRmsPolicyDefinitionsV1Args.builder()\n            .triggerType(triggerType)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  triggerType:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getRmsPolicyDefinitionsV1\n      arguments:\n        triggerType: ${triggerType}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getRmsPolicyDefinitionsV1.\n","properties":{"id":{"description":"The ID of the policy definition.\n","type":"string"},"keywords":{"description":"Specifies the keyword list used to query definition list.\n","items":{"type":"string"},"type":"array"},"name":{"description":"Specifies the name of the policy definitions used to query definition list.\n","type":"string"},"policyRuleType":{"description":"Specifies the policy rule type used to query definition list.\n","type":"string"},"policyType":{"description":"Specifies the policy type used to query definition list.\nThe valid value is **builtin**.\n","type":"string"},"triggerType":{"description":"Specifies the trigger type used to query definition list.\nThe valid values are **resource** and **period**.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRmsPolicyDefinitionsV1.\n","properties":{"definitions":{"description":"The policy definition list.\nThe object structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetRmsPolicyDefinitionsV1Definition:getRmsPolicyDefinitionsV1Definition"},"type":"array"},"id":{"description":"The ID of the policy definition.\n","type":"string"},"keywords":{"description":"The keyword list of the policy definition.\n","items":{"type":"string"},"type":"array"},"name":{"description":"The name of the policy definition.\n","type":"string"},"policyRuleType":{"description":"The policy rule type of the policy definition.\n","type":"string"},"policyType":{"description":"The policy type of the policy definition.\n","type":"string"},"triggerType":{"description":"The trigger type of the policy definition.\n","type":"string"}},"required":["definitions","id"],"type":"object"}},"opentelekomcloud:index/getRmsPolicyStatesV1:getRmsPolicyStatesV1":{"inputs":{"description":"A collection of arguments for invoking getRmsPolicyStatesV1.\n","properties":{"complianceState":{"type":"string"},"id":{"type":"string"},"policyAssignmentId":{"type":"string"},"resourceId":{"type":"string"},"resourceName":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRmsPolicyStatesV1.\n","properties":{"complianceState":{"type":"string"},"id":{"type":"string"},"policyAssignmentId":{"type":"string"},"resourceId":{"type":"string"},"resourceName":{"type":"string"},"states":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetRmsPolicyStatesV1State:getRmsPolicyStatesV1State"},"type":"array"}},"required":["id","states"],"type":"object"}},"opentelekomcloud:index/getRmsRegionsV1:getRmsRegionsV1":{"description":"Up-to-date reference of API arguments for RMS regions you can get at\n[documentation portal](https://docs.otc.t-systems.com/config/api-ref/apis/region_management/index.html)\n\n\nManages an RMS regions data source, used to query regions visible to you, within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = opentelekomcloud.getRmsRegionsV1({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.get_rms_regions_v1()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = Opentelekomcloud.GetRmsRegionsV1.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetRmsRegionsV1(ctx, &opentelekomcloud.GetRmsRegionsV1Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetRmsRegionsV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = OpentelekomcloudFunctions.getRmsRegionsV1(GetRmsRegionsV1Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getRmsRegionsV1\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getRmsRegionsV1.\n","properties":{"id":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRmsRegionsV1.\n","properties":{"id":{"type":"string"},"regions":{"description":"Specifies the list of region information. The structure is documented below:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetRmsRegionsV1Region:getRmsRegionsV1Region"},"type":"array"}},"required":["id","regions"],"type":"object"}},"opentelekomcloud:index/getRmsResourceRelationshipsV1:getRmsResourceRelationshipsV1":{"description":"Up-to-date reference of API arguments for RMS resource relationships you can get at\n[documentation portal](https://docs.otc.t-systems.com/config/api-ref/apis/resource_relationships/index.html)\n\n\nManages an RMS resource relationships data source, used to query the relationship between a resource and other resources by the resource ID, within OpenTelekomCloud.\n\n  > **NOTE:**\n  Resource recorder must be enabled to query resource relationships.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst resourceId = config.requireObject<any>(\"resourceId\");\nconst relations1 = opentelekomcloud.getRmsResourceRelationshipsV1({\n    resourceId: resourceId,\n    direction: \"in\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nresource_id = config.require_object(\"resourceId\")\nrelations1 = opentelekomcloud.get_rms_resource_relationships_v1(resource_id=resource_id,\n    direction=\"in\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var resourceId = config.RequireObject<dynamic>(\"resourceId\");\n    var relations1 = Opentelekomcloud.GetRmsResourceRelationshipsV1.Invoke(new()\n    {\n        ResourceId = resourceId,\n        Direction = \"in\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tresourceId := cfg.RequireObject(\"resourceId\")\n\t\t_, err := opentelekomcloud.GetRmsResourceRelationshipsV1(ctx, &opentelekomcloud.GetRmsResourceRelationshipsV1Args{\n\t\t\tResourceId: resourceId,\n\t\t\tDirection:  \"in\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetRmsResourceRelationshipsV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var resourceId = config.get(\"resourceId\");\n        final var relations1 = OpentelekomcloudFunctions.getRmsResourceRelationshipsV1(GetRmsResourceRelationshipsV1Args.builder()\n            .resourceId(resourceId)\n            .direction(\"in\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  resourceId:\n    type: dynamic\nvariables:\n  relations1:\n    fn::invoke:\n      function: opentelekomcloud:getRmsResourceRelationshipsV1\n      arguments:\n        resourceId: ${resourceId}\n        direction: in\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getRmsResourceRelationshipsV1.\n","properties":{"direction":{"description":"Specifies the direction of a resource relationship. Permitted values: <span pulumi-lang-nodejs=\"`in`\" pulumi-lang-dotnet=\"`In`\" pulumi-lang-go=\"`in`\" pulumi-lang-python=\"`in`\" pulumi-lang-yaml=\"`in`\" pulumi-lang-java=\"`in`\">`in`</span>, <span pulumi-lang-nodejs=\"`out`\" pulumi-lang-dotnet=\"`Out`\" pulumi-lang-go=\"`out`\" pulumi-lang-python=\"`out`\" pulumi-lang-yaml=\"`out`\" pulumi-lang-java=\"`out`\">`out`</span>.\n","type":"string"},"id":{"type":"string"},"resourceId":{"description":"Specifies the resource ID. Maximum length: <span pulumi-lang-nodejs=\"`512`\" pulumi-lang-dotnet=\"`512`\" pulumi-lang-go=\"`512`\" pulumi-lang-python=\"`512`\" pulumi-lang-yaml=\"`512`\" pulumi-lang-java=\"`512`\">`512`</span>.\n","type":"string"}},"required":["direction","resourceId"],"type":"object"},"outputs":{"description":"A collection of values returned by getRmsResourceRelationshipsV1.\n","properties":{"direction":{"type":"string"},"id":{"type":"string"},"relations":{"description":"Specifies the list of the resource relationships. The structure is documented below:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetRmsResourceRelationshipsV1Relation:getRmsResourceRelationshipsV1Relation"},"type":"array"},"resourceId":{"type":"string"}},"required":["direction","id","relations","resourceId"],"type":"object"}},"opentelekomcloud:index/getRmsResourceTagsV1:getRmsResourceTagsV1":{"description":"Up-to-date reference of API arguments for RMS resource tags you can get at\n[documentation portal](https://docs.otc.t-systems.com/config/api-ref/apis/resource_query/querying_resource_tags.html#rms-04-0106)\n\n\nManages an RMS resource tags data source, used to query all resource tags under your account, within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = opentelekomcloud.getRmsResourceTagsV1({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.get_rms_resource_tags_v1()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = Opentelekomcloud.GetRmsResourceTagsV1.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetRmsResourceTagsV1(ctx, &opentelekomcloud.GetRmsResourceTagsV1Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetRmsResourceTagsV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = OpentelekomcloudFunctions.getRmsResourceTagsV1(GetRmsResourceTagsV1Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getRmsResourceTagsV1\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getRmsResourceTagsV1.\n","properties":{"id":{"type":"string"},"key":{"description":"Specifies the name of the tag key. Maximum length: <span pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\">`128`</span>.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRmsResourceTagsV1.\n","properties":{"id":{"type":"string"},"key":{"description":"Specifies the tag key.\n","type":"string"},"tags":{"description":"Specifies the list of tags. The structure is documented below:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetRmsResourceTagsV1Tag:getRmsResourceTagsV1Tag"},"type":"array"}},"required":["id","tags"],"type":"object"}},"opentelekomcloud:index/getRtsSoftwareConfigV1:getRtsSoftwareConfigV1":{"inputs":{"description":"A collection of arguments for invoking getRtsSoftwareConfigV1.\n","properties":{"id":{"type":"string"},"name":{"type":"string"},"region":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRtsSoftwareConfigV1.\n","properties":{"config":{"type":"string"},"group":{"type":"string"},"id":{"type":"string"},"inputValues":{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array"},"name":{"type":"string"},"options":{"additionalProperties":{"type":"string"},"type":"object"},"outputValues":{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array"},"region":{"type":"string"}},"required":["config","group","inputValues","options","outputValues","region"],"type":"object"}},"opentelekomcloud:index/getRtsSoftwareDeploymentV1:getRtsSoftwareDeploymentV1":{"inputs":{"description":"A collection of arguments for invoking getRtsSoftwareDeploymentV1.\n","properties":{"action":{"type":"string"},"configId":{"type":"string"},"id":{"type":"string"},"region":{"type":"string"},"serverId":{"type":"string"},"status":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRtsSoftwareDeploymentV1.\n","properties":{"action":{"type":"string"},"configId":{"type":"string"},"id":{"type":"string"},"inputValues":{"additionalProperties":{"type":"string"},"type":"object"},"outputValues":{"additionalProperties":{"type":"string"},"type":"object"},"region":{"type":"string"},"serverId":{"type":"string"},"status":{"type":"string"},"statusReason":{"type":"string"}},"required":["inputValues","outputValues","region","statusReason"],"type":"object"}},"opentelekomcloud:index/getRtsStackResourceV1:getRtsStackResourceV1":{"description":"Use this data source to get details about RTS resource metadata.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst stackName = config.requireObject<any>(\"stackName\");\nconst resourceName = config.requireObject<any>(\"resourceName\");\nconst stackresource = opentelekomcloud.getRtsStackResourceV1({\n    stackName: stackName,\n    resourceName: resourceName,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nstack_name = config.require_object(\"stackName\")\nresource_name = config.require_object(\"resourceName\")\nstackresource = opentelekomcloud.get_rts_stack_resource_v1(stack_name=stack_name,\n    resource_name=resource_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var stackName = config.RequireObject<dynamic>(\"stackName\");\n    var resourceName = config.RequireObject<dynamic>(\"resourceName\");\n    var stackresource = Opentelekomcloud.GetRtsStackResourceV1.Invoke(new()\n    {\n        StackName = stackName,\n        ResourceName = resourceName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tstackName := cfg.RequireObject(\"stackName\")\n\t\tresourceName := cfg.RequireObject(\"resourceName\")\n\t\t_, err := opentelekomcloud.GetRtsStackResourceV1(ctx, &opentelekomcloud.GetRtsStackResourceV1Args{\n\t\t\tStackName:    stackName,\n\t\t\tResourceName: pulumi.StringRef(resourceName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetRtsStackResourceV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var stackName = config.get(\"stackName\");\n        final var resourceName = config.get(\"resourceName\");\n        final var stackresource = OpentelekomcloudFunctions.getRtsStackResourceV1(GetRtsStackResourceV1Args.builder()\n            .stackName(stackName)\n            .resourceName(resourceName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  stackName:\n    type: dynamic\n  resourceName:\n    type: dynamic\nvariables:\n  stackresource:\n    fn::invoke:\n      function: opentelekomcloud:getRtsStackResourceV1\n      arguments:\n        stackName: ${stackName}\n        resourceName: ${resourceName}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getRtsStackResourceV1.\n","properties":{"id":{"type":"string"},"physicalResourceId":{"description":"The physical resource ID.\n","type":"string"},"region":{"type":"string"},"resourceName":{"description":"The name of a resource in the stack.\n","type":"string"},"resourceType":{"description":"The resource type.\n","type":"string"},"stackName":{"description":"The unique stack name.\n","type":"string"}},"required":["stackName"],"type":"object"},"outputs":{"description":"A collection of values returned by getRtsStackResourceV1.\n","properties":{"id":{"type":"string"},"logicalResourceId":{"description":"The logical resource ID.\n","type":"string"},"physicalResourceId":{"type":"string"},"region":{"type":"string"},"requiredBies":{"description":"Specifies the resource dependency.\n","items":{"type":"string"},"type":"array"},"resourceName":{"type":"string"},"resourceStatus":{"description":"The status of the resource.\n","type":"string"},"resourceStatusReason":{"description":"The resource operation reason.\n","type":"string"},"resourceType":{"type":"string"},"stackName":{"type":"string"}},"required":["id","logicalResourceId","region","requiredBies","resourceStatus","resourceStatusReason","stackName"],"type":"object"}},"opentelekomcloud:index/getRtsStackV1:getRtsStackV1":{"description":"Use this data source to get details about RTS outputs and other useful data including the template body.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst stackName = config.requireObject<any>(\"stackName\");\nconst mystack = opentelekomcloud.getRtsStackV1({\n    name: stackName,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nstack_name = config.require_object(\"stackName\")\nmystack = opentelekomcloud.get_rts_stack_v1(name=stack_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var stackName = config.RequireObject<dynamic>(\"stackName\");\n    var mystack = Opentelekomcloud.GetRtsStackV1.Invoke(new()\n    {\n        Name = stackName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tstackName := cfg.RequireObject(\"stackName\")\n\t\t_, err := opentelekomcloud.LookupRtsStackV1(ctx, &opentelekomcloud.LookupRtsStackV1Args{\n\t\t\tName: stackName,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetRtsStackV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var stackName = config.get(\"stackName\");\n        final var mystack = OpentelekomcloudFunctions.getRtsStackV1(GetRtsStackV1Args.builder()\n            .name(stackName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  stackName:\n    type: dynamic\nvariables:\n  mystack:\n    fn::invoke:\n      function: opentelekomcloud:getRtsStackV1\n      arguments:\n        name: ${stackName}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getRtsStackV1.\n","properties":{"id":{"description":"A unique identifier of the stack.\n","type":"string"},"name":{"description":"The name of the stack.\n","type":"string"},"region":{"type":"string"}},"required":["name"],"type":"object"},"outputs":{"description":"A collection of values returned by getRtsStackV1.\n","properties":{"capabilities":{"description":"List of stack capabilities for stack.\n","items":{"type":"string"},"type":"array"},"disableRollback":{"description":"Whether the rollback of the stack is disabled when stack creation fails.\n","type":"boolean"},"id":{"description":"A unique identifier of the stack.\n","type":"string"},"name":{"type":"string"},"notificationTopics":{"description":"List of notification topics for stack.\n","items":{"type":"string"},"type":"array"},"outputs":{"additionalProperties":{"type":"string"},"description":"A list of stack outputs.\n","type":"object"},"parameters":{"additionalProperties":{"type":"string"},"description":"A map of parameters that specify input parameters for the stack.\n","type":"object"},"region":{"type":"string"},"status":{"description":"Specifies the stack status.\n","type":"string"},"statusReason":{"type":"string"},"templateBody":{"description":"Structure containing the template body.\n","type":"string"},"timeoutMins":{"description":"Specifies the timeout duration.\n","type":"number"}},"required":["capabilities","disableRollback","id","name","notificationTopics","outputs","parameters","region","status","statusReason","templateBody","timeoutMins"],"type":"object"}},"opentelekomcloud:index/getS3BucketObject:getS3BucketObject":{"description":"Use this data source to get details about the metadata and\n_optionally_ (see below) content of an object stored inside S3 bucket.\n\n> **Note:** The content of an object (<span pulumi-lang-nodejs=\"`body`\" pulumi-lang-dotnet=\"`Body`\" pulumi-lang-go=\"`body`\" pulumi-lang-python=\"`body`\" pulumi-lang-yaml=\"`body`\" pulumi-lang-java=\"`body`\">`body`</span> field) is available only for objects which have a human-readable `Content-Type` (`text/*` and `application/json`). This is to prevent printing unsafe characters and potentially downloading large amount of data which would be thrown away in favour of metadata.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst b = opentelekomcloud.getS3BucketObject({\n    bucket: \"my-test-bucket\",\n    key: \"hello-world.zip\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nb = opentelekomcloud.get_s3_bucket_object(bucket=\"my-test-bucket\",\n    key=\"hello-world.zip\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var b = Opentelekomcloud.GetS3BucketObject.Invoke(new()\n    {\n        Bucket = \"my-test-bucket\",\n        Key = \"hello-world.zip\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupS3BucketObject(ctx, &opentelekomcloud.LookupS3BucketObjectArgs{\n\t\t\tBucket: \"my-test-bucket\",\n\t\t\tKey:    \"hello-world.zip\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetS3BucketObjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var b = OpentelekomcloudFunctions.getS3BucketObject(GetS3BucketObjectArgs.builder()\n            .bucket(\"my-test-bucket\")\n            .key(\"hello-world.zip\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  b:\n    fn::invoke:\n      function: opentelekomcloud:getS3BucketObject\n      arguments:\n        bucket: my-test-bucket\n        key: hello-world.zip\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getS3BucketObject.\n","properties":{"bucket":{"description":"The name of the bucket to read the object from.\n","type":"string"},"id":{"type":"string"},"key":{"description":"The full path to the object inside the bucket.\n","type":"string"},"range":{"type":"string"},"versionId":{"description":"Specific version ID of the object returned (defaults to latest version).\n","type":"string"}},"required":["bucket","key"],"type":"object"},"outputs":{"description":"A collection of values returned by getS3BucketObject.\n","properties":{"body":{"description":"Object data (see **limitations above** to understand cases in which this field is actually available)\n","type":"string"},"bucket":{"type":"string"},"cacheControl":{"description":"Specifies caching behavior along the request/reply chain.\n","type":"string"},"contentDisposition":{"description":"Specifies presentational information for the object.\n","type":"string"},"contentEncoding":{"description":"Specifies what content encodings have been applied to the\nobject and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.\n","type":"string"},"contentLanguage":{"description":"The language the content is in.\n","type":"string"},"contentLength":{"description":"Size of the body in bytes.\n","type":"number"},"contentType":{"description":"A standard MIME type describing the format of the object data.\n","type":"string"},"etag":{"description":"[ETag](https://en.wikipedia.org/wiki/HTTP_ETag) generated for the object (an MD5 sum of the object content in case it's not encrypted).\n","type":"string"},"expiration":{"description":"If the object expiration is configured\n(see [object lifecycle management](http://docs.opentelekomcloud.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html)), the field includes this header. It includes the expiry-date and rule-id key value pairs providing object expiration information. The value of the rule-id is URL encoded.\n","type":"string"},"expires":{"description":"The date and time at which the object is no longer cacheable.\n","type":"string"},"id":{"type":"string"},"key":{"type":"string"},"lastModified":{"description":"Last modified date of the object in RFC1123 format\n(e.g. `Mon, 02 Jan 2006 15:04:05 MST`)\n","type":"string"},"metadata":{"additionalProperties":{"type":"string"},"description":"A map of metadata stored with the object in S3\n","type":"object"},"range":{"type":"string"},"serverSideEncryption":{"description":"If the object is stored using server-side encryption\n(KMS or Amazon S3-managed encryption key), this field includes the chosen encryption and algorithm used.\n","type":"string"},"sseKmsKeyId":{"description":"If present, specifies the ID of the Key Management Service\n(KMS) master encryption key that was used for the object.\n","type":"string"},"versionId":{"description":"The latest version ID of the object returned.\n","type":"string"},"websiteRedirectLocation":{"description":"If the bucket is configured as a website,\nredirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.\n","type":"string"}},"required":["body","bucket","cacheControl","contentDisposition","contentEncoding","contentLanguage","contentLength","contentType","etag","expiration","expires","id","key","lastModified","metadata","serverSideEncryption","sseKmsKeyId","versionId","websiteRedirectLocation"],"type":"object"}},"opentelekomcloud:index/getSdrsDomainV1:getSdrsDomainV1":{"description":"Up-to-date reference of API arguments for SDRS domain you can get at\n[documentation portal](https://docs.otc.t-systems.com/storage-disaster-recovery-service/api-ref/sdrs_apis/active-active_domain/querying_an_active-active_domain.html#sdrs-05-0301)\n\nUse this data source to get the ID of an available OpenTelekomcloud SDRS domain.\n\n~>\n    OTC supports a single ``active-active domain`` with default name `<span pulumi-lang-nodejs=\"`domain001`\" pulumi-lang-dotnet=\"`Domain001`\" pulumi-lang-go=\"`domain001`\" pulumi-lang-python=\"`domain_001`\" pulumi-lang-yaml=\"`domain001`\" pulumi-lang-java=\"`domain001`\">`domain_001`</span>`.\n\n## Example Usage\n\n~>\n  **Result of both examples will be the same.**\n\n### Querying ``active-active domain`` with `<span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span>` parameter.\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst dom1 = opentelekomcloud.getSdrsDomainV1({\n    name: \"domain_001\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ndom1 = opentelekomcloud.get_sdrs_domain_v1(name=\"domain_001\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var dom1 = Opentelekomcloud.GetSdrsDomainV1.Invoke(new()\n    {\n        Name = \"domain_001\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetSdrsDomainV1(ctx, &opentelekomcloud.GetSdrsDomainV1Args{\n\t\t\tName: pulumi.StringRef(\"domain_001\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetSdrsDomainV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var dom1 = OpentelekomcloudFunctions.getSdrsDomainV1(GetSdrsDomainV1Args.builder()\n            .name(\"domain_001\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  dom1:\n    fn::invoke:\n      function: opentelekomcloud:getSdrsDomainV1\n      arguments:\n        name: domain_001\n```\n<!--End PulumiCodeChooser -->\n\n### Querying ``active-active domain`` without `<span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span>` parameter.\n\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst dom1 = opentelekomcloud.getSdrsDomainV1({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ndom1 = opentelekomcloud.get_sdrs_domain_v1()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var dom1 = Opentelekomcloud.GetSdrsDomainV1.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetSdrsDomainV1(ctx, &opentelekomcloud.GetSdrsDomainV1Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetSdrsDomainV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var dom1 = OpentelekomcloudFunctions.getSdrsDomainV1(GetSdrsDomainV1Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  dom1:\n    fn::invoke:\n      function: opentelekomcloud:getSdrsDomainV1\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getSdrsDomainV1.\n","properties":{"id":{"type":"string"},"name":{"description":"Specifies the name of an active-active domain.\nThis parameter serves as filter for querying ``active-active`` domains and can be skipped in current version.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSdrsDomainV1.\n","properties":{"description":{"description":"Specifies the description of an active-active domain.\n","type":"string"},"id":{"type":"string"},"name":{"description":"See Argument Reference above.\n","type":"string"}},"required":["description","id","name"],"type":"object"}},"opentelekomcloud:index/getSfsFileSystemV2:getSfsFileSystemV2":{"description":"Up-to-date reference of API arguments for SFS you can get at\n[documentation portal](https://docs.otc.t-systems.com/scalable-file-service/api-ref/sfs_capacity-oriented_apis/file_systems/querying_all_shared_file_systems.html#sfs-02-0022)\n\nUse this data source to get details about a Scalable File Service.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst shareName = config.requireObject<any>(\"shareName\");\nconst shareId = config.requireObject<any>(\"shareId\");\nconst sharedFile = opentelekomcloud.getSfsFileSystemV2({\n    name: shareName,\n    id: shareId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nshare_name = config.require_object(\"shareName\")\nshare_id = config.require_object(\"shareId\")\nshared_file = opentelekomcloud.get_sfs_file_system_v2(name=share_name,\n    id=share_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var shareName = config.RequireObject<dynamic>(\"shareName\");\n    var shareId = config.RequireObject<dynamic>(\"shareId\");\n    var sharedFile = Opentelekomcloud.GetSfsFileSystemV2.Invoke(new()\n    {\n        Name = shareName,\n        Id = shareId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tshareName := cfg.RequireObject(\"shareName\")\n\t\tshareId := cfg.RequireObject(\"shareId\")\n\t\t_, err := opentelekomcloud.LookupSfsFileSystemV2(ctx, &opentelekomcloud.LookupSfsFileSystemV2Args{\n\t\t\tName: pulumi.StringRef(shareName),\n\t\t\tId:   pulumi.StringRef(shareId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetSfsFileSystemV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var shareName = config.get(\"shareName\");\n        final var shareId = config.get(\"shareId\");\n        final var sharedFile = OpentelekomcloudFunctions.getSfsFileSystemV2(GetSfsFileSystemV2Args.builder()\n            .name(shareName)\n            .id(shareId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  shareName:\n    type: dynamic\n  shareId:\n    type: dynamic\nvariables:\n  sharedFile:\n    fn::invoke:\n      function: opentelekomcloud:getSfsFileSystemV2\n      arguments:\n        name: ${shareName}\n        id: ${shareId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getSfsFileSystemV2.\n","properties":{"id":{"description":"The UUID of the shared file system.\n","type":"string"},"name":{"description":"The name of the shared file system.\n","type":"string"},"region":{"type":"string"},"status":{"description":"The status of the shared file system.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSfsFileSystemV2.\n","properties":{"accessLevel":{"description":"The level of the access rule.\n","type":"string"},"accessTo":{"description":"The access that the back end grants or denies.\n","type":"string"},"accessType":{"description":"The type of the share access rule.\n","type":"string"},"availabilityZone":{"description":"The availability zone name.\n","type":"string"},"description":{"type":"string"},"exportLocation":{"description":"The path for accessing the shared file system.\n","type":"string"},"exportLocations":{"items":{"type":"string"},"type":"array"},"host":{"description":"The host name of the shared file system.\n","type":"string"},"id":{"type":"string"},"isPublic":{"description":"The level of visibility for the shared file system.\n","type":"boolean"},"metadata":{"additionalProperties":{"type":"string"},"description":"Metadata key and value pairs as a dictionary of strings.\n","type":"object"},"mountId":{"description":"The UUID of the mount location of the shared file system.\n","type":"string"},"name":{"type":"string"},"preferred":{"description":"Identifies which mount locations are most efficient and are used preferentially when multiple mount locations exist.\n","type":"boolean"},"projectId":{"type":"string"},"region":{"type":"string"},"shareAccessId":{"description":"The UUID of the share access rule.\n","type":"string"},"shareInstanceId":{"description":"The access that the back end grants or denies.\n","type":"string"},"shareProto":{"description":"The protocol for sharing file systems.\n","type":"string"},"shareType":{"description":"The storage service type for the shared file system, such as high-performance storage (composed of SSDs) or large-capacity storage (composed of SATA disks).\n","type":"string"},"size":{"description":"The size (GB) of the shared file system.\n","type":"number"},"state":{"type":"string"},"status":{"description":"The status of the shared file system.\n","type":"string"},"volumeType":{"description":"The volume type.\n","type":"string"}},"required":["accessLevel","accessTo","accessType","availabilityZone","description","exportLocation","exportLocations","host","isPublic","metadata","mountId","preferred","projectId","region","shareAccessId","shareInstanceId","shareProto","shareType","size","state","volumeType"],"type":"object"}},"opentelekomcloud:index/getSfsTurboShareV1:getSfsTurboShareV1":{"description":"Up-to-date reference of API arguments for SFS you can get at\n[documentation portal](https://docs.otc.t-systems.com/scalable-file-service/api-ref/sfs_turbo_apis/lifecycle_management/querying_details_about_all_file_systems.html#sfs-02-0053)\n\nUse this data source to get details about a Shared File System (SFS) Turbo resource.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst turbo = opentelekomcloud.getSfsTurboShareV1({\n    name: \"turbo-share-1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nturbo = opentelekomcloud.get_sfs_turbo_share_v1(name=\"turbo-share-1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var turbo = Opentelekomcloud.GetSfsTurboShareV1.Invoke(new()\n    {\n        Name = \"turbo-share-1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupSfsTurboShareV1(ctx, &opentelekomcloud.LookupSfsTurboShareV1Args{\n\t\t\tName: \"turbo-share-1\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetSfsTurboShareV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var turbo = OpentelekomcloudFunctions.getSfsTurboShareV1(GetSfsTurboShareV1Args.builder()\n            .name(\"turbo-share-1\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  turbo:\n    fn::invoke:\n      function: opentelekomcloud:getSfsTurboShareV1\n      arguments:\n        name: turbo-share-1\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getSfsTurboShareV1.\n","properties":{"id":{"description":"The UUID of the SFS Turbo file system.\n","type":"string"},"name":{"description":"The name of an SFS Turbo share.\n","type":"string"}},"required":["name"],"type":"object"},"outputs":{"description":"A collection of values returned by getSfsTurboShareV1.\n","properties":{"availabilityZone":{"description":"Tthe availability zone where the file system is located.\n","type":"string"},"availableCapacity":{"description":"The available capacity of the SFS Turbo file system in the unit of GB.\n","type":"string"},"cryptKeyId":{"description":"The ID of a KMS key to encrypt the file system.\n","type":"string"},"expandType":{"description":"Specifies the extension type.\n","type":"string"},"exportLocation":{"description":"The mount point of the SFS Turbo file system.\n","type":"string"},"hpcBw":{"description":"Specifies the file system bandwidth.\n","type":"string"},"id":{"description":"The UUID of the SFS Turbo file system.\n","type":"string"},"name":{"type":"string"},"region":{"description":"The region of SFS Turbo share.\n","type":"string"},"securityGroupId":{"description":"The share security group ID.\n","type":"string"},"shareProto":{"description":"The protocol for sharing file systems.\n","type":"string"},"shareType":{"description":"The file system type.\n","type":"string"},"size":{"description":"Capacity of the share common file system, in GB.\n","type":"number"},"subnetId":{"description":"Specifies the share network ID of the subnet.\n","type":"string"},"version":{"description":"The version ID of the SFS Turbo file system.\n","type":"string"},"vpcId":{"description":"The share VPC ID.\n","type":"string"}},"required":["availabilityZone","availableCapacity","cryptKeyId","expandType","exportLocation","hpcBw","id","name","region","securityGroupId","shareProto","shareType","size","subnetId","version","vpcId"],"type":"object"}},"opentelekomcloud:index/getSmnMessageTemplatesV2:getSmnMessageTemplatesV2":{"description":"Use this data source to get the list of SMN message templates.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst name = config.requireObject<any>(\"name\");\nconst test = opentelekomcloud.getSmnMessageTemplatesV2({\n    name: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nname = config.require_object(\"name\")\ntest = opentelekomcloud.get_smn_message_templates_v2(name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var name = config.RequireObject<dynamic>(\"name\");\n    var test = Opentelekomcloud.GetSmnMessageTemplatesV2.Invoke(new()\n    {\n        Name = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := cfg.RequireObject(\"name\")\n\t\t_, err := opentelekomcloud.GetSmnMessageTemplatesV2(ctx, &opentelekomcloud.GetSmnMessageTemplatesV2Args{\n\t\t\tName: pulumi.StringRef(name),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetSmnMessageTemplatesV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\");\n        final var test = OpentelekomcloudFunctions.getSmnMessageTemplatesV2(GetSmnMessageTemplatesV2Args.builder()\n            .name(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getSmnMessageTemplatesV2\n      arguments:\n        name: ${name}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getSmnMessageTemplatesV2.\n","properties":{"id":{"description":"Indicates the message template ID.\n","type":"string"},"name":{"description":"Specifies the name of the message template.\n","type":"string"},"protocol":{"description":"Specifies the protocol of the message template.\n","type":"string"},"templateId":{"description":"Specifies the message template ID.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSmnMessageTemplatesV2.\n","properties":{"id":{"description":"Indicates the message template ID.\n","type":"string"},"name":{"description":"Indicates the message template name.\n","type":"string"},"protocol":{"description":"Indicates the protocol supported by the template.\n","type":"string"},"templateId":{"type":"string"},"templates":{"description":"The list of message templates.\nThe templates structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetSmnMessageTemplatesV2Template:getSmnMessageTemplatesV2Template"},"type":"array"}},"required":["id","templates"],"type":"object"}},"opentelekomcloud:index/getSmnSubscriptionV2:getSmnSubscriptionV2":{"description":"Up-to-date reference of API arguments for SMN subscription you can get at\n[documentation portal](https://docs.otc.t-systems.com/simple-message-notification/api-ref/apis/subscription_operations/querying_subscriptions.html#smn-api-52001)\n\nGet details about an SMN subscription V2 resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst subscriptionUrn = config.requireObject<any>(\"subscriptionUrn\");\nconst data_sub = opentelekomcloud.getSmnSubscriptionV2({\n    subscriptionUrn: subscriptionUrn,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nsubscription_urn = config.require_object(\"subscriptionUrn\")\ndata_sub = opentelekomcloud.get_smn_subscription_v2(subscription_urn=subscription_urn)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var subscriptionUrn = config.RequireObject<dynamic>(\"subscriptionUrn\");\n    var data_sub = Opentelekomcloud.GetSmnSubscriptionV2.Invoke(new()\n    {\n        SubscriptionUrn = subscriptionUrn,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tsubscriptionUrn := cfg.RequireObject(\"subscriptionUrn\")\n\t\t_, err := opentelekomcloud.LookupSmnSubscriptionV2(ctx, &opentelekomcloud.LookupSmnSubscriptionV2Args{\n\t\t\tSubscriptionUrn: subscriptionUrn,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetSmnSubscriptionV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var subscriptionUrn = config.get(\"subscriptionUrn\");\n        final var data-sub = OpentelekomcloudFunctions.getSmnSubscriptionV2(GetSmnSubscriptionV2Args.builder()\n            .subscriptionUrn(subscriptionUrn)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  subscriptionUrn:\n    type: dynamic\nvariables:\n  data-sub:\n    fn::invoke:\n      function: opentelekomcloud:getSmnSubscriptionV2\n      arguments:\n        subscriptionUrn: ${subscriptionUrn}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getSmnSubscriptionV2.\n","properties":{"id":{"type":"string"},"subscriptionUrn":{"description":"The urn of subscription to be fetched.\n","type":"string"}},"required":["subscriptionUrn"],"type":"object"},"outputs":{"description":"A collection of values returned by getSmnSubscriptionV2.\n","properties":{"description":{"description":"Subscription description.\n","type":"string"},"endpoint":{"description":"Message receiving endpoint.\n","type":"string"},"id":{"type":"string"},"owner":{"description":"Project ID of the topic creator.\n","type":"string"},"protocol":{"description":"Subscription protocol.\n","type":"string"},"status":{"description":"Subscription status.\n","type":"number"},"subscriptionUrn":{"type":"string"},"topicUrn":{"description":"Resource identifier of a topic, which is unique.\n","type":"string"}},"required":["description","endpoint","id","owner","protocol","status","subscriptionUrn","topicUrn"],"type":"object"}},"opentelekomcloud:index/getSmnTopicSubscriptionV2:getSmnTopicSubscriptionV2":{"description":"Up-to-date reference of API arguments for SMN topic subscription you can get at\n[documentation portal](https://docs.otc.t-systems.com/simple-message-notification/api-ref/apis/subscription_operations/querying_subscriptions_of_a_specified_topic.html#)\n\nGet details about an SMN topic subscription V2 resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```yaml\nconfiguration:\n  topicUrn:\n    type: dynamic\nvariables:\n  data-sub:\n    fn::invoke:\n      function: opentelekomcloud:getSmnTopicSubscriptionV2\n      arguments:\n        topocUrn: ${topicUrn}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getSmnTopicSubscriptionV2.\n","properties":{"endpoint":{"description":"Message receiving endpoint.\n","type":"string"},"id":{"type":"string"},"protocol":{"description":"Subscription protocol.\n","type":"string"},"topicUrn":{"description":"The resource ID of a topic\n","type":"string"}},"required":["topicUrn"],"type":"object"},"outputs":{"description":"A collection of values returned by getSmnTopicSubscriptionV2.\n","properties":{"description":{"description":"Subscription description.\n","type":"string"},"endpoint":{"type":"string"},"id":{"type":"string"},"owner":{"description":"Project ID of the topic creator.\n","type":"string"},"protocol":{"type":"string"},"status":{"description":"Subscription status.\n","type":"number"},"subscriptionUrn":{"description":"Resource identifier of a subscription, which is unique.\n","type":"string"},"topicUrn":{"type":"string"}},"required":["description","endpoint","id","owner","protocol","status","subscriptionUrn","topicUrn"],"type":"object"}},"opentelekomcloud:index/getSmnTopicV2:getSmnTopicV2":{"description":"Up-to-date reference of API arguments for SMN topic you can get at\n[documentation portal](https://docs.otc.t-systems.com/simple-message-notification/api-ref/apis/topic_operations)\n\nGet details about an SMN topic V2 resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst topic1 = opentelekomcloud.getSmnTopicV2({\n    name: \"topic_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntopic1 = opentelekomcloud.get_smn_topic_v2(name=\"topic_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var topic1 = Opentelekomcloud.GetSmnTopicV2.Invoke(new()\n    {\n        Name = \"topic_1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupSmnTopicV2(ctx, &opentelekomcloud.LookupSmnTopicV2Args{\n\t\t\tName: \"topic_1\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetSmnTopicV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var topic1 = OpentelekomcloudFunctions.getSmnTopicV2(GetSmnTopicV2Args.builder()\n            .name(\"topic_1\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  topic1:\n    fn::invoke:\n      function: opentelekomcloud:getSmnTopicV2\n      arguments:\n        name: topic_1\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getSmnTopicV2.\n","properties":{"id":{"type":"string"},"name":{"description":"The name of the topic to be fetched.\n","type":"string"}},"required":["name"],"type":"object"},"outputs":{"description":"A collection of values returned by getSmnTopicV2.\n","properties":{"createTime":{"description":"Time when the topic was created.\n","type":"string"},"displayName":{"description":"Topic display name, which is presented as the\nname of the email sender in an email message.\n","type":"string"},"id":{"type":"string"},"name":{"description":"See Argument Reference above.\n","type":"string"},"pushPolicy":{"description":"Message pushing policy. 0 indicates that the message\nsending fails and the message is cached in the queue. 1 indicates that the\nfailed message is discarded.\n","type":"number"},"topicUrn":{"description":"Resource identifier of a topic, which is unique.\n","type":"string"},"updateTime":{"description":"Time when the topic was updated.\n","type":"string"}},"required":["createTime","displayName","id","name","pushPolicy","topicUrn","updateTime"],"type":"object"}},"opentelekomcloud:index/getSwrDomainV2:getSwrDomainV2":{"description":"Up-to-date reference of API arguments for SWR domain you can get at\n[documentation portal](https://docs.otc.t-systems.com/software-repository-container/api-ref/api)\n\nGet details of SWR image sharing domain resource within Open Telekom Cloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst orgName = config.requireObject<any>(\"orgName\");\nconst repoName = config.requireObject<any>(\"repoName\");\nconst accessDomain = config.requireObject<any>(\"accessDomain\");\nconst domain1 = opentelekomcloud.getSwrDomainV2({\n    organization: orgName,\n    repository: repoName,\n    accessDomain: accessDomain,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\norg_name = config.require_object(\"orgName\")\nrepo_name = config.require_object(\"repoName\")\naccess_domain = config.require_object(\"accessDomain\")\ndomain1 = opentelekomcloud.get_swr_domain_v2(organization=org_name,\n    repository=repo_name,\n    access_domain=access_domain)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var orgName = config.RequireObject<dynamic>(\"orgName\");\n    var repoName = config.RequireObject<dynamic>(\"repoName\");\n    var accessDomain = config.RequireObject<dynamic>(\"accessDomain\");\n    var domain1 = Opentelekomcloud.GetSwrDomainV2.Invoke(new()\n    {\n        Organization = orgName,\n        Repository = repoName,\n        AccessDomain = accessDomain,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\torgName := cfg.RequireObject(\"orgName\")\n\t\trepoName := cfg.RequireObject(\"repoName\")\n\t\taccessDomain := cfg.RequireObject(\"accessDomain\")\n\t\t_, err := opentelekomcloud.LookupSwrDomainV2(ctx, &opentelekomcloud.LookupSwrDomainV2Args{\n\t\t\tOrganization: orgName,\n\t\t\tRepository:   repoName,\n\t\t\tAccessDomain: accessDomain,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetSwrDomainV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var orgName = config.get(\"orgName\");\n        final var repoName = config.get(\"repoName\");\n        final var accessDomain = config.get(\"accessDomain\");\n        final var domain1 = OpentelekomcloudFunctions.getSwrDomainV2(GetSwrDomainV2Args.builder()\n            .organization(orgName)\n            .repository(repoName)\n            .accessDomain(accessDomain)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  orgName:\n    type: dynamic\n  repoName:\n    type: dynamic\n  accessDomain:\n    type: dynamic\nvariables:\n  domain1:\n    fn::invoke:\n      function: opentelekomcloud:getSwrDomainV2\n      arguments:\n        organization: ${orgName}\n        repository: ${repoName}\n        accessDomain: ${accessDomain}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getSwrDomainV2.\n","properties":{"accessDomain":{"description":"The name of the domain for image sharing.\n\n> <span pulumi-lang-nodejs=\"`accessDomain`\" pulumi-lang-dotnet=\"`AccessDomain`\" pulumi-lang-go=\"`accessDomain`\" pulumi-lang-python=\"`access_domain`\" pulumi-lang-yaml=\"`accessDomain`\" pulumi-lang-java=\"`accessDomain`\">`access_domain`</span> should be an existing OTC domain.\n","type":"string"},"id":{"type":"string"},"organization":{"description":"The name of the repository organization.\n","type":"string"},"repository":{"description":"The name of the repository.\n","type":"string"}},"required":["accessDomain","organization","repository"],"type":"object"},"outputs":{"description":"A collection of values returned by getSwrDomainV2.\n","properties":{"accessDomain":{"type":"string"},"created":{"description":"Indicates the creation time.\n","type":"string"},"creatorId":{"description":"Username ID of the domain creator.\n","type":"string"},"creatorName":{"description":"Username of the domain creator.\n","type":"string"},"deadline":{"description":"End date of image sharing (UTC).\n","type":"string"},"description":{"description":"Specifies SWR domain description.\n","type":"string"},"id":{"type":"string"},"organization":{"type":"string"},"permission":{"description":"Permission to be granted.\n","type":"string"},"repository":{"type":"string"},"status":{"description":"Indicates the domain is valid (<span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>) or expired (<span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>).\n","type":"boolean"},"updated":{"description":"Indicates the domain when was last updated.\n","type":"string"}},"required":["accessDomain","created","creatorId","creatorName","deadline","description","id","organization","permission","repository","status","updated"],"type":"object"}},"opentelekomcloud:index/getSwrDomainsV2:getSwrDomainsV2":{"description":"Up-to-date reference of API arguments for SWR domain you can get at\n[documentation portal](https://docs.otc.t-systems.com/software-repository-container/api-ref/api)\n\nGet list of SWR image sharing domains within Open Telekom Cloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst orgName = config.requireObject<any>(\"orgName\");\nconst repoName = config.requireObject<any>(\"repoName\");\nconst domains = opentelekomcloud.getSwrDomainsV2({\n    organization: orgName,\n    repository: repoName,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\norg_name = config.require_object(\"orgName\")\nrepo_name = config.require_object(\"repoName\")\ndomains = opentelekomcloud.get_swr_domains_v2(organization=org_name,\n    repository=repo_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var orgName = config.RequireObject<dynamic>(\"orgName\");\n    var repoName = config.RequireObject<dynamic>(\"repoName\");\n    var domains = Opentelekomcloud.GetSwrDomainsV2.Invoke(new()\n    {\n        Organization = orgName,\n        Repository = repoName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\torgName := cfg.RequireObject(\"orgName\")\n\t\trepoName := cfg.RequireObject(\"repoName\")\n\t\t_, err := opentelekomcloud.GetSwrDomainsV2(ctx, &opentelekomcloud.GetSwrDomainsV2Args{\n\t\t\tOrganization: orgName,\n\t\t\tRepository:   repoName,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetSwrDomainsV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var orgName = config.get(\"orgName\");\n        final var repoName = config.get(\"repoName\");\n        final var domains = OpentelekomcloudFunctions.getSwrDomainsV2(GetSwrDomainsV2Args.builder()\n            .organization(orgName)\n            .repository(repoName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  orgName:\n    type: dynamic\n  repoName:\n    type: dynamic\nvariables:\n  domains:\n    fn::invoke:\n      function: opentelekomcloud:getSwrDomainsV2\n      arguments:\n        organization: ${orgName}\n        repository: ${repoName}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getSwrDomainsV2.\n","properties":{"id":{"type":"string"},"organization":{"description":"The name of the repository organization.\n","type":"string"},"repository":{"description":"The name of the repository.\n","type":"string"}},"required":["organization","repository"],"type":"object"},"outputs":{"description":"A collection of values returned by getSwrDomainsV2.\n","properties":{"accessDomains":{"description":"The list of the access domains. The structure is documented below:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetSwrDomainsV2AccessDomain:getSwrDomainsV2AccessDomain"},"type":"array"},"id":{"type":"string"},"organization":{"type":"string"},"repository":{"type":"string"}},"required":["accessDomains","id","organization","repository"],"type":"object"}},"opentelekomcloud:index/getSwrOrganizationV2:getSwrOrganizationV2":{"description":"Up-to-date reference of API arguments for SWR organization you can get at\n[documentation portal](https://docs.otc.t-systems.com/software-repository-container/api-ref/api)\n\nGet details of SWR organizations within Open Telekom Cloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst org1 = opentelekomcloud.getSwrOrganizationV2({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\norg1 = opentelekomcloud.get_swr_organization_v2()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var org1 = Opentelekomcloud.GetSwrOrganizationV2.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupSwrOrganizationV2(ctx, &opentelekomcloud.LookupSwrOrganizationV2Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetSwrOrganizationV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var org1 = OpentelekomcloudFunctions.getSwrOrganizationV2(GetSwrOrganizationV2Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  org1:\n    fn::invoke:\n      function: opentelekomcloud:getSwrOrganizationV2\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getSwrOrganizationV2.\n","properties":{"id":{"type":"string"},"name":{"description":"The name of the SWR organization. Use this to filter organizations list.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSwrOrganizationV2.\n","properties":{"id":{"type":"string"},"name":{"description":"Organization name.\n","type":"string"},"organizations":{"description":"List of organizations. The structure is documented below:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetSwrOrganizationV2Organization:getSwrOrganizationV2Organization"},"type":"array"}},"required":["id","organizations"],"type":"object"}},"opentelekomcloud:index/getSwrPolicyV2:getSwrPolicyV2":{"description":"Up-to-date reference of API arguments for SWR image retention policy you can get at\n[documentation portal](https://docs.otc.t-systems.com/software-repository-container/api-ref/apis/image_retention_policy_management/index.html#swr-02-0094)\n\nGet details of an SWR image retention policy resource within Open Telekom Cloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst orgName = config.requireObject<any>(\"orgName\");\nconst repoName = config.requireObject<any>(\"repoName\");\nconst policyId = config.requireObject<any>(\"policyId\");\nconst policy1 = opentelekomcloud.getSwrPolicyV2({\n    organization: orgName,\n    repository: repoName,\n    policyId: policyId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\norg_name = config.require_object(\"orgName\")\nrepo_name = config.require_object(\"repoName\")\npolicy_id = config.require_object(\"policyId\")\npolicy1 = opentelekomcloud.get_swr_policy_v2(organization=org_name,\n    repository=repo_name,\n    policy_id=policy_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var orgName = config.RequireObject<dynamic>(\"orgName\");\n    var repoName = config.RequireObject<dynamic>(\"repoName\");\n    var policyId = config.RequireObject<dynamic>(\"policyId\");\n    var policy1 = Opentelekomcloud.GetSwrPolicyV2.Invoke(new()\n    {\n        Organization = orgName,\n        Repository = repoName,\n        PolicyId = policyId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\torgName := cfg.RequireObject(\"orgName\")\n\t\trepoName := cfg.RequireObject(\"repoName\")\n\t\tpolicyId := cfg.RequireObject(\"policyId\")\n\t\t_, err := opentelekomcloud.LookupSwrPolicyV2(ctx, &opentelekomcloud.LookupSwrPolicyV2Args{\n\t\t\tOrganization: orgName,\n\t\t\tRepository:   repoName,\n\t\t\tPolicyId:     policyId,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetSwrPolicyV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var orgName = config.get(\"orgName\");\n        final var repoName = config.get(\"repoName\");\n        final var policyId = config.get(\"policyId\");\n        final var policy1 = OpentelekomcloudFunctions.getSwrPolicyV2(GetSwrPolicyV2Args.builder()\n            .organization(orgName)\n            .repository(repoName)\n            .policyId(policyId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  orgName:\n    type: dynamic\n  repoName:\n    type: dynamic\n  policyId:\n    type: dynamic\nvariables:\n  policy1:\n    fn::invoke:\n      function: opentelekomcloud:getSwrPolicyV2\n      arguments:\n        organization: ${orgName}\n        repository: ${repoName}\n        policyId: ${policyId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getSwrPolicyV2.\n","properties":{"id":{"type":"string"},"organization":{"description":"Specifies the name of the repository organization.\n","type":"string"},"policyId":{"description":"Specifies the ID of the SWR policy.\n","type":"string"},"repository":{"description":"Specifies the name of the image repository.\n","type":"string"}},"required":["organization","policyId","repository"],"type":"object"},"outputs":{"description":"A collection of values returned by getSwrPolicyV2.\n","properties":{"algorithm":{"description":"The image retention policy matching rule.\n","type":"string"},"id":{"type":"string"},"organization":{"type":"string"},"policyId":{"type":"string"},"repository":{"type":"string"},"rules":{"description":"The image retention policy. The rules structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetSwrPolicyV2Rule:getSwrPolicyV2Rule"},"type":"array"},"scope":{"type":"string"}},"required":["algorithm","id","organization","policyId","repository","rules","scope"],"type":"object"}},"opentelekomcloud:index/getSwrRepositoryV2:getSwrRepositoryV2":{"description":"Up-to-date reference of API arguments for SWR repository you can get at\n[documentation portal](https://docs.otc.t-systems.com/software-repository-container/api-ref/api)\n\nGet details of SWR repositories within Open Telekom Cloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst repo1 = opentelekomcloud.getSwrRepositoryV2({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nrepo1 = opentelekomcloud.get_swr_repository_v2()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var repo1 = Opentelekomcloud.GetSwrRepositoryV2.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupSwrRepositoryV2(ctx, &opentelekomcloud.LookupSwrRepositoryV2Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetSwrRepositoryV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var repo1 = OpentelekomcloudFunctions.getSwrRepositoryV2(GetSwrRepositoryV2Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  repo1:\n    fn::invoke:\n      function: opentelekomcloud:getSwrRepositoryV2\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getSwrRepositoryV2.\n","properties":{"id":{"type":"string"},"name":{"description":"Specify the name of the repository. Use this to filter repositories list.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSwrRepositoryV2.\n","properties":{"id":{"type":"string"},"name":{"description":"The name of the repository.\n","type":"string"},"repositories":{"description":"List of repositories. The structure is documented below:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetSwrRepositoryV2Repository:getSwrRepositoryV2Repository"},"type":"array"}},"required":["id","repositories"],"type":"object"}},"opentelekomcloud:index/getTaurusdbMysqlBackupsV3:getTaurusdbMysqlBackupsV3":{"description":"Use this data source to get the list of TaurusDB MySQL backups.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst test = opentelekomcloud.getTaurusdbMysqlBackupsV3({\n    instanceId: instanceId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ntest = opentelekomcloud.get_taurusdb_mysql_backups_v3(instance_id=instance_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var test = Opentelekomcloud.GetTaurusdbMysqlBackupsV3.Invoke(new()\n    {\n        InstanceId = instanceId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\t_, err := opentelekomcloud.GetTaurusdbMysqlBackupsV3(ctx, &opentelekomcloud.GetTaurusdbMysqlBackupsV3Args{\n\t\t\tInstanceId: pulumi.StringRef(instanceId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetTaurusdbMysqlBackupsV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var test = OpentelekomcloudFunctions.getTaurusdbMysqlBackupsV3(GetTaurusdbMysqlBackupsV3Args.builder()\n            .instanceId(instanceId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getTaurusdbMysqlBackupsV3\n      arguments:\n        instanceId: ${instanceId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getTaurusdbMysqlBackupsV3.\n","properties":{"backupId":{"description":"Specifies the ID of the backup.\n","type":"string"},"backupType":{"description":"Specifies the backup type.\nValue options:\n+ **auto**: automated full backup.\n+ **manual**: manual full backup.\n","type":"string"},"beginTime":{"description":"Specifies the backup start time.\nThe format is **yyyy-mm-ddThh:mm:ssZ**.\n","type":"string"},"endTime":{"description":"Specifies the backup end time.\nThe format is **yyyy-mm-ddThh:mm:ssZ**.\nThe end time must be later than the start time.\n","type":"string"},"id":{"description":"Indicates the ID of the backup.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the TaurusDB MySQL instance.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getTaurusdbMysqlBackupsV3.\n","properties":{"backupId":{"type":"string"},"backupType":{"type":"string"},"backups":{"description":"Indicates the list of backups.\nThe backups structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetTaurusdbMysqlBackupsV3Backup:getTaurusdbMysqlBackupsV3Backup"},"type":"array"},"beginTime":{"description":"Indicates the backup start time in the **yyyy-mm-ddThh:mm:ssZ** format.\n","type":"string"},"endTime":{"description":"Indicates the backup end time in the **yyyy-mm-ddThh:mm:ssZ** format.\n","type":"string"},"id":{"description":"Indicates the ID of the backup.\n","type":"string"},"instanceId":{"description":"Indicates the ID of the TaurusDB MySQL instance.\n","type":"string"}},"required":["backups","id"],"type":"object"}},"opentelekomcloud:index/getTaurusdbMysqlConfigurationV3:getTaurusdbMysqlConfigurationV3":{"description":"Use this data source to get available OpenTelekomCloud TaurusDB MySQL configuration.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst _this = opentelekomcloud.getTaurusdbMysqlConfigurationV3({\n    name: \"Default-TaurusDB V2.0\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nthis = opentelekomcloud.get_taurusdb_mysql_configuration_v3(name=\"Default-TaurusDB V2.0\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var @this = Opentelekomcloud.GetTaurusdbMysqlConfigurationV3.Invoke(new()\n    {\n        Name = \"Default-TaurusDB V2.0\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetTaurusdbMysqlConfigurationV3(ctx, &opentelekomcloud.GetTaurusdbMysqlConfigurationV3Args{\n\t\t\tName: pulumi.StringRef(\"Default-TaurusDB V2.0\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetTaurusdbMysqlConfigurationV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var this = OpentelekomcloudFunctions.getTaurusdbMysqlConfigurationV3(GetTaurusdbMysqlConfigurationV3Args.builder()\n            .name(\"Default-TaurusDB V2.0\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  this:\n    fn::invoke:\n      function: opentelekomcloud:getTaurusdbMysqlConfigurationV3\n      arguments:\n        name: Default-TaurusDB V2.0\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getTaurusdbMysqlConfigurationV3.\n","properties":{"id":{"description":"Indicates the ID of the configuration.\n","type":"string"},"name":{"description":"Specifies the name of the parameter template.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getTaurusdbMysqlConfigurationV3.\n","properties":{"datastoreName":{"description":"Indicates the datastore name of the configuration.\n","type":"string"},"datastoreVersion":{"description":"Indicates the datastore version of the configuration.\n","type":"string"},"description":{"description":"Indicates the description of the configuration.\n","type":"string"},"id":{"description":"Indicates the ID of the configuration.\n","type":"string"},"name":{"type":"string"},"region":{"description":"Indicates the region of the configuration.\n","type":"string"}},"required":["datastoreName","datastoreVersion","description","id","name","region"],"type":"object"}},"opentelekomcloud:index/getTaurusdbMysqlConfigurationsV3:getTaurusdbMysqlConfigurationsV3":{"description":"Use this data source to get the list of parameter templates.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = opentelekomcloud.getTaurusdbMysqlConfigurationsV3({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.get_taurusdb_mysql_configurations_v3()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = Opentelekomcloud.GetTaurusdbMysqlConfigurationsV3.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetTaurusdbMysqlConfigurationsV3(ctx, &opentelekomcloud.GetTaurusdbMysqlConfigurationsV3Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetTaurusdbMysqlConfigurationsV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = OpentelekomcloudFunctions.getTaurusdbMysqlConfigurationsV3(GetTaurusdbMysqlConfigurationsV3Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getTaurusdbMysqlConfigurationsV3\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getTaurusdbMysqlConfigurationsV3.\n","properties":{"id":{"description":"Indicates the ID of the parameter template.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getTaurusdbMysqlConfigurationsV3.\n","properties":{"configurations":{"description":"Indicates the list of parameter templates.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetTaurusdbMysqlConfigurationsV3Configuration:getTaurusdbMysqlConfigurationsV3Configuration"},"type":"array"},"id":{"description":"Indicates the ID of the parameter template.\n","type":"string"},"region":{"description":"The data source region.\n","type":"string"}},"required":["configurations","id","region"],"type":"object"}},"opentelekomcloud:index/getTaurusdbMysqlEngineVersionsV3:getTaurusdbMysqlEngineVersionsV3":{"description":"Use this data source to get the database specifications of a specified DB engine.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = opentelekomcloud.getTaurusdbMysqlEngineVersionsV3({\n    databaseName: \"gaussdb-mysql\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.get_taurusdb_mysql_engine_versions_v3(database_name=\"gaussdb-mysql\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = Opentelekomcloud.GetTaurusdbMysqlEngineVersionsV3.Invoke(new()\n    {\n        DatabaseName = \"gaussdb-mysql\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetTaurusdbMysqlEngineVersionsV3(ctx, &opentelekomcloud.GetTaurusdbMysqlEngineVersionsV3Args{\n\t\t\tDatabaseName: \"gaussdb-mysql\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetTaurusdbMysqlEngineVersionsV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = OpentelekomcloudFunctions.getTaurusdbMysqlEngineVersionsV3(GetTaurusdbMysqlEngineVersionsV3Args.builder()\n            .databaseName(\"gaussdb-mysql\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getTaurusdbMysqlEngineVersionsV3\n      arguments:\n        databaseName: gaussdb-mysql\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getTaurusdbMysqlEngineVersionsV3.\n","properties":{"databaseName":{"description":"Specifies the DB engine.\nValue options: **gaussdb-mysql**.\n","type":"string"},"id":{"description":"Indicates the DB version ID.\n","type":"string"}},"required":["databaseName"],"type":"object"},"outputs":{"description":"A collection of values returned by getTaurusdbMysqlEngineVersionsV3.\n","properties":{"databaseName":{"type":"string"},"datastores":{"description":"Indicates the DB version list.\nThe datastores structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetTaurusdbMysqlEngineVersionsV3Datastore:getTaurusdbMysqlEngineVersionsV3Datastore"},"type":"array"},"id":{"description":"Indicates the DB version ID.\n","type":"string"},"region":{"type":"string"}},"required":["databaseName","datastores","id","region"],"type":"object"}},"opentelekomcloud:index/getTaurusdbMysqlErrorLogsV3:getTaurusdbMysqlErrorLogsV3":{"description":"Use this data source to get the list of TaurusDB MySQL error logs.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst nodeId = config.requireObject<any>(\"nodeId\");\nconst startTime = config.requireObject<any>(\"startTime\");\nconst endTime = config.requireObject<any>(\"endTime\");\nconst test = opentelekomcloud.getTaurusdbMysqlErrorLogsV3({\n    instanceId: instanceId,\n    nodeId: nodeId,\n    startTime: startTime,\n    endTime: endTime,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nnode_id = config.require_object(\"nodeId\")\nstart_time = config.require_object(\"startTime\")\nend_time = config.require_object(\"endTime\")\ntest = opentelekomcloud.get_taurusdb_mysql_error_logs_v3(instance_id=instance_id,\n    node_id=node_id,\n    start_time=start_time,\n    end_time=end_time)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var nodeId = config.RequireObject<dynamic>(\"nodeId\");\n    var startTime = config.RequireObject<dynamic>(\"startTime\");\n    var endTime = config.RequireObject<dynamic>(\"endTime\");\n    var test = Opentelekomcloud.GetTaurusdbMysqlErrorLogsV3.Invoke(new()\n    {\n        InstanceId = instanceId,\n        NodeId = nodeId,\n        StartTime = startTime,\n        EndTime = endTime,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tnodeId := cfg.RequireObject(\"nodeId\")\n\t\tstartTime := cfg.RequireObject(\"startTime\")\n\t\tendTime := cfg.RequireObject(\"endTime\")\n\t\t_, err := opentelekomcloud.GetTaurusdbMysqlErrorLogsV3(ctx, &opentelekomcloud.GetTaurusdbMysqlErrorLogsV3Args{\n\t\t\tInstanceId: instanceId,\n\t\t\tNodeId:     nodeId,\n\t\t\tStartTime:  startTime,\n\t\t\tEndTime:    endTime,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetTaurusdbMysqlErrorLogsV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var nodeId = config.get(\"nodeId\");\n        final var startTime = config.get(\"startTime\");\n        final var endTime = config.get(\"endTime\");\n        final var test = OpentelekomcloudFunctions.getTaurusdbMysqlErrorLogsV3(GetTaurusdbMysqlErrorLogsV3Args.builder()\n            .instanceId(instanceId)\n            .nodeId(nodeId)\n            .startTime(startTime)\n            .endTime(endTime)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  nodeId:\n    type: dynamic\n  startTime:\n    type: dynamic\n  endTime:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getTaurusdbMysqlErrorLogsV3\n      arguments:\n        instanceId: ${instanceId}\n        nodeId: ${nodeId}\n        startTime: ${startTime}\n        endTime: ${endTime}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getTaurusdbMysqlErrorLogsV3.\n","properties":{"endTime":{"description":"Specifies the end time in the **yyyy-mm-ddThh:mm:ssZ** format.\n","type":"string"},"id":{"description":"The data source ID.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the TaurusDB MySQL instance.\n","type":"string"},"level":{"description":"Specifies the log level.\n","type":"string"},"nodeId":{"description":"Specifies the ID of the TaurusDB MySQL instance node.\n","type":"string"},"startTime":{"description":"Specifies the start time in the **yyyy-mm-ddThh:mm:ssZ** format.\n","type":"string"}},"required":["endTime","instanceId","nodeId","startTime"],"type":"object"},"outputs":{"description":"A collection of values returned by getTaurusdbMysqlErrorLogsV3.\n","properties":{"endTime":{"type":"string"},"errorLogLists":{"description":"Indicates the list of the error logs.\nThe<span pulumi-lang-nodejs=\" errorLogList \" pulumi-lang-dotnet=\" ErrorLogList \" pulumi-lang-go=\" errorLogList \" pulumi-lang-python=\" error_log_list \" pulumi-lang-yaml=\" errorLogList \" pulumi-lang-java=\" errorLogList \"> error_log_list </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetTaurusdbMysqlErrorLogsV3ErrorLogList:getTaurusdbMysqlErrorLogsV3ErrorLogList"},"type":"array"},"id":{"description":"The data source ID.\n","type":"string"},"instanceId":{"type":"string"},"level":{"description":"Indicates the error log level.\n","type":"string"},"nodeId":{"description":"Indicates the ID of the TaurusDB MySQL instance node.\n","type":"string"},"region":{"description":"The data source region.\n","type":"string"},"startTime":{"type":"string"}},"required":["endTime","errorLogLists","id","instanceId","nodeId","region","startTime"],"type":"object"}},"opentelekomcloud:index/getTaurusdbMysqlFlavorsV3:getTaurusdbMysqlFlavorsV3":{"description":"Use this data source to get available OpenTelekomCloud TaurusDB MySQL flavors.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst flavors = opentelekomcloud.getTaurusdbMysqlFlavorsV3({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nflavors = opentelekomcloud.get_taurusdb_mysql_flavors_v3()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var flavors = Opentelekomcloud.GetTaurusdbMysqlFlavorsV3.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetTaurusdbMysqlFlavorsV3(ctx, &opentelekomcloud.GetTaurusdbMysqlFlavorsV3Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetTaurusdbMysqlFlavorsV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var flavors = OpentelekomcloudFunctions.getTaurusdbMysqlFlavorsV3(GetTaurusdbMysqlFlavorsV3Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  flavors:\n    fn::invoke:\n      function: opentelekomcloud:getTaurusdbMysqlFlavorsV3\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getTaurusdbMysqlFlavorsV3.\n","properties":{"availabilityZoneMode":{"description":"Specifies the availability zone mode. Currently supports **single** and **multi**. Defaults to **single**.\n","type":"string"},"engine":{"description":"Specifies the database engine. Only **gaussdb-mysql** is supported now.\n","type":"string"},"id":{"description":"The data source ID.\n","type":"string"},"version":{"description":"Specifies the database version. Only **8.0** is supported now.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getTaurusdbMysqlFlavorsV3.\n","properties":{"availabilityZoneMode":{"type":"string"},"engine":{"type":"string"},"flavors":{"description":"Indicates the flavors information.\nThe flavors structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetTaurusdbMysqlFlavorsV3Flavor:getTaurusdbMysqlFlavorsV3Flavor"},"type":"array"},"id":{"description":"The data source ID.\n","type":"string"},"region":{"description":"The region in which flavors are obtained.\n","type":"string"},"version":{"description":"Indicates the database version.\n","type":"string"}},"required":["flavors","id","region"],"type":"object"}},"opentelekomcloud:index/getTaurusdbMysqlInstanceV3:getTaurusdbMysqlInstanceV3":{"description":"Use this data source to get available OpenTelekomCloud TaurusDB MySQL instance.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst _this = opentelekomcloud.getTaurusdbMysqlInstanceV3({\n    name: \"taurusdb-instance\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nthis = opentelekomcloud.get_taurusdb_mysql_instance_v3(name=\"taurusdb-instance\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var @this = Opentelekomcloud.GetTaurusdbMysqlInstanceV3.Invoke(new()\n    {\n        Name = \"taurusdb-instance\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupTaurusdbMysqlInstanceV3(ctx, &opentelekomcloud.LookupTaurusdbMysqlInstanceV3Args{\n\t\t\tName: pulumi.StringRef(\"taurusdb-instance\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetTaurusdbMysqlInstanceV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var this = OpentelekomcloudFunctions.getTaurusdbMysqlInstanceV3(GetTaurusdbMysqlInstanceV3Args.builder()\n            .name(\"taurusdb-instance\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  this:\n    fn::invoke:\n      function: opentelekomcloud:getTaurusdbMysqlInstanceV3\n      arguments:\n        name: taurusdb-instance\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getTaurusdbMysqlInstanceV3.\n","properties":{"id":{"description":"Indicates the node ID.\n","type":"string"},"name":{"description":"Specifies the name of the instance.\n","type":"string"},"region":{"description":"Indicates the instance region.\n","type":"string"},"subnetId":{"description":"Specifies the network ID of a subnet.\n","type":"string"},"vpcId":{"description":"Specifies the VPC ID.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getTaurusdbMysqlInstanceV3.\n","properties":{"availabilityZoneMode":{"description":"Indicates the availability zone mode: **single** or **multi**.\n","type":"string"},"backupStrategies":{"description":"Indicates the advanced backup policy.\nThe<span pulumi-lang-nodejs=\" backupStrategy \" pulumi-lang-dotnet=\" BackupStrategy \" pulumi-lang-go=\" backupStrategy \" pulumi-lang-python=\" backup_strategy \" pulumi-lang-yaml=\" backupStrategy \" pulumi-lang-java=\" backupStrategy \"> backup_strategy </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetTaurusdbMysqlInstanceV3BackupStrategy:getTaurusdbMysqlInstanceV3BackupStrategy"},"type":"array"},"configurationId":{"description":"Indicates the configuration ID.\n","type":"string"},"datastores":{"description":"Indicates the database information.\nThe datastore structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetTaurusdbMysqlInstanceV3Datastore:getTaurusdbMysqlInstanceV3Datastore"},"type":"array"},"dbUserName":{"description":"Indicates the default username.\n","type":"string"},"flavor":{"description":"Indicates the instance specifications.\n","type":"string"},"id":{"description":"Indicates the node ID.\n","type":"string"},"masterAvailabilityZone":{"description":"Indicates the availability zone where the master node resides.\n","type":"string"},"mode":{"description":"Indicates the instance mode.\n","type":"string"},"name":{"description":"Indicates the node name.\n","type":"string"},"nodes":{"description":"Indicates the instance nodes information.\nThe nodes structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetTaurusdbMysqlInstanceV3Node:getTaurusdbMysqlInstanceV3Node"},"type":"array"},"port":{"description":"Indicates the database port.\n","type":"number"},"privateWriteIp":{"description":"Indicates the private IP address of the DB instance.\n","type":"string"},"readReplicas":{"description":"Indicates the count of read replicas.\n","type":"number"},"region":{"description":"Indicates the instance region.\n","type":"string"},"securityGroupId":{"description":"Indicates the security group ID.\n","type":"string"},"status":{"description":"Indicates the node status.\n","type":"string"},"subnetId":{"type":"string"},"timeZone":{"description":"Indicates the time zone.\n","type":"string"},"vpcId":{"type":"string"}},"required":["availabilityZoneMode","backupStrategies","configurationId","datastores","dbUserName","flavor","id","masterAvailabilityZone","mode","name","nodes","port","privateWriteIp","readReplicas","region","securityGroupId","status","subnetId","timeZone","vpcId"],"type":"object"}},"opentelekomcloud:index/getTaurusdbMysqlProjectQuotasV3:getTaurusdbMysqlProjectQuotasV3":{"description":"Use this data source to get the project quotas of a specified tenant.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = opentelekomcloud.getTaurusdbMysqlProjectQuotasV3({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.get_taurusdb_mysql_project_quotas_v3()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = Opentelekomcloud.GetTaurusdbMysqlProjectQuotasV3.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetTaurusdbMysqlProjectQuotasV3(ctx, &opentelekomcloud.GetTaurusdbMysqlProjectQuotasV3Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetTaurusdbMysqlProjectQuotasV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = OpentelekomcloudFunctions.getTaurusdbMysqlProjectQuotasV3(GetTaurusdbMysqlProjectQuotasV3Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getTaurusdbMysqlProjectQuotasV3\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getTaurusdbMysqlProjectQuotasV3.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"},"type":{"description":"Specifies the resource type used to filter quotas. Value options: **instance**.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getTaurusdbMysqlProjectQuotasV3.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"},"quotas":{"description":"Indicates the tenant instance quota information.\nThe quotas structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetTaurusdbMysqlProjectQuotasV3Quota:getTaurusdbMysqlProjectQuotasV3Quota"},"type":"array"},"region":{"description":"The data source region.\n","type":"string"},"type":{"description":"Indicates the quota of the specified type.\n","type":"string"}},"required":["id","quotas","region"],"type":"object"}},"opentelekomcloud:index/getTaurusdbMysqlProxiesV3:getTaurusdbMysqlProxiesV3":{"description":"Use this data source to get the list of TaurusDB MySQL proxies.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst test = opentelekomcloud.getTaurusdbMysqlProxiesV3({\n    instanceId: instanceId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ntest = opentelekomcloud.get_taurusdb_mysql_proxies_v3(instance_id=instance_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var test = Opentelekomcloud.GetTaurusdbMysqlProxiesV3.Invoke(new()\n    {\n        InstanceId = instanceId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\t_, err := opentelekomcloud.GetTaurusdbMysqlProxiesV3(ctx, &opentelekomcloud.GetTaurusdbMysqlProxiesV3Args{\n\t\t\tInstanceId: instanceId,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetTaurusdbMysqlProxiesV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var test = OpentelekomcloudFunctions.getTaurusdbMysqlProxiesV3(GetTaurusdbMysqlProxiesV3Args.builder()\n            .instanceId(instanceId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getTaurusdbMysqlProxiesV3\n      arguments:\n        instanceId: ${instanceId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getTaurusdbMysqlProxiesV3.\n","properties":{"id":{"description":"Indicates the node ID.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the TaurusDB MySQL instance.\n","type":"string"}},"required":["instanceId"],"type":"object"},"outputs":{"description":"A collection of values returned by getTaurusdbMysqlProxiesV3.\n","properties":{"id":{"description":"Indicates the node ID.\n","type":"string"},"instanceId":{"type":"string"},"proxyLists":{"description":"Indicates the list of proxies.\nThe<span pulumi-lang-nodejs=\" proxyList \" pulumi-lang-dotnet=\" ProxyList \" pulumi-lang-go=\" proxyList \" pulumi-lang-python=\" proxy_list \" pulumi-lang-yaml=\" proxyList \" pulumi-lang-java=\" proxyList \"> proxy_list </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetTaurusdbMysqlProxiesV3ProxyList:getTaurusdbMysqlProxiesV3ProxyList"},"type":"array"},"region":{"description":"The region in which to query the resource.\n","type":"string"}},"required":["id","instanceId","proxyLists","region"],"type":"object"}},"opentelekomcloud:index/getTaurusdbMysqlProxyFlavorsV3:getTaurusdbMysqlProxyFlavorsV3":{"description":"Use this data source to get the list of OpenTelekomCloud TaurusDB MySQL proxy flavors.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst test = opentelekomcloud.getTaurusdbMysqlProxyFlavorsV3({\n    instanceId: instanceId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ntest = opentelekomcloud.get_taurusdb_mysql_proxy_flavors_v3(instance_id=instance_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var test = Opentelekomcloud.GetTaurusdbMysqlProxyFlavorsV3.Invoke(new()\n    {\n        InstanceId = instanceId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\t_, err := opentelekomcloud.GetTaurusdbMysqlProxyFlavorsV3(ctx, &opentelekomcloud.GetTaurusdbMysqlProxyFlavorsV3Args{\n\t\t\tInstanceId: instanceId,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetTaurusdbMysqlProxyFlavorsV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var test = OpentelekomcloudFunctions.getTaurusdbMysqlProxyFlavorsV3(GetTaurusdbMysqlProxyFlavorsV3Args.builder()\n            .instanceId(instanceId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getTaurusdbMysqlProxyFlavorsV3\n      arguments:\n        instanceId: ${instanceId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getTaurusdbMysqlProxyFlavorsV3.\n","properties":{"id":{"description":"Indicates the ID of the proxy flavor.\n","type":"string"},"instanceId":{"description":"Specifies the ID of TaurusDB MySQL Instance.\n","type":"string"}},"required":["instanceId"],"type":"object"},"outputs":{"description":"A collection of values returned by getTaurusdbMysqlProxyFlavorsV3.\n","properties":{"flavorGroups":{"description":"Indicates the list of flavor groups.\nThe<span pulumi-lang-nodejs=\" flavorGroups \" pulumi-lang-dotnet=\" FlavorGroups \" pulumi-lang-go=\" flavorGroups \" pulumi-lang-python=\" flavor_groups \" pulumi-lang-yaml=\" flavorGroups \" pulumi-lang-java=\" flavorGroups \"> flavor_groups </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetTaurusdbMysqlProxyFlavorsV3FlavorGroup:getTaurusdbMysqlProxyFlavorsV3FlavorGroup"},"type":"array"},"id":{"description":"Indicates the ID of the proxy flavor.\n","type":"string"},"instanceId":{"type":"string"},"region":{"description":"The region in which proxy flavors are obtained.\n","type":"string"}},"required":["flavorGroups","id","instanceId","region"],"type":"object"}},"opentelekomcloud:index/getTaurusdbMysqlSlowLogsV3:getTaurusdbMysqlSlowLogsV3":{"description":"Use this data source to get the list of TaurusDB MySQL slow logs.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst nodeId = config.requireObject<any>(\"nodeId\");\nconst startDate = config.requireObject<any>(\"startDate\");\nconst endDate = config.requireObject<any>(\"endDate\");\nconst test = opentelekomcloud.getTaurusdbMysqlSlowLogsV3({\n    instanceId: instanceId,\n    nodeId: nodeId,\n    startDate: startDate,\n    endDate: endDate,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nnode_id = config.require_object(\"nodeId\")\nstart_date = config.require_object(\"startDate\")\nend_date = config.require_object(\"endDate\")\ntest = opentelekomcloud.get_taurusdb_mysql_slow_logs_v3(instance_id=instance_id,\n    node_id=node_id,\n    start_date=start_date,\n    end_date=end_date)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var nodeId = config.RequireObject<dynamic>(\"nodeId\");\n    var startDate = config.RequireObject<dynamic>(\"startDate\");\n    var endDate = config.RequireObject<dynamic>(\"endDate\");\n    var test = Opentelekomcloud.GetTaurusdbMysqlSlowLogsV3.Invoke(new()\n    {\n        InstanceId = instanceId,\n        NodeId = nodeId,\n        StartDate = startDate,\n        EndDate = endDate,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tnodeId := cfg.RequireObject(\"nodeId\")\n\t\tstartDate := cfg.RequireObject(\"startDate\")\n\t\tendDate := cfg.RequireObject(\"endDate\")\n\t\t_, err := opentelekomcloud.GetTaurusdbMysqlSlowLogsV3(ctx, &opentelekomcloud.GetTaurusdbMysqlSlowLogsV3Args{\n\t\t\tInstanceId: instanceId,\n\t\t\tNodeId:     nodeId,\n\t\t\tStartDate:  startDate,\n\t\t\tEndDate:    endDate,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetTaurusdbMysqlSlowLogsV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var nodeId = config.get(\"nodeId\");\n        final var startDate = config.get(\"startDate\");\n        final var endDate = config.get(\"endDate\");\n        final var test = OpentelekomcloudFunctions.getTaurusdbMysqlSlowLogsV3(GetTaurusdbMysqlSlowLogsV3Args.builder()\n            .instanceId(instanceId)\n            .nodeId(nodeId)\n            .startDate(startDate)\n            .endDate(endDate)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  nodeId:\n    type: dynamic\n  startDate:\n    type: dynamic\n  endDate:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getTaurusdbMysqlSlowLogsV3\n      arguments:\n        instanceId: ${instanceId}\n        nodeId: ${nodeId}\n        startDate: ${startDate}\n        endDate: ${endDate}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getTaurusdbMysqlSlowLogsV3.\n","properties":{"endDate":{"description":"Specifies the end date in the **yyyy-mm-ddThh:mm:ssZ** format.\n","type":"string"},"id":{"description":"The data source ID.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the TaurusDB MySQL instance.\n","type":"string"},"nodeId":{"description":"Specifies the ID of the TaurusDB MySQL instance node.\n","type":"string"},"startDate":{"description":"Specifies the start date in the **yyyy-mm-ddThh:mm:ssZ** format.\n","type":"string"},"type":{"description":"Specifies the SQL statement type.\n","type":"string"}},"required":["endDate","instanceId","nodeId","startDate"],"type":"object"},"outputs":{"description":"A collection of values returned by getTaurusdbMysqlSlowLogsV3.\n","properties":{"endDate":{"type":"string"},"id":{"description":"The data source ID.\n","type":"string"},"instanceId":{"type":"string"},"nodeId":{"description":"Indicates the ID of the TaurusDB MySQL instance node.\n","type":"string"},"region":{"description":"The data source region.\n","type":"string"},"slowLogLists":{"description":"Indicates the list of the slow logs.\nThe<span pulumi-lang-nodejs=\" slowLogList \" pulumi-lang-dotnet=\" SlowLogList \" pulumi-lang-go=\" slowLogList \" pulumi-lang-python=\" slow_log_list \" pulumi-lang-yaml=\" slowLogList \" pulumi-lang-java=\" slowLogList \"> slow_log_list </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetTaurusdbMysqlSlowLogsV3SlowLogList:getTaurusdbMysqlSlowLogsV3SlowLogList"},"type":"array"},"startDate":{"type":"string"},"type":{"description":"Indicates the statement type.\n","type":"string"}},"required":["endDate","id","instanceId","nodeId","region","slowLogLists","startDate"],"type":"object"}},"opentelekomcloud:index/getTmsQuotasV1:getTmsQuotasV1":{"description":"Up-to-date reference of API arguments for TMS quotas you can get at\n[documentation portal](https://docs.otc.t-systems.com/tag-management-service/api-ref/api_description/quotas/index.html)\n\nUse this data source to get the list of tag quotas within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = opentelekomcloud.getTmsQuotasV1({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.get_tms_quotas_v1()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = Opentelekomcloud.GetTmsQuotasV1.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetTmsQuotasV1(ctx, &opentelekomcloud.GetTmsQuotasV1Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetTmsQuotasV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = OpentelekomcloudFunctions.getTmsQuotasV1(GetTmsQuotasV1Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getTmsQuotasV1\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getTmsQuotasV1.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getTmsQuotasV1.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"},"quotas":{"description":"Indicates the list of quotas. The structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetTmsQuotasV1Quota:getTmsQuotasV1Quota"},"type":"array"}},"required":["id","quotas"],"type":"object"}},"opentelekomcloud:index/getTmsResourceInstancesV1:getTmsResourceInstancesV1":{"description":"Up-to-date reference of API arguments for TMS resource instances you can get at\n[documentation portal](https://docs.otc.t-systems.com/tag-management-service/api-ref/api_description/resource_tags/querying_resources_by_tag.html)\n\nUse this data source to get the list of resource instances filtered by tag within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst projectId = config.requireObject<any>(\"projectId\");\nconst tagsDs1 = opentelekomcloud.getTmsResourceInstancesV1({\n    resourceTypes: [\n        \"disk\",\n        \"ecs\",\n    ],\n    tags: [{\n        key: \"test\",\n        values: [\"test-tf-acc\"],\n    }],\n    projectId: projectId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nproject_id = config.require_object(\"projectId\")\ntags_ds1 = opentelekomcloud.get_tms_resource_instances_v1(resource_types=[\n        \"disk\",\n        \"ecs\",\n    ],\n    tags=[{\n        \"key\": \"test\",\n        \"values\": [\"test-tf-acc\"],\n    }],\n    project_id=project_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var projectId = config.RequireObject<dynamic>(\"projectId\");\n    var tagsDs1 = Opentelekomcloud.GetTmsResourceInstancesV1.Invoke(new()\n    {\n        ResourceTypes = new[]\n        {\n            \"disk\",\n            \"ecs\",\n        },\n        Tags = new[]\n        {\n            new Opentelekomcloud.Inputs.GetTmsResourceInstancesV1TagInputArgs\n            {\n                Key = \"test\",\n                Values = new[]\n                {\n                    \"test-tf-acc\",\n                },\n            },\n        },\n        ProjectId = projectId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tprojectId := cfg.RequireObject(\"projectId\")\n\t\t_, err := opentelekomcloud.GetTmsResourceInstancesV1(ctx, &opentelekomcloud.GetTmsResourceInstancesV1Args{\n\t\t\tResourceTypes: []string{\n\t\t\t\t\"disk\",\n\t\t\t\t\"ecs\",\n\t\t\t},\n\t\t\tTags: []opentelekomcloud.GetTmsResourceInstancesV1Tag{\n\t\t\t\t{\n\t\t\t\t\tKey: \"test\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"test-tf-acc\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tProjectId: pulumi.StringRef(projectId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetTmsResourceInstancesV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var projectId = config.get(\"projectId\");\n        final var tagsDs1 = OpentelekomcloudFunctions.getTmsResourceInstancesV1(GetTmsResourceInstancesV1Args.builder()\n            .resourceTypes(            \n                \"disk\",\n                \"ecs\")\n            .tags(GetTmsResourceInstancesV1TagArgs.builder()\n                .key(\"test\")\n                .values(\"test-tf-acc\")\n                .build())\n            .projectId(projectId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  projectId:\n    type: dynamic\nvariables:\n  tagsDs1:\n    fn::invoke:\n      function: opentelekomcloud:getTmsResourceInstancesV1\n      arguments:\n        resourceTypes:\n          - disk\n          - ecs\n        tags:\n          - key: test\n            values:\n              - test-tf-acc\n        projectId: ${projectId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getTmsResourceInstancesV1.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"},"projectId":{"description":"Specifies the Project ID. This parameter is mandatory when<span pulumi-lang-nodejs=\" resourceType \" pulumi-lang-dotnet=\" ResourceType \" pulumi-lang-go=\" resourceType \" pulumi-lang-python=\" resource_type \" pulumi-lang-yaml=\" resourceType \" pulumi-lang-java=\" resourceType \"> resource_type </span>is a region-specific service.\n","type":"string"},"resourceTypes":{"description":"Specifies the resource type. This parameter is case-sensitive. Supported resource types can be provided as ecs,scaling_group, images, disk,vpcs,security-groups, shared_bandwidth,eip, cdn.\n","items":{"type":"string"},"type":"array"},"tags":{"description":"Specifies the list of tags. The structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetTmsResourceInstancesV1Tag:getTmsResourceInstancesV1Tag"},"type":"array"},"withoutAnyTag":{"description":"Specifies whether to query only untagged resources. If this parameter is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>, only untagged resources are queried.\n","type":"boolean"}},"required":["resourceTypes","tags"],"type":"object"},"outputs":{"description":"A collection of values returned by getTmsResourceInstancesV1.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"},"projectId":{"description":"Indicates the project ID.\n","type":"string"},"resourceTypes":{"items":{"type":"string"},"type":"array"},"resources":{"description":"Indicates the list of resources. The structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetTmsResourceInstancesV1Resource:getTmsResourceInstancesV1Resource"},"type":"array"},"tags":{"description":"Indicates the resource tags.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetTmsResourceInstancesV1Tag:getTmsResourceInstancesV1Tag"},"type":"array"},"withoutAnyTag":{"type":"boolean"}},"required":["id","resourceTypes","resources","tags"],"type":"object"}},"opentelekomcloud:index/getTmsResourceTagKeysV1:getTmsResourceTagKeysV1":{"description":"Use this data source to get the list of tag keys.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = opentelekomcloud.getTmsResourceTagKeysV1({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.get_tms_resource_tag_keys_v1()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = Opentelekomcloud.GetTmsResourceTagKeysV1.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetTmsResourceTagKeysV1(ctx, &opentelekomcloud.GetTmsResourceTagKeysV1Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetTmsResourceTagKeysV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = OpentelekomcloudFunctions.getTmsResourceTagKeysV1(GetTmsResourceTagKeysV1Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getTmsResourceTagKeysV1\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getTmsResourceTagKeysV1.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"},"regionId":{"description":"Specifies the region ID.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getTmsResourceTagKeysV1.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"},"keys":{"description":"Indicates the tag keys.\n","items":{"type":"string"},"type":"array"},"regionId":{"type":"string"}},"required":["id","keys"],"type":"object"}},"opentelekomcloud:index/getTmsResourceTagValuesV1:getTmsResourceTagValuesV1":{"description":"Use this data source to get the list of tag values by tag key.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = opentelekomcloud.getTmsResourceTagValuesV1({\n    key: \"tag_key\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.get_tms_resource_tag_values_v1(key=\"tag_key\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = Opentelekomcloud.GetTmsResourceTagValuesV1.Invoke(new()\n    {\n        Key = \"tag_key\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetTmsResourceTagValuesV1(ctx, &opentelekomcloud.GetTmsResourceTagValuesV1Args{\n\t\t\tKey: \"tag_key\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetTmsResourceTagValuesV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = OpentelekomcloudFunctions.getTmsResourceTagValuesV1(GetTmsResourceTagValuesV1Args.builder()\n            .key(\"tag_key\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getTmsResourceTagValuesV1\n      arguments:\n        key: tag_key\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getTmsResourceTagValuesV1.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"},"key":{"description":"Specifies the tag key.\n","type":"string"},"regionId":{"description":"Specifies the region ID.\n","type":"string"}},"required":["key"],"type":"object"},"outputs":{"description":"A collection of values returned by getTmsResourceTagValuesV1.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"},"key":{"type":"string"},"regionId":{"type":"string"},"values":{"description":"Indicates the tag values.\n","items":{"type":"string"},"type":"array"}},"required":["id","key","values"],"type":"object"}},"opentelekomcloud:index/getTmsResourceTypesV1:getTmsResourceTypesV1":{"description":"Using this data source to query supported resource types information that used to manage resource tags within\nOpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst supportedRegion = config.requireObject<any>(\"supportedRegion\");\nconst test = opentelekomcloud.getTmsResourceTypesV1({\n    region: supportedRegion,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nsupported_region = config.require_object(\"supportedRegion\")\ntest = opentelekomcloud.get_tms_resource_types_v1(region=supported_region)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var supportedRegion = config.RequireObject<dynamic>(\"supportedRegion\");\n    var test = Opentelekomcloud.GetTmsResourceTypesV1.Invoke(new()\n    {\n        Region = supportedRegion,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tsupportedRegion := cfg.RequireObject(\"supportedRegion\")\n\t\t_, err := opentelekomcloud.GetTmsResourceTypesV1(ctx, &opentelekomcloud.GetTmsResourceTypesV1Args{\n\t\t\tRegion: pulumi.StringRef(supportedRegion),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetTmsResourceTypesV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var supportedRegion = config.get(\"supportedRegion\");\n        final var test = OpentelekomcloudFunctions.getTmsResourceTypesV1(GetTmsResourceTypesV1Args.builder()\n            .region(supportedRegion)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  supportedRegion:\n    type: dynamic\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getTmsResourceTypesV1\n      arguments:\n        region: ${supportedRegion}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getTmsResourceTypesV1.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"},"region":{"description":"Specifies the region name used to filter resource types information\n","type":"string"},"serviceName":{"description":"Specifies the service name used to filter resource types information.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getTmsResourceTypesV1.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"},"region":{"type":"string"},"serviceName":{"description":"The name of the service to which the resource type belong.\n","type":"string"},"types":{"description":"All resource types that match the filter parameters.\nThe types structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetTmsResourceTypesV1Type:getTmsResourceTypesV1Type"},"type":"array"}},"required":["id","types"],"type":"object"}},"opentelekomcloud:index/getTmsTagsV1:getTmsTagsV1":{"description":"Use this data source to get the list of predefined tags within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = opentelekomcloud.getTmsTagsV1({});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.get_tms_tags_v1()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = Opentelekomcloud.GetTmsTagsV1.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupTmsTagsV1(ctx, &opentelekomcloud.LookupTmsTagsV1Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetTmsTagsV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = OpentelekomcloudFunctions.getTmsTagsV1(GetTmsTagsV1Args.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getTmsTagsV1\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getTmsTagsV1.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"},"key":{"description":"Specifies the tag key. Fuzzy search is supported. Key is case-insensitive.\n","type":"string"},"value":{"description":"Specifies the tag value. Fuzzy search is supported. Value is case-insensitive.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getTmsTagsV1.\n","properties":{"id":{"description":"The data source ID.\n","type":"string"},"key":{"description":"Indicates the key of the tag.\n","type":"string"},"tags":{"description":"Indicates the list of tags.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetTmsTagsV1Tag:getTmsTagsV1Tag"},"type":"array"},"value":{"description":"Indicates the value of the tag.\n","type":"string"}},"required":["id","tags"],"type":"object"}},"opentelekomcloud:index/getVbsBackupPolicyV2:getVbsBackupPolicyV2":{"description":"Up-to-date reference of API arguments for VBS backup policy you can get at\n[documentation portal](https://docs.otc.t-systems.com/volume-backup-service/api-ref/api_description/backup_policies/querying_backup_policies.html#en-us-topic-0043410558)\n\nUse this data source to get details about a specific VBS backup policy.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst policyName = config.requireObject<any>(\"policyName\");\nconst policyId = config.requireObject<any>(\"policyId\");\nconst policies = opentelekomcloud.getVbsBackupPolicyV2({\n    name: policyName,\n    id: policyId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\npolicy_name = config.require_object(\"policyName\")\npolicy_id = config.require_object(\"policyId\")\npolicies = opentelekomcloud.get_vbs_backup_policy_v2(name=policy_name,\n    id=policy_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var policyName = config.RequireObject<dynamic>(\"policyName\");\n    var policyId = config.RequireObject<dynamic>(\"policyId\");\n    var policies = Opentelekomcloud.GetVbsBackupPolicyV2.Invoke(new()\n    {\n        Name = policyName,\n        Id = policyId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tpolicyName := cfg.RequireObject(\"policyName\")\n\t\tpolicyId := cfg.RequireObject(\"policyId\")\n\t\t_, err := opentelekomcloud.LookupVbsBackupPolicyV2(ctx, &opentelekomcloud.LookupVbsBackupPolicyV2Args{\n\t\t\tName: pulumi.StringRef(policyName),\n\t\t\tId:   pulumi.StringRef(policyId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetVbsBackupPolicyV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var policyName = config.get(\"policyName\");\n        final var policyId = config.get(\"policyId\");\n        final var policies = OpentelekomcloudFunctions.getVbsBackupPolicyV2(GetVbsBackupPolicyV2Args.builder()\n            .name(policyName)\n            .id(policyId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  policyName:\n    type: dynamic\n  policyId:\n    type: dynamic\nvariables:\n  policies:\n    fn::invoke:\n      function: opentelekomcloud:getVbsBackupPolicyV2\n      arguments:\n        name: ${policyName}\n        id: ${policyId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getVbsBackupPolicyV2.\n","properties":{"filterTags":{"description":"Represents the list of tags. Backup policy with these tags will be filtered.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetVbsBackupPolicyV2FilterTag:getVbsBackupPolicyV2FilterTag"},"type":"array"},"id":{"description":"The ID of the specific VBS backup policy to retrieve.\n","type":"string"},"name":{"description":"The name of the specific VBS backup policy to retrieve.\n","type":"string"},"policyResourceCount":{"description":"Specifies the number of volumes associated with the backup policy.\n","type":"number"},"region":{"type":"string"},"status":{"description":"The status of the specific VBS backup policy to retrieve. The values can be ON or OFF.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVbsBackupPolicyV2.\n","properties":{"filterTags":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetVbsBackupPolicyV2FilterTag:getVbsBackupPolicyV2FilterTag"},"type":"array"},"frequency":{"description":"Specifies the backup interval. The value is in the range of 1 to 14 days.\n","type":"number"},"id":{"description":"See Argument Reference above.\n","type":"string"},"name":{"description":"See Argument Reference above.\n","type":"string"},"policyResourceCount":{"description":"Specifies the number of volumes associated with the backup policy.\n","type":"number"},"region":{"type":"string"},"remainFirstBackup":{"type":"string"},"rententionNum":{"description":"Specifies number of retained backups.\n","type":"number"},"startTime":{"description":"Specifies the start time of the backup job.The value is in the HH:mm format.\n","type":"string"},"status":{"description":"See Argument Reference above.\n","type":"string"},"tags":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetVbsBackupPolicyV2Tag:getVbsBackupPolicyV2Tag"},"type":"array"}},"required":["frequency","region","remainFirstBackup","rententionNum","startTime","tags"],"type":"object"}},"opentelekomcloud:index/getVbsBackupV2:getVbsBackupV2":{"description":"Up-to-date reference of API arguments for VBS backup you can get at\n[documentation portal](https://docs.otc.t-systems.com/volume-backup-service/api-ref/api_description/vbs_backups/querying_details_about_vbs_backups_native_openstack_api.html#en-us-topic-0020237259)\n\nUse this data source to get details about a specific VBS Backup.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst backupId = config.requireObject<any>(\"backupId\");\nconst mybackup = opentelekomcloud.getVbsBackupV2({\n    id: backupId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nbackup_id = config.require_object(\"backupId\")\nmybackup = opentelekomcloud.get_vbs_backup_v2(id=backup_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var backupId = config.RequireObject<dynamic>(\"backupId\");\n    var mybackup = Opentelekomcloud.GetVbsBackupV2.Invoke(new()\n    {\n        Id = backupId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tbackupId := cfg.RequireObject(\"backupId\")\n\t\t_, err := opentelekomcloud.LookupVbsBackupV2(ctx, &opentelekomcloud.LookupVbsBackupV2Args{\n\t\t\tId: pulumi.StringRef(backupId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetVbsBackupV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var backupId = config.get(\"backupId\");\n        final var mybackup = OpentelekomcloudFunctions.getVbsBackupV2(GetVbsBackupV2Args.builder()\n            .id(backupId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  backupId:\n    type: dynamic\nvariables:\n  mybackup:\n    fn::invoke:\n      function: opentelekomcloud:getVbsBackupV2\n      arguments:\n        id: ${backupId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getVbsBackupV2.\n","properties":{"id":{"description":"The id of the vbs backup.\n","type":"string"},"name":{"description":"The name of the vbs backup.\n","type":"string"},"region":{"type":"string"},"snapshotId":{"description":"ID of the snapshot associated with the backup.\n","type":"string"},"status":{"description":"The status of the VBS backup.\n","type":"string"},"volumeId":{"description":"The source volume ID of the backup.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVbsBackupV2.\n","properties":{"availabilityZone":{"description":"The AZ where the backup resides.\n","type":"string"},"container":{"description":"The container of the backup.\n","type":"string"},"description":{"description":"The description of the vbs backup.\n","type":"string"},"id":{"type":"string"},"name":{"type":"string"},"region":{"type":"string"},"serviceMetadata":{"description":"The metadata of the vbs backup.\n","type":"string"},"shareIds":{"description":"The backup share IDs.\n","items":{"type":"string"},"type":"array"},"size":{"description":"The size of the vbs backup.\n","type":"number"},"snapshotId":{"type":"string"},"status":{"type":"string"},"toProjectIds":{"description":"IDs of projects with which the backup is shared.\n","items":{"type":"string"},"type":"array"},"volumeId":{"type":"string"}},"required":["availabilityZone","container","description","region","serviceMetadata","shareIds","size","toProjectIds"],"type":"object"}},"opentelekomcloud:index/getVpcBandwidth:getVpcBandwidth":{"description":"Up-to-date reference of API arguments for VPC shared bandwidth you can get at\n[documentation portal](https://docs.otc.t-systems.com/virtual-private-cloud/api-ref/apis/bandwidth/querying_bandwidths.html#vpc-bandwidth-0002)\n\nProvides details about a specific shared bandwidth.\n\n~>\nDeprecated, use <span pulumi-lang-nodejs=\"`opentelekomcloud.VpcBandwidthV2`\" pulumi-lang-dotnet=\"`opentelekomcloud.VpcBandwidthV2`\" pulumi-lang-go=\"`VpcBandwidthV2`\" pulumi-lang-python=\"`VpcBandwidthV2`\" pulumi-lang-yaml=\"`opentelekomcloud.VpcBandwidthV2`\" pulumi-lang-java=\"`opentelekomcloud.VpcBandwidthV2`\">`opentelekomcloud.VpcBandwidthV2`</span> data source instead\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst bandwidthName = config.requireObject<any>(\"bandwidthName\");\nconst bandwidth1 = opentelekomcloud.getVpcBandwidth({\n    name: bandwidthName,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nbandwidth_name = config.require_object(\"bandwidthName\")\nbandwidth1 = opentelekomcloud.get_vpc_bandwidth(name=bandwidth_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var bandwidthName = config.RequireObject<dynamic>(\"bandwidthName\");\n    var bandwidth1 = Opentelekomcloud.GetVpcBandwidth.Invoke(new()\n    {\n        Name = bandwidthName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tbandwidthName := cfg.RequireObject(\"bandwidthName\")\n\t\t_, err := opentelekomcloud.GetVpcBandwidth(ctx, &opentelekomcloud.GetVpcBandwidthArgs{\n\t\t\tName: bandwidthName,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetVpcBandwidthArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var bandwidthName = config.get(\"bandwidthName\");\n        final var bandwidth1 = OpentelekomcloudFunctions.getVpcBandwidth(GetVpcBandwidthArgs.builder()\n            .name(bandwidthName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  bandwidthName:\n    type: dynamic\nvariables:\n  bandwidth1:\n    fn::invoke:\n      function: opentelekomcloud:getVpcBandwidth\n      arguments:\n        name: ${bandwidthName}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getVpcBandwidth.\n","properties":{"enterpriseProjectId":{"type":"string"},"id":{"description":"ID of the Shared Bandwidth.\n","type":"string"},"name":{"description":"The name of the Shared Bandwidth to retrieve.\n","type":"string"},"region":{"description":"The region in which to obtain the bandwidth. If omitted, the provider-level region will be used.\n","type":"string"},"size":{"description":"The size of the Shared Bandwidth to retrieve. The value ranges from 5 Mbit/s to 2000 Mbit/s.\n","type":"number"}},"required":["name"],"type":"object"},"outputs":{"description":"A collection of values returned by getVpcBandwidth.\n","properties":{"bandwidthType":{"description":"Indicates the bandwidth type.\n","type":"string"},"chargeMode":{"description":"Specifies that the bandwidth is billed by bandwidth. The value can be traffic.\n","type":"string"},"enterpriseProjectId":{"type":"string"},"id":{"description":"ID of the Shared Bandwidth.\n","type":"string"},"name":{"description":"See Argument Reference above.\n","type":"string"},"region":{"type":"string"},"shareType":{"description":"Indicates whether the bandwidth is a shared or dedicated one.\n","type":"string"},"size":{"description":"See Argument Reference above.\n","type":"number"},"status":{"description":"Indicates the bandwidth status.\n","type":"string"}},"required":["bandwidthType","chargeMode","id","name","region","shareType","status"],"type":"object"}},"opentelekomcloud:index/getVpcBandwidthV2:getVpcBandwidthV2":{"description":"Provides details about a specific shared bandwidth.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst bandwidthName = config.requireObject<any>(\"bandwidthName\");\nconst bandwidth1 = opentelekomcloud.getVpcBandwidthV2({\n    name: bandwidthName,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nbandwidth_name = config.require_object(\"bandwidthName\")\nbandwidth1 = opentelekomcloud.get_vpc_bandwidth_v2(name=bandwidth_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var bandwidthName = config.RequireObject<dynamic>(\"bandwidthName\");\n    var bandwidth1 = Opentelekomcloud.GetVpcBandwidthV2.Invoke(new()\n    {\n        Name = bandwidthName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tbandwidthName := cfg.RequireObject(\"bandwidthName\")\n\t\t_, err := opentelekomcloud.LookupVpcBandwidthV2(ctx, &opentelekomcloud.LookupVpcBandwidthV2Args{\n\t\t\tName: pulumi.StringRef(bandwidthName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetVpcBandwidthV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var bandwidthName = config.get(\"bandwidthName\");\n        final var bandwidth1 = OpentelekomcloudFunctions.getVpcBandwidthV2(GetVpcBandwidthV2Args.builder()\n            .name(bandwidthName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  bandwidthName:\n    type: dynamic\nvariables:\n  bandwidth1:\n    fn::invoke:\n      function: opentelekomcloud:getVpcBandwidthV2\n      arguments:\n        name: ${bandwidthName}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getVpcBandwidthV2.\n","properties":{"id":{"description":"ID of the Shared Bandwidth.\n","type":"string"},"name":{"description":"The name of the Shared Bandwidth to retrieve.\n","type":"string"},"size":{"description":"The size of the Shared Bandwidth to retrieve.\n","type":"number"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVpcBandwidthV2.\n","properties":{"bandwidthType":{"description":"Indicates the bandwidth type.\n","type":"string"},"chargeMode":{"description":"Specifies that the bandwidth is billed by bandwidth. The value can be traffic.\n","type":"string"},"id":{"description":"ID of the Shared Bandwidth.\n","type":"string"},"name":{"description":"See Argument Reference above.\n","type":"string"},"shareType":{"description":"Indicates whether the bandwidth is a shared or dedicated one.\n","type":"string"},"size":{"description":"See Argument Reference above.\n","type":"number"},"status":{"description":"Indicates the bandwidth status.\n","type":"string"}},"required":["bandwidthType","chargeMode","id","name","shareType","size","status"],"type":"object"}},"opentelekomcloud:index/getVpcEipV1:getVpcEipV1":{"description":"Up-to-date reference of API arguments for VPC EIP you can get at\n[documentation portal](https://docs.otc.t-systems.com/virtual-private-cloud/api-ref/apis/eip/querying_eips.html#vpc-eip-0003)\n\nUse this data source to get details about a specific VPC elastic IP.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst eipV1 = opentelekomcloud.getVpcEipV1({\n    id: elasticIp,\n});\nexport const eipVpcId = eipV1.then(eipV1 => eipV1.id);\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\neip_v1 = opentelekomcloud.get_vpc_eip_v1(id=elastic_ip)\npulumi.export(\"eipVpcId\", eip_v1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var eipV1 = Opentelekomcloud.GetVpcEipV1.Invoke(new()\n    {\n        Id = elasticIp,\n    });\n\n    return new Dictionary<string, object?>\n    {\n        [\"eipVpcId\"] = eipV1.Apply(getVpcEipV1Result => getVpcEipV1Result.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\teipV1, err := opentelekomcloud.LookupVpcEipV1(ctx, &opentelekomcloud.LookupVpcEipV1Args{\n\t\t\tId: pulumi.StringRef(elasticIp),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"eipVpcId\", eipV1.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetVpcEipV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var eipV1 = OpentelekomcloudFunctions.getVpcEipV1(GetVpcEipV1Args.builder()\n            .id(elasticIp)\n            .build());\n\n        ctx.export(\"eipVpcId\", eipV1.id());\n    }\n}\n```\n```yaml\nvariables:\n  eipV1:\n    fn::invoke:\n      function: opentelekomcloud:getVpcEipV1\n      arguments:\n        id: ${elasticIp}\noutputs:\n  eipVpcId: ${eipV1.id}\n```\n<!--End PulumiCodeChooser -->\n\n## Search by name regex\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst eip = new opentelekomcloud.VpcEipV1(\"eip\", {\n    publicip: {\n        type: \"5_bgp\",\n        name: \"my_eip\",\n    },\n    bandwidth: {\n        name: \"acc-band\",\n        size: 8,\n        shareType: \"PER\",\n        chargeMode: \"traffic\",\n    },\n});\nconst byRegex = opentelekomcloud.getVpcEipV1({\n    nameRegex: \"^my_.+\",\n});\nexport const eipVpcId = byRegex.then(byRegex => byRegex.name);\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\neip = opentelekomcloud.VpcEipV1(\"eip\",\n    publicip={\n        \"type\": \"5_bgp\",\n        \"name\": \"my_eip\",\n    },\n    bandwidth={\n        \"name\": \"acc-band\",\n        \"size\": 8,\n        \"share_type\": \"PER\",\n        \"charge_mode\": \"traffic\",\n    })\nby_regex = opentelekomcloud.get_vpc_eip_v1(name_regex=\"^my_.+\")\npulumi.export(\"eipVpcId\", by_regex.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var eip = new Opentelekomcloud.VpcEipV1(\"eip\", new()\n    {\n        Publicip = new Opentelekomcloud.Inputs.VpcEipV1PublicipArgs\n        {\n            Type = \"5_bgp\",\n            Name = \"my_eip\",\n        },\n        Bandwidth = new Opentelekomcloud.Inputs.VpcEipV1BandwidthArgs\n        {\n            Name = \"acc-band\",\n            Size = 8,\n            ShareType = \"PER\",\n            ChargeMode = \"traffic\",\n        },\n    });\n\n    var byRegex = Opentelekomcloud.GetVpcEipV1.Invoke(new()\n    {\n        NameRegex = \"^my_.+\",\n    });\n\n    return new Dictionary<string, object?>\n    {\n        [\"eipVpcId\"] = byRegex.Apply(getVpcEipV1Result => getVpcEipV1Result.Name),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewVpcEipV1(ctx, \"eip\", &opentelekomcloud.VpcEipV1Args{\n\t\t\tPublicip: &opentelekomcloud.VpcEipV1PublicipArgs{\n\t\t\t\tType: pulumi.String(\"5_bgp\"),\n\t\t\t\tName: pulumi.String(\"my_eip\"),\n\t\t\t},\n\t\t\tBandwidth: &opentelekomcloud.VpcEipV1BandwidthArgs{\n\t\t\t\tName:       pulumi.String(\"acc-band\"),\n\t\t\t\tSize:       pulumi.Float64(8),\n\t\t\t\tShareType:  pulumi.String(\"PER\"),\n\t\t\t\tChargeMode: pulumi.String(\"traffic\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbyRegex, err := opentelekomcloud.LookupVpcEipV1(ctx, &opentelekomcloud.LookupVpcEipV1Args{\n\t\t\tNameRegex: pulumi.StringRef(\"^my_.+\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"eipVpcId\", byRegex.Name)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.VpcEipV1;\nimport com.pulumi.opentelekomcloud.VpcEipV1Args;\nimport com.pulumi.opentelekomcloud.inputs.VpcEipV1PublicipArgs;\nimport com.pulumi.opentelekomcloud.inputs.VpcEipV1BandwidthArgs;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetVpcEipV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var eip = new VpcEipV1(\"eip\", VpcEipV1Args.builder()\n            .publicip(VpcEipV1PublicipArgs.builder()\n                .type(\"5_bgp\")\n                .name(\"my_eip\")\n                .build())\n            .bandwidth(VpcEipV1BandwidthArgs.builder()\n                .name(\"acc-band\")\n                .size(8.0)\n                .shareType(\"PER\")\n                .chargeMode(\"traffic\")\n                .build())\n            .build());\n\n        final var byRegex = OpentelekomcloudFunctions.getVpcEipV1(GetVpcEipV1Args.builder()\n            .nameRegex(\"^my_.+\")\n            .build());\n\n        ctx.export(\"eipVpcId\", byRegex.name());\n    }\n}\n```\n```yaml\nresources:\n  eip:\n    type: opentelekomcloud:VpcEipV1\n    properties:\n      publicip:\n        type: 5_bgp\n        name: my_eip\n      bandwidth:\n        name: acc-band\n        size: 8\n        shareType: PER\n        chargeMode: traffic\nvariables:\n  byRegex:\n    fn::invoke:\n      function: opentelekomcloud:getVpcEipV1\n      arguments:\n        nameRegex: ^my_.+\noutputs:\n  eipVpcId: ${byRegex.name}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getVpcEipV1.\n","properties":{"bandwidthId":{"description":"The bandwidth ID of specific elastic IP.\n","type":"string"},"id":{"description":"Specifies a resource ID in UUID format.\n","type":"string"},"nameRegex":{"description":"A regex string to apply to the eip list. This allows more advanced filtering.\n","type":"string"},"portId":{"description":"The port ID.\n\n> <span pulumi-lang-nodejs=\"`privateIpAddress`\" pulumi-lang-dotnet=\"`PrivateIpAddress`\" pulumi-lang-go=\"`privateIpAddress`\" pulumi-lang-python=\"`private_ip_address`\" pulumi-lang-yaml=\"`privateIpAddress`\" pulumi-lang-java=\"`privateIpAddress`\">`private_ip_address`</span> and <span pulumi-lang-nodejs=\"`portId`\" pulumi-lang-dotnet=\"`PortId`\" pulumi-lang-go=\"`portId`\" pulumi-lang-python=\"`port_id`\" pulumi-lang-yaml=\"`portId`\" pulumi-lang-java=\"`portId`\">`port_id`</span> are returned only when a port/private IP address is\nassociated with the elastic IP.\n","type":"string"},"privateIpAddress":{"description":"The private IP address bound to the elastic IP.\n","type":"string"},"publicIpAddress":{"description":"The public IP address of the elastic IP.\n","type":"string"},"region":{"type":"string"},"status":{"description":"The status of the specific elastic IP to retrieve.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to filter the elastic IPs.\n","type":"object"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVpcEipV1.\n","properties":{"bandwidthId":{"type":"string"},"bandwidthShareType":{"description":"Specifies the EIP bandwidth type.\n","type":"string"},"bandwidthSize":{"description":"Specifies the bandwidth (Mbit/s).\n","type":"number"},"createTime":{"description":"Specifies the time (UTC) when the elastic IP is assigned.\n","type":"string"},"id":{"type":"string"},"ipVersion":{"description":"The IP version of elastic IP.\n","type":"number"},"name":{"description":"Specifies the elastic IP Name.\n","type":"string"},"nameRegex":{"type":"string"},"portId":{"type":"string"},"privateIpAddress":{"type":"string"},"publicIpAddress":{"type":"string"},"region":{"type":"string"},"status":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"tenantId":{"description":"Specifies the project ID.\n","type":"string"},"type":{"description":"Specifies the elastic IP type.\n","type":"string"}},"required":["bandwidthShareType","bandwidthSize","createTime","ipVersion","name","region","tenantId","type"],"type":"object"}},"opentelekomcloud:index/getVpcPeeringConnectionV2:getVpcPeeringConnectionV2":{"inputs":{"description":"A collection of arguments for invoking getVpcPeeringConnectionV2.\n","properties":{"id":{"type":"string"},"name":{"type":"string"},"peerTenantId":{"type":"string"},"peerVpcId":{"type":"string"},"region":{"type":"string"},"status":{"type":"string"},"vpcId":{"type":"string"},"vpcTenantId":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVpcPeeringConnectionV2.\n","properties":{"description":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"peerTenantId":{"type":"string"},"peerVpcId":{"type":"string"},"region":{"type":"string"},"status":{"type":"string"},"vpcId":{"type":"string"},"vpcTenantId":{"type":"string"}},"required":["description","region"],"type":"object"}},"opentelekomcloud:index/getVpcPeeringConnectionsV2:getVpcPeeringConnectionsV2":{"description":"Up-to-date reference of API arguments for VPC peering connections you can get at\n[documentation portal](https://docs.otc.t-systems.com/virtual-private-cloud/api-ref/apis/vpc_peering_connection/querying_vpc_peering_connections.html#vpc-peering-0001)\n\nUse this data source to list VPC peering connections matching the specified criteria.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst peerings = opentelekomcloud.getVpcPeeringConnectionsV2({\n    vpcId: vpc.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\npeerings = opentelekomcloud.get_vpc_peering_connections_v2(vpc_id=vpc[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var peerings = Opentelekomcloud.GetVpcPeeringConnectionsV2.Invoke(new()\n    {\n        VpcId = vpc.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetVpcPeeringConnectionsV2(ctx, &opentelekomcloud.GetVpcPeeringConnectionsV2Args{\n\t\t\tVpcId: pulumi.StringRef(vpc.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetVpcPeeringConnectionsV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var peerings = OpentelekomcloudFunctions.getVpcPeeringConnectionsV2(GetVpcPeeringConnectionsV2Args.builder()\n            .vpcId(vpc.id())\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  peerings:\n    fn::invoke:\n      function: opentelekomcloud:getVpcPeeringConnectionsV2\n      arguments:\n        vpcId: ${vpc.id}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getVpcPeeringConnectionsV2.\n","properties":{"id":{"description":"The ID of the VPC peering connection.\n","type":"string"},"name":{"description":"The name of the VPC peering connection to filter by.\n","type":"string"},"peerTenantId":{"description":"The tenant ID of the accepter/peer VPC to filter by.\n","type":"string"},"peerVpcId":{"description":"The ID of the accepter/peer VPC to filter by.\n","type":"string"},"status":{"description":"The status of the VPC peering connection to filter by.\n","type":"string"},"vpcId":{"description":"The ID of the requester VPC to filter by.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVpcPeeringConnectionsV2.\n","properties":{"id":{"description":"The ID of the VPC peering connection.\n","type":"string"},"name":{"description":"The name of the VPC peering connection.\n","type":"string"},"peerTenantId":{"description":"The project ID the accepter VPC belongs to.\n","type":"string"},"peerVpcId":{"description":"The ID of the accepter/peer VPC.\n","type":"string"},"peeringConnections":{"description":"A list of VPC peering connections. Each element contains the following attributes:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetVpcPeeringConnectionsV2PeeringConnection:getVpcPeeringConnectionsV2PeeringConnection"},"type":"array"},"region":{"description":"The region of the VPC peering connections.\n","type":"string"},"status":{"description":"The status of the VPC peering connection.\n","type":"string"},"vpcId":{"description":"The ID of the requester VPC.\n","type":"string"}},"required":["id","peeringConnections","region"],"type":"object"}},"opentelekomcloud:index/getVpcRouteIdsV2:getVpcRouteIdsV2":{"description":"Up-to-date reference of API arguments for VPC route you can get at\n[documentation portal](https://docs.otc.t-systems.com/virtual-private-cloud/api-ref/apis/vpc_route/querying_vpc_routes.html#vpc-route-0001)\n\nUse this data source to get a list of route ids for a vpc_id.\n\nThis resource can be useful for getting back a list of route ids for a vpc.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst vpcId = config.requireObject<any>(\"vpcId\");\nconst example = opentelekomcloud.getVpcRouteIdsV2({\n    vpcId: vpcId,\n});\nconst vpcRoute = .reduce((__obj, [__key, __value]) => ({ ...__obj, [__key]: opentelekomcloud.getVpcRouteV2({\n    id: __value,\n}) }));\nexport const routeNexthop = .map(hop => (hop.cidr));\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nvpc_id = config.require_object(\"vpcId\")\nexample = opentelekomcloud.get_vpc_route_ids_v2(vpc_id=vpc_id)\nvpc_route = {__key: opentelekomcloud.get_vpc_route_v2(id=__value) for __key, __value in subnet_ids[\"ids\"]}\npulumi.export(\"routeNexthop\", [hop[\"cidr\"] for hop in subnet])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var vpcId = config.RequireObject<dynamic>(\"vpcId\");\n    var example = Opentelekomcloud.GetVpcRouteIdsV2.Invoke(new()\n    {\n        VpcId = vpcId,\n    });\n\n    var vpcRoute = .ToDictionary(item => {\n        var __key = item.Key;\n        return __key;\n    }, item => {\n        var __value = item.Value;\n        return Opentelekomcloud.GetVpcRouteV2.Invoke(new()\n        {\n            Id = __value,\n        });\n    });\n\n    return new Dictionary<string, object?>\n    {\n        [\"routeNexthop\"] = .Select(hop => \n        {\n            return hop.Cidr;\n        }).ToList(),\n    };\n});\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getVpcRouteIdsV2.\n","properties":{"id":{"type":"string"},"region":{"type":"string"},"vpcId":{"description":"The VPC ID that you want to filter from.\n","type":"string"}},"required":["vpcId"],"type":"object"},"outputs":{"description":"A collection of values returned by getVpcRouteIdsV2.\n","properties":{"id":{"type":"string"},"ids":{"description":"A list of all the route ids found. This data source will fail if none are found.\n","items":{"type":"string"},"type":"array"},"region":{"type":"string"},"vpcId":{"type":"string"}},"required":["id","ids","region","vpcId"],"type":"object"}},"opentelekomcloud:index/getVpcRouteTableV1:getVpcRouteTableV1":{"inputs":{"description":"A collection of arguments for invoking getVpcRouteTableV1.\n","properties":{"id":{"type":"string"},"name":{"type":"string"},"vpcId":{"type":"string"}},"required":["vpcId"],"type":"object"},"outputs":{"description":"A collection of values returned by getVpcRouteTableV1.\n","properties":{"default":{"type":"boolean"},"description":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"region":{"type":"string"},"routes":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetVpcRouteTableV1Route:getVpcRouteTableV1Route"},"type":"array"},"subnets":{"items":{"type":"string"},"type":"array"},"vpcId":{"type":"string"}},"required":["default","description","id","name","region","routes","subnets","vpcId"],"type":"object"}},"opentelekomcloud:index/getVpcRouteTablesV1:getVpcRouteTablesV1":{"description":"Up-to-date reference of API arguments for VPC route table you can get at\n[documentation portal](https://docs.otc.t-systems.com/virtual-private-cloud/api-ref/apis/route_table/querying_route_tables.html)\n\nReturns list of route tables.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```yaml\nconfiguration:\n  vpcId:\n    type: dynamic\n  routeTableId:\n    type: dynamic\n  subnetNetworkId:\n    type: dynamic\nvariables:\n  # get all route tables\n  allRouteTables:\n    fn::invoke:\n      function: opentelekomcloud:getVpcRouteTablesV1\n      arguments: {}\n  # get route tables for specific vpc\n  vpcRouteTables:\n    fn::invoke:\n      function: opentelekomcloud:getVpcRouteTablesV1\n      arguments:\n        vpcId: ${vpcId}\n  # get a list that includes single specific route table\n  singleRouteTable:\n    fn::invoke:\n      function: opentelekomcloud:getVpcRouteTableV1\n      arguments:\n        id: ${routeTableId}\n  # get a list of route table associated with a specific subnet\n  subnetRouteTable:\n    fn::invoke:\n      function: opentelekomcloud:getVpcRouteTableV1\n      arguments:\n        subnetId: ${subnetNetworkId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getVpcRouteTablesV1.\n","properties":{"id":{"description":"Specifies the ID of the route table.\n","type":"string"},"subnetId":{"description":"Specifies the id of the subnet. **Note**: the corresponding subnet resource attribute is <span pulumi-lang-nodejs=\"`networkId`\" pulumi-lang-dotnet=\"`NetworkId`\" pulumi-lang-go=\"`networkId`\" pulumi-lang-python=\"`network_id`\" pulumi-lang-yaml=\"`networkId`\" pulumi-lang-java=\"`networkId`\">`network_id`</span>.\n","type":"string"},"vpcId":{"description":"Specifies the VPC ID where the route tables reside.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVpcRouteTablesV1.\n","properties":{"id":{"type":"string"},"routetables":{"description":"list of routetable object (documented below)\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetVpcRouteTablesV1Routetable:getVpcRouteTablesV1Routetable"},"type":"array"},"subnetId":{"type":"string"},"vpcId":{"description":"VPC Id to which route table belongs.\n","type":"string"}},"required":["routetables"],"type":"object"}},"opentelekomcloud:index/getVpcRouteV2:getVpcRouteV2":{"description":"Up-to-date reference of API arguments for VPC route you can get at\n[documentation portal](https://docs.otc.t-systems.com/virtual-private-cloud/api-ref/apis/vpc_route/querying_vpc_routes.html#vpc-route-0001)\n\nUse this data source to get details about a specific VPC route.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst routeId = config.requireObject<any>(\"routeId\");\nconst vpcRoute = opentelekomcloud.getVpcRouteV2({\n    id: routeId,\n});\nconst subnetV1 = new opentelekomcloud.VpcSubnetV1(\"subnet_v1\", {\n    name: \"test-subnet\",\n    cidr: \"192.168.0.0/24\",\n    gatewayIp: \"192.168.0.1\",\n    vpcId: vpcRoute.then(vpcRoute => vpcRoute.vpcId),\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nroute_id = config.require_object(\"routeId\")\nvpc_route = opentelekomcloud.get_vpc_route_v2(id=route_id)\nsubnet_v1 = opentelekomcloud.VpcSubnetV1(\"subnet_v1\",\n    name=\"test-subnet\",\n    cidr=\"192.168.0.0/24\",\n    gateway_ip=\"192.168.0.1\",\n    vpc_id=vpc_route.vpc_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var routeId = config.RequireObject<dynamic>(\"routeId\");\n    var vpcRoute = Opentelekomcloud.GetVpcRouteV2.Invoke(new()\n    {\n        Id = routeId,\n    });\n\n    var subnetV1 = new Opentelekomcloud.VpcSubnetV1(\"subnet_v1\", new()\n    {\n        Name = \"test-subnet\",\n        Cidr = \"192.168.0.0/24\",\n        GatewayIp = \"192.168.0.1\",\n        VpcId = vpcRoute.Apply(getVpcRouteV2Result => getVpcRouteV2Result.VpcId),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\trouteId := cfg.RequireObject(\"routeId\")\n\t\tvpcRoute, err := opentelekomcloud.LookupVpcRouteV2(ctx, &opentelekomcloud.LookupVpcRouteV2Args{\n\t\t\tId: pulumi.StringRef(routeId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewVpcSubnetV1(ctx, \"subnet_v1\", &opentelekomcloud.VpcSubnetV1Args{\n\t\t\tName:      pulumi.String(\"test-subnet\"),\n\t\t\tCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tGatewayIp: pulumi.String(\"192.168.0.1\"),\n\t\t\tVpcId:     pulumi.String(vpcRoute.VpcId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetVpcRouteV2Args;\nimport com.pulumi.opentelekomcloud.VpcSubnetV1;\nimport com.pulumi.opentelekomcloud.VpcSubnetV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var routeId = config.get(\"routeId\");\n        final var vpcRoute = OpentelekomcloudFunctions.getVpcRouteV2(GetVpcRouteV2Args.builder()\n            .id(routeId)\n            .build());\n\n        var subnetV1 = new VpcSubnetV1(\"subnetV1\", VpcSubnetV1Args.builder()\n            .name(\"test-subnet\")\n            .cidr(\"192.168.0.0/24\")\n            .gatewayIp(\"192.168.0.1\")\n            .vpcId(vpcRoute.vpcId())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  routeId:\n    type: dynamic\nresources:\n  subnetV1:\n    type: opentelekomcloud:VpcSubnetV1\n    name: subnet_v1\n    properties:\n      name: test-subnet\n      cidr: 192.168.0.0/24\n      gatewayIp: 192.168.0.1\n      vpcId: ${vpcRoute.vpcId}\nvariables:\n  vpcRoute:\n    fn::invoke:\n      function: opentelekomcloud:getVpcRouteV2\n      arguments:\n        id: ${routeId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getVpcRouteV2.\n","properties":{"destination":{"description":"The route destination address (CIDR).\n","type":"string"},"id":{"description":"The id of the specific route to retrieve.\n","type":"string"},"nexthop":{"description":"The next hop of the route. If the route type is peering, it will provide VPC peering connection ID.\n","type":"string"},"region":{"type":"string"},"tenantId":{"description":"Only the administrator can specify the tenant ID of other tenants.\n","type":"string"},"type":{"description":"Route type for filtering.\n","type":"string"},"vpcId":{"description":"The id of the VPC that the desired route belongs to.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVpcRouteV2.\n","properties":{"destination":{"type":"string"},"id":{"type":"string"},"nexthop":{"description":"The next hop of the route. If the route type is peering, it will provide VPC peering connection ID.\n","type":"string"},"region":{"type":"string"},"tenantId":{"type":"string"},"type":{"type":"string"},"vpcId":{"type":"string"}},"required":["region"],"type":"object"}},"opentelekomcloud:index/getVpcSubnetIdsV1:getVpcSubnetIdsV1":{"description":"Up-to-date reference of API arguments for VPC subnet you can get at\n[documentation portal](https://docs.otc.t-systems.com/virtual-private-cloud/api-ref/apis/subnet/querying_subnets.html#vpc-subnet01-0003)\n\nUse this data source to get a list of subnet ids for a<span pulumi-lang-nodejs=\" vpcId\n\" pulumi-lang-dotnet=\" VpcId\n\" pulumi-lang-go=\" vpcId\n\" pulumi-lang-python=\" vpc_id\n\" pulumi-lang-yaml=\" vpcId\n\" pulumi-lang-java=\" vpcId\n\"> vpc_id\n</span>\nThis resource can be useful for getting back a list of subnet ids for a VPC.\n\n## Example Usage\n\nThe following example shows outputting all cidr blocks for every subnet id in a VPC.\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst subnetIds = opentelekomcloud.getVpcSubnetIdsV1({\n    vpcId: vpcId,\n});\nconst subnet = subnetIds.then(subnetIds => .reduce((__obj, [__key, __value]) => ({ ...__obj, [__key]: opentelekomcloud.getVpcSubnetV1({\n    id: __value,\n}) })));\nexport const subnetCidrBlocks = subnet.apply(subnet => Object.values(subnet).map(s => (s.cidr)));\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nsubnet_ids = opentelekomcloud.get_vpc_subnet_ids_v1(vpc_id=vpc_id)\nsubnet = {__key: opentelekomcloud.get_vpc_subnet_v1(id=__value) for __key, __value in subnet_ids.ids}\npulumi.export(\"subnetCidrBlocks\", [s.cidr for s in subnet])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var subnetIds = Opentelekomcloud.GetVpcSubnetIdsV1.Invoke(new()\n    {\n        VpcId = vpcId,\n    });\n\n    var subnet = ;\n\n    return new Dictionary<string, object?>\n    {\n        [\"subnetCidrBlocks\"] = subnet.Apply(subnet => (subnet).Values.Select(s => \n        {\n            return s.Cidr;\n        }).ToList()),\n    };\n});\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getVpcSubnetIdsV1.\n","properties":{"id":{"type":"string"},"region":{"type":"string"},"vpcId":{"description":"Specifies the VPC ID used as the query filter.\n","type":"string"}},"required":["vpcId"],"type":"object"},"outputs":{"description":"A collection of values returned by getVpcSubnetIdsV1.\n","properties":{"id":{"type":"string"},"ids":{"description":"A list of all the subnet ids found. This data source will fail if none are found.\n","items":{"type":"string"},"type":"array"},"region":{"type":"string"},"vpcId":{"type":"string"}},"required":["id","ids","region","vpcId"],"type":"object"}},"opentelekomcloud:index/getVpcSubnetV1:getVpcSubnetV1":{"description":"Up-to-date reference of API arguments for VPC subnet you can get at\n[documentation portal](https://docs.otc.t-systems.com/virtual-private-cloud/api-ref/apis/subnet/querying_subnets.html#vpc-subnet01-0003)\n\nUse this data source to get details about a specific VPC subnet.\n\nThis data source can prove useful when a module accepts a subnet id as\nan input variable and needs to, for example, determine the id of the\nVPC that the subnet belongs to.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst subnetV1 = opentelekomcloud.getVpcSubnetV1({\n    id: subnetId,\n});\nexport const subnetVpcId = subnetV1.then(subnetV1 => subnetV1.vpcId);\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nsubnet_v1 = opentelekomcloud.get_vpc_subnet_v1(id=subnet_id)\npulumi.export(\"subnetVpcId\", subnet_v1.vpc_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var subnetV1 = Opentelekomcloud.GetVpcSubnetV1.Invoke(new()\n    {\n        Id = subnetId,\n    });\n\n    return new Dictionary<string, object?>\n    {\n        [\"subnetVpcId\"] = subnetV1.Apply(getVpcSubnetV1Result => getVpcSubnetV1Result.VpcId),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsubnetV1, err := opentelekomcloud.LookupVpcSubnetV1(ctx, &opentelekomcloud.LookupVpcSubnetV1Args{\n\t\t\tId: pulumi.StringRef(subnetId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"subnetVpcId\", subnetV1.VpcId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetVpcSubnetV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var subnetV1 = OpentelekomcloudFunctions.getVpcSubnetV1(GetVpcSubnetV1Args.builder()\n            .id(subnetId)\n            .build());\n\n        ctx.export(\"subnetVpcId\", subnetV1.vpcId());\n    }\n}\n```\n```yaml\nvariables:\n  subnetV1:\n    fn::invoke:\n      function: opentelekomcloud:getVpcSubnetV1\n      arguments:\n        id: ${subnetId}\noutputs:\n  subnetVpcId: ${subnetV1.vpcId}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getVpcSubnetV1.\n","properties":{"availabilityZone":{"description":"The availability zone (AZ) to which the subnet should belong.\n","type":"string"},"cidr":{"description":"The network segment of specific subnet to retrieve. The value must be in CIDR format.\n","type":"string"},"gatewayIp":{"description":"The subnet gateway address of specific subnet.\n","type":"string"},"id":{"description":"Specifies a resource ID in UUID format.\n","type":"string"},"name":{"description":"The name of the specific subnet to retrieve.\n","type":"string"},"primaryDns":{"description":"The IP address of DNS server 1 on the specific subnet.\n","type":"string"},"region":{"type":"string"},"secondaryDns":{"description":"The IP address of DNS server 2 on the specific subnet.\n","type":"string"},"status":{"description":"The value can be ACTIVE, DOWN, UNKNOWN, or ERROR.\n","type":"string"},"vpcId":{"description":"The id of the VPC that the desired subnet belongs to.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVpcSubnetV1.\n","properties":{"availabilityZone":{"type":"string"},"cidr":{"type":"string"},"cidrIpv6":{"type":"string"},"dhcpEnable":{"description":"DHCP function for the subnet.\n","type":"boolean"},"dnsLists":{"description":"The IP address list of DNS servers on the subnet.\n","items":{"type":"string"},"type":"array"},"gatewayIp":{"type":"string"},"gatewayIpv6":{"type":"string"},"id":{"type":"string"},"ipv6Enable":{"type":"boolean"},"name":{"type":"string"},"networkId":{"description":"Specifies the OpenStack network ID.\n","type":"string"},"primaryDns":{"type":"string"},"region":{"type":"string"},"secondaryDns":{"type":"string"},"status":{"type":"string"},"subnetId":{"description":"Specifies the OpenStack subnet ID.\n","type":"string"},"vpcId":{"type":"string"}},"required":["availabilityZone","cidr","cidrIpv6","dhcpEnable","dnsLists","gatewayIp","gatewayIpv6","id","ipv6Enable","name","networkId","primaryDns","region","secondaryDns","status","subnetId","vpcId"],"type":"object"}},"opentelekomcloud:index/getVpcV1:getVpcV1":{"description":"Up-to-date reference of API arguments for VPC you can get at\n[documentation portal](https://docs.otc.t-systems.com/virtual-private-cloud/api-ref/apis/virtual_private_cloud/querying_vpcs.html#vpc-api01-0003)\n\nUse this data source to get details about a specific VPC.\n\nThis data source can prove useful when a module accepts a VPC id as an input variable and needs to, for example,\ndetermine the CIDR block of that VPC.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst vpcName = config.requireObject<any>(\"vpcName\");\nconst vpc = opentelekomcloud.getVpcV1({\n    name: vpcName,\n    shared: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nvpc_name = config.require_object(\"vpcName\")\nvpc = opentelekomcloud.get_vpc_v1(name=vpc_name,\n    shared=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var vpcName = config.RequireObject<dynamic>(\"vpcName\");\n    var vpc = Opentelekomcloud.GetVpcV1.Invoke(new()\n    {\n        Name = vpcName,\n        Shared = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tvpcName := cfg.RequireObject(\"vpcName\")\n\t\t_, err := opentelekomcloud.LookupVpcV1(ctx, &opentelekomcloud.LookupVpcV1Args{\n\t\t\tName:   pulumi.StringRef(vpcName),\n\t\t\tShared: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetVpcV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var vpcName = config.get(\"vpcName\");\n        final var vpc = OpentelekomcloudFunctions.getVpcV1(GetVpcV1Args.builder()\n            .name(vpcName)\n            .shared(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  vpcName:\n    type: dynamic\nvariables:\n  vpc:\n    fn::invoke:\n      function: opentelekomcloud:getVpcV1\n      arguments:\n        name: ${vpcName}\n        shared: true\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getVpcV1.\n","properties":{"cidr":{"description":"The cidr block of the desired VPC.\n","type":"string"},"id":{"description":"The id of the specific VPC to retrieve.\n","type":"string"},"name":{"description":"A unique name for the VPC. The name must be unique for a tenant.\nThe value is a string of no more than 64 characters and can contain digits, letters, underscores (_), and hyphens (-).\n","type":"string"},"region":{"type":"string"},"shared":{"description":"Enable SNAT (In order to let instances without an EIP access the internet).\n","type":"boolean"},"status":{"description":"The current status of the desired VPC.\nCan be either `CREATING`, `OK`, `DOWN`, `PENDING_UPDATE`, `PENDING_DELETE`, or `ERROR`.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVpcV1.\n","properties":{"cidr":{"description":"See Argument Reference above.\n","type":"string"},"id":{"description":"ID of the VPC.\n","type":"string"},"name":{"description":"See Argument Reference above.\n","type":"string"},"region":{"type":"string"},"routes":{"description":"The list of route information with <span pulumi-lang-nodejs=\"`destination`\" pulumi-lang-dotnet=\"`Destination`\" pulumi-lang-go=\"`destination`\" pulumi-lang-python=\"`destination`\" pulumi-lang-yaml=\"`destination`\" pulumi-lang-java=\"`destination`\">`destination`</span> and <span pulumi-lang-nodejs=\"`nexthop`\" pulumi-lang-dotnet=\"`Nexthop`\" pulumi-lang-go=\"`nexthop`\" pulumi-lang-python=\"`nexthop`\" pulumi-lang-yaml=\"`nexthop`\" pulumi-lang-java=\"`nexthop`\">`nexthop`</span> fields.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetVpcV1Route:getVpcV1Route"},"type":"array"},"shared":{"description":"Specifies whether the cross-tenant sharing is supported.\n","type":"boolean"},"status":{"description":"See Argument Reference above.\n","type":"string"}},"required":["region","routes"],"type":"object"}},"opentelekomcloud:index/getVpcepPublicServiceV1:getVpcepPublicServiceV1":{"description":"Up-to-date reference of API arguments for VPCEP public service you can get at\n[documentation portal](https://docs.otc.t-systems.com/vpc-endpoint/api-ref/apis/apis_for_managing_vpc_endpoint_services/querying_public_vpc_endpoint_services.html)\n\nUse this data source to get details about a specific VPCEP public service.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst obs = opentelekomcloud.getVpcepPublicServiceV1({\n    name: \"com.t-systems.otc.eu-de.obs\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nobs = opentelekomcloud.get_vpcep_public_service_v1(name=\"com.t-systems.otc.eu-de.obs\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var obs = Opentelekomcloud.GetVpcepPublicServiceV1.Invoke(new()\n    {\n        Name = \"com.t-systems.otc.eu-de.obs\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetVpcepPublicServiceV1(ctx, &opentelekomcloud.GetVpcepPublicServiceV1Args{\n\t\t\tName: pulumi.StringRef(\"com.t-systems.otc.eu-de.obs\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetVpcepPublicServiceV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var obs = OpentelekomcloudFunctions.getVpcepPublicServiceV1(GetVpcepPublicServiceV1Args.builder()\n            .name(\"com.t-systems.otc.eu-de.obs\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  obs:\n    fn::invoke:\n      function: opentelekomcloud:getVpcepPublicServiceV1\n      arguments:\n        name: com.t-systems.otc.eu-de.obs\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getVpcepPublicServiceV1.\n","properties":{"id":{"description":"Specifies the unique ID of the public VPC endpoint service.\n","type":"string"},"name":{"description":"Specifies the name of the public VPC endpoint service. The value is not case-sensitive and supports fuzzy match.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVpcepPublicServiceV1.\n","properties":{"createdAt":{"description":"Specifies the creation time of the VPC endpoint service.\n","type":"string"},"id":{"type":"string"},"isCharge":{"description":"Specifies whether the associated VPC endpoint carries a charge.\n","type":"boolean"},"name":{"type":"string"},"owner":{"description":"Specifies the owner of the VPC endpoint service.\n","type":"string"},"serviceType":{"description":"Specifies the type of the VPC endpoint service.\n","type":"string"}},"required":["createdAt","id","isCharge","name","owner","serviceType"],"type":"object"}},"opentelekomcloud:index/getVpcepServiceV1:getVpcepServiceV1":{"description":"Up-to-date reference of API arguments for VPCEP service you can get at\n[documentation portal](https://docs.otc.t-systems.com/vpc-endpoint/api-ref/apis/apis_for_managing_vpc_endpoint_services/querying_details_about_a_vpc_endpoint_service.html#vpcep-06-0202)\n\nUse this data source to get details about a specific VPCEP service.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst service = opentelekomcloud.getVpcepServiceV1({\n    name: serviceName,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nservice = opentelekomcloud.get_vpcep_service_v1(name=service_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var service = Opentelekomcloud.GetVpcepServiceV1.Invoke(new()\n    {\n        Name = serviceName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.LookupVpcepServiceV1(ctx, &opentelekomcloud.LookupVpcepServiceV1Args{\n\t\t\tName: pulumi.StringRef(serviceName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetVpcepServiceV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var service = OpentelekomcloudFunctions.getVpcepServiceV1(GetVpcepServiceV1Args.builder()\n            .name(serviceName)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  service:\n    fn::invoke:\n      function: opentelekomcloud:getVpcepServiceV1\n      arguments:\n        name: ${serviceName}\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getVpcepServiceV1.\n","properties":{"id":{"description":"Specifies the unique ID of the VPC endpoint service.\n","type":"string"},"name":{"description":"Specifies the name of the VPC endpoint service.\nThe value is not case-sensitive and supports fuzzy match.\n","type":"string"},"status":{"description":"Specifies the status of the VPC endpoint service.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Map of the resource tags.\n","type":"object"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVpcepServiceV1.\n","properties":{"approvalEnabled":{"description":"Specifies whether connection approval is required.\n","type":"boolean"},"connectionCount":{"description":"Specifies the number of Creating or Accepted VPC endpoints under the VPC endpoint service.\n","type":"number"},"createdAt":{"description":"Specifies the creation time of the VPC endpoint service.\n","type":"string"},"id":{"type":"string"},"name":{"type":"string"},"portId":{"description":"Specifies the ID for identifying the backend resource of the VPC endpoint service. The ID is in the form of the UUID.\n","type":"string"},"ports":{"items":{"$ref":"#/types/opentelekomcloud:index%2FgetVpcepServiceV1Port:getVpcepServiceV1Port"},"type":"array"},"projectId":{"description":"Specifies the project ID.\n","type":"string"},"serverType":{"description":"Specifies the resource type.\n","type":"string"},"serviceType":{"description":"Specifies the type of the VPC endpoint service.\n","type":"string"},"status":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Map of the resource tags.\n","type":"object"},"tcpProxy":{"description":"Specifies whether the client IP address and port number or<span pulumi-lang-nodejs=\" markerId \" pulumi-lang-dotnet=\" MarkerId \" pulumi-lang-go=\" markerId \" pulumi-lang-python=\" marker_id \" pulumi-lang-yaml=\" markerId \" pulumi-lang-java=\" markerId \"> marker_id </span>information is transmitted to the server.\n","type":"string"},"updatedAt":{"description":"Specifies the update time of the VPC endpoint service.\n","type":"string"},"vipPortId":{"description":"Specifies the ID of the virtual NIC to which the virtual IP address is bound.\nThis parameter is returned only when <span pulumi-lang-nodejs=\"`portId`\" pulumi-lang-dotnet=\"`PortId`\" pulumi-lang-go=\"`portId`\" pulumi-lang-python=\"`port_id`\" pulumi-lang-yaml=\"`portId`\" pulumi-lang-java=\"`portId`\">`port_id`</span> is set to VIP.\n","type":"string"},"vpcId":{"description":"Specifies the ID of the VPC to which the backend resource of the VPC endpoint service belongs.\n","type":"string"}},"required":["approvalEnabled","connectionCount","createdAt","id","name","portId","ports","projectId","serverType","serviceType","status","tcpProxy","updatedAt","vipPortId","vpcId"],"type":"object"}},"opentelekomcloud:index/getVpnaasServiceV2:getVpnaasServiceV2":{"description":"Up-to-date reference of API arguments for VPN service you can get at\n[documentation portal](https://docs.otc.t-systems.com/virtual-private-network/api-ref/native_openstack_apis/vpn_service_management/querying_vpn_services.html#en-topic-0093011500)\n\nUse this data source to get details about a specific VPN.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst vpnName = config.requireObject<any>(\"vpnName\");\nconst vpn = opentelekomcloud.getVpnaasServiceV2({\n    name: vpnName,\n    adminStateUp: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nvpn_name = config.require_object(\"vpnName\")\nvpn = opentelekomcloud.get_vpnaas_service_v2(name=vpn_name,\n    admin_state_up=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var vpnName = config.RequireObject<dynamic>(\"vpnName\");\n    var vpn = Opentelekomcloud.GetVpnaasServiceV2.Invoke(new()\n    {\n        Name = vpnName,\n        AdminStateUp = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tvpnName := cfg.RequireObject(\"vpnName\")\n\t\t_, err := opentelekomcloud.LookupVpnaasServiceV2(ctx, &opentelekomcloud.LookupVpnaasServiceV2Args{\n\t\t\tName:         pulumi.StringRef(vpnName),\n\t\t\tAdminStateUp: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetVpnaasServiceV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var vpnName = config.get(\"vpnName\");\n        final var vpn = OpentelekomcloudFunctions.getVpnaasServiceV2(GetVpnaasServiceV2Args.builder()\n            .name(vpnName)\n            .adminStateUp(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  vpnName:\n    type: dynamic\nvariables:\n  vpn:\n    fn::invoke:\n      function: opentelekomcloud:getVpnaasServiceV2\n      arguments:\n        name: ${vpnName}\n        adminStateUp: 'true'\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getVpnaasServiceV2.\n","properties":{"adminStateUp":{"description":"The administrative state of the resource. Can either be true (Up) or false (Down).\nDefault is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"description":{"description":"The human-readable description for the service.\n","type":"string"},"externalV4Ip":{"description":"The read-only external (public) IPv4 address that is used for the VPN service.\n","type":"string"},"externalV6Ip":{"description":"The read-only external (public) IPv6 address that is used for the VPN service.\n","type":"string"},"flavorId":{"type":"string"},"id":{"type":"string"},"name":{"description":"The name of the service.\n","type":"string"},"projectId":{"type":"string"},"region":{"description":"The region in which to obtain details about the V2 VPN service.\n","type":"string"},"routerId":{"description":"The ID of the router. Default is <span pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\">`null`</span>.\n","type":"string"},"status":{"description":"Indicates whether IPsec VPN service is currently operational. Values are `ACTIVE`,\n`DOWN`, `BUILD`, `ERROR`, `PENDING_CREATE`, `PENDING_UPDATE` or `PENDING_DELETE`.\n","type":"string"},"subnetId":{"description":"SubnetID is the ID of the subnet. Default is <span pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\">`null`</span>.\n","type":"string"},"tenantId":{"description":"The owner of the service.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVpnaasServiceV2.\n","properties":{"adminStateUp":{"description":"See Argument Reference above.\n","type":"boolean"},"description":{"description":"See Argument Reference above.\n","type":"string"},"externalV4Ip":{"description":"The read-only external (public) IPv4 address that is used for the VPN service.\n","type":"string"},"externalV6Ip":{"description":"The read-only external (public) IPv6 address that is used for the VPN service.\n","type":"string"},"flavorId":{"type":"string"},"id":{"type":"string"},"name":{"description":"See Argument Reference above.\n","type":"string"},"projectId":{"type":"string"},"region":{"description":"See Argument Reference above.\n","type":"string"},"routerId":{"description":"See Argument Reference above.\n","type":"string"},"status":{"description":"Indicates whether IPsec VPN service is currently operational. Values are `ACTIVE`,\n`DOWN`, `BUILD`, `ERROR`, `PENDING_CREATE`, `PENDING_UPDATE` or `PENDING_DELETE`.\n","type":"string"},"subnetId":{"description":"See Argument Reference above.\n","type":"string"},"tenantId":{"description":"See Argument Reference above.\n","type":"string"}},"required":["region"],"type":"object"}},"opentelekomcloud:index/getWafDedicatedReferenceTablesV1:getWafDedicatedReferenceTablesV1":{"description":"Up-to-date reference of API arguments for WAF reference table you can get at\n[documentation portal](https://docs.otc.t-systems.com/web-application-firewall-dedicated/api-ref/apis/rule_management/querying_the_reference_table_list.html)\n\nUse this data source to get a list of OpenTelekomCloud WAF reference tables.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst table = opentelekomcloud.getWafDedicatedReferenceTablesV1({\n    name: \"reference_table_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntable = opentelekomcloud.get_waf_dedicated_reference_tables_v1(name=\"reference_table_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var table = Opentelekomcloud.GetWafDedicatedReferenceTablesV1.Invoke(new()\n    {\n        Name = \"reference_table_1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetWafDedicatedReferenceTablesV1(ctx, &opentelekomcloud.GetWafDedicatedReferenceTablesV1Args{\n\t\t\tName: pulumi.StringRef(\"reference_table_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetWafDedicatedReferenceTablesV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var table = OpentelekomcloudFunctions.getWafDedicatedReferenceTablesV1(GetWafDedicatedReferenceTablesV1Args.builder()\n            .name(\"reference_table_1\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  table:\n    fn::invoke:\n      function: opentelekomcloud:getWafDedicatedReferenceTablesV1\n      arguments:\n        name: reference_table_1\n```\n<!--End PulumiCodeChooser -->\n","inputs":{"description":"A collection of arguments for invoking getWafDedicatedReferenceTablesV1.\n","properties":{"id":{"description":"The id of the reference table.\n","type":"string"},"name":{"description":"The name of the reference table. The value is case-sensitive and matches exactly.\n","type":"string"},"region":{"description":"The region in which to create the WAF reference table resource.\nIf omitted, the provider-level region will be used.\n","type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getWafDedicatedReferenceTablesV1.\n","properties":{"id":{"description":"The id of the reference table.\n","type":"string"},"name":{"description":"The name of the reference table. The maximum length is 64 characters.\n","type":"string"},"region":{"type":"string"},"tables":{"description":"A list of WAF reference tables.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FgetWafDedicatedReferenceTablesV1Table:getWafDedicatedReferenceTablesV1Table"},"type":"array"}},"required":["id","region","tables"],"type":"object"}},"pulumi:providers:opentelekomcloud/terraformConfig":{"description":"This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.","inputs":{"properties":{"__self__":{"$ref":"#/resources/pulumi:providers:opentelekomcloud"}},"required":["__self__"],"type":"object"},"outputs":{"properties":{"result":{"additionalProperties":{"$ref":"pulumi.json#/Any"},"type":"object"}},"required":["result"],"type":"object"}}},"language":{"csharp":{"compatibility":"tfbridge20","liftSingleValueMethodReturns":true,"respectSchemaVersion":true},"go":{"generateExtraInputTypes":true,"importBasePath":"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud","liftSingleValueMethodReturns":true,"respectSchemaVersion":true,"rootPackageName":"opentelekomcloud"},"java":{"basePackage":"","buildFiles":"","gradleNexusPublishPluginVersion":"","gradleTest":""},"nodejs":{"compatibility":"tfbridge20","disableUnionOutputTypes":true,"liftSingleValueMethodReturns":true,"packageDescription":"A Pulumi provider dynamically bridged from opentelekomcloud.","readme":"> This provider is a derived work of the [Terraform Provider](https://github.com/opentelekomcloud/terraform-provider-opentelekomcloud)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> please consult the source [`terraform-provider-opentelekomcloud` repo](https://github.com/opentelekomcloud/terraform-provider-opentelekomcloud/issues).","respectSchemaVersion":true},"python":{"compatibility":"tfbridge20","pyproject":{"enabled":true},"readme":"> This provider is a derived work of the [Terraform Provider](https://github.com/opentelekomcloud/terraform-provider-opentelekomcloud)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> please consult the source [`terraform-provider-opentelekomcloud` repo](https://github.com/opentelekomcloud/terraform-provider-opentelekomcloud/issues).","respectSchemaVersion":true}},"meta":{"moduleFormat":"(.*)(?:/[^/]*)"},"name":"opentelekomcloud","parameterization":{"baseProvider":{"name":"terraform-provider","version":"1.0.1"},"parameter":"eyJyZW1vdGUiOnsidXJsIjoicmVnaXN0cnkub3BlbnRvZnUub3JnL29wZW50ZWxla29tY2xvdWQvb3BlbnRlbGVrb21jbG91ZCIsInZlcnNpb24iOiIxLjM2LjY1In19"},"provider":{"description":"The provider type for the opentelekomcloud package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n","inputProperties":{"accessKey":{"description":"The access key for API operations. You can retrieve this\nfrom the 'My Credential' section of the console.","type":"string"},"agencyDomainName":{"description":"The name of domain who created the agency (Identity v3).","type":"string"},"agencyName":{"description":"The name of agency","type":"string"},"allowReauth":{"type":"boolean"},"authUrl":{"description":"The Identity authentication URL.","type":"string"},"backoffRetryTimeout":{"description":"Timeout in seconds for backoff retry","type":"number"},"cacertFile":{"description":"A Custom CA certificate.","type":"string"},"cert":{"description":"A client certificate to authenticate with.","type":"string"},"cloud":{"description":"An entry in a `clouds.yaml` file to use.","type":"string"},"delegatedProject":{"description":"The name of delegated project (Identity v3).","type":"string"},"domainId":{"description":"The ID of the Domain to scope to (Identity v3).","type":"string"},"domainName":{"description":"The name of the Domain to scope to (Identity v3).","type":"string"},"endpointType":{"type":"string"},"enterpriseProjectId":{"description":"enterprise project id","type":"string"},"insecure":{"description":"Trust self-signed certificates.","type":"boolean"},"key":{"description":"A client private key to authenticate with.","type":"string"},"maxBackoffRetries":{"description":"How many times HTTP request should be retried when rate limit reached","type":"number"},"maxRetries":{"description":"How many times HTTP connection should be retried until giving up.","type":"number"},"passcode":{"description":"One-time MFA passcode","type":"string"},"password":{"description":"Password to login with.","secret":true,"type":"string"},"region":{"description":"The OpenTelekomCloud region to connect to.","type":"string"},"secretKey":{"description":"The secret key for API operations. You can retrieve this\nfrom the 'My Credential' section of the console.","secret":true,"type":"string"},"securityToken":{"description":"Security token to use for OBS federated authentication.","secret":true,"type":"string"},"swauth":{"description":"Use Swift's authentication system instead of Keystone. Only used for\ninteraction with Swift.","type":"boolean"},"tenantId":{"description":"The ID of the Tenant (Identity v2) or Project (Identity v3)\nto login with.","type":"string"},"tenantName":{"description":"The name of the Tenant (Identity v2) or Project (Identity v3)\nto login with.","type":"string"},"token":{"description":"Authentication token to use as an alternative to username/password.","secret":true,"type":"string"},"userId":{"description":"User ID to login with.","type":"string"},"userName":{"description":"Username to login with.","type":"string"}},"methods":{"terraformConfig":"pulumi:providers:opentelekomcloud/terraformConfig"},"properties":{"accessKey":{"description":"The access key for API operations. You can retrieve this\nfrom the 'My Credential' section of the console.","type":"string"},"agencyDomainName":{"description":"The name of domain who created the agency (Identity v3).","type":"string"},"agencyName":{"description":"The name of agency","type":"string"},"authUrl":{"description":"The Identity authentication URL.","type":"string"},"cacertFile":{"description":"A Custom CA certificate.","type":"string"},"cert":{"description":"A client certificate to authenticate with.","type":"string"},"cloud":{"description":"An entry in a `clouds.yaml` file to use.","type":"string"},"delegatedProject":{"description":"The name of delegated project (Identity v3).","type":"string"},"domainId":{"description":"The ID of the Domain to scope to (Identity v3).","type":"string"},"domainName":{"description":"The name of the Domain to scope to (Identity v3).","type":"string"},"endpointType":{"type":"string"},"enterpriseProjectId":{"description":"enterprise project id","type":"string"},"key":{"description":"A client private key to authenticate with.","type":"string"},"passcode":{"description":"One-time MFA passcode","type":"string"},"password":{"description":"Password to login with.","secret":true,"type":"string"},"region":{"description":"The OpenTelekomCloud region to connect to.","type":"string"},"secretKey":{"description":"The secret key for API operations. You can retrieve this\nfrom the 'My Credential' section of the console.","secret":true,"type":"string"},"securityToken":{"description":"Security token to use for OBS federated authentication.","secret":true,"type":"string"},"tenantId":{"description":"The ID of the Tenant (Identity v2) or Project (Identity v3)\nto login with.","type":"string"},"tenantName":{"description":"The name of the Tenant (Identity v2) or Project (Identity v3)\nto login with.","type":"string"},"token":{"description":"Authentication token to use as an alternative to username/password.","secret":true,"type":"string"},"userId":{"description":"User ID to login with.","type":"string"},"userName":{"description":"Username to login with.","type":"string"}},"type":"object"},"publisher":"opentelekomcloud","repository":"https://github.com/opentelekomcloud/terraform-provider-opentelekomcloud","resources":{"opentelekomcloud:index/antiddosV1:AntiddosV1":{"description":"Up-to-date reference of API arguments for Anti-DDoS service you can get at\n[documentation portal](https://docs.otc.t-systems.com/anti-ddos/api-ref/api/anti-ddos_apis).\n\nAnti-DDoS monitors the service traffic from the Internet to ECSs, ELB instances, and BMSs to detect attack traffic in real time. It then cleans attack traffic according to user-configured defense policies so that services run as normal.\n\n~>\nAntiDDoS protection for Elastic IP is provided by default and shouldn't be created manually.\n\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst eipId = config.requireObject<any>(\"eipId\");\nconst myantiddos = new opentelekomcloud.AntiddosV1(\"myantiddos\", {\n    floatingIpId: eipId,\n    enableL7: true,\n    trafficPosId: 1,\n    httpRequestPosId: 3,\n    cleaningAccessPosId: 2,\n    appTypeId: 0,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\neip_id = config.require_object(\"eipId\")\nmyantiddos = opentelekomcloud.AntiddosV1(\"myantiddos\",\n    floating_ip_id=eip_id,\n    enable_l7=True,\n    traffic_pos_id=1,\n    http_request_pos_id=3,\n    cleaning_access_pos_id=2,\n    app_type_id=0)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var eipId = config.RequireObject<dynamic>(\"eipId\");\n    var myantiddos = new Opentelekomcloud.AntiddosV1(\"myantiddos\", new()\n    {\n        FloatingIpId = eipId,\n        EnableL7 = true,\n        TrafficPosId = 1,\n        HttpRequestPosId = 3,\n        CleaningAccessPosId = 2,\n        AppTypeId = 0,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\teipId := cfg.RequireObject(\"eipId\")\n\t\t_, err := opentelekomcloud.NewAntiddosV1(ctx, \"myantiddos\", &opentelekomcloud.AntiddosV1Args{\n\t\t\tFloatingIpId:        pulumi.Any(eipId),\n\t\t\tEnableL7:            pulumi.Bool(true),\n\t\t\tTrafficPosId:        pulumi.Float64(1),\n\t\t\tHttpRequestPosId:    pulumi.Float64(3),\n\t\t\tCleaningAccessPosId: pulumi.Float64(2),\n\t\t\tAppTypeId:           pulumi.Float64(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.opentelekomcloud.AntiddosV1;\nimport com.pulumi.opentelekomcloud.AntiddosV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var eipId = config.get(\"eipId\");\n        var myantiddos = new AntiddosV1(\"myantiddos\", AntiddosV1Args.builder()\n            .floatingIpId(eipId)\n            .enableL7(true)\n            .trafficPosId(1.0)\n            .httpRequestPosId(3.0)\n            .cleaningAccessPosId(2.0)\n            .appTypeId(0.0)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  eipId:\n    type: dynamic\nresources:\n  myantiddos:\n    type: opentelekomcloud:AntiddosV1\n    properties:\n      floatingIpId: ${eipId}\n      enableL7: true\n      trafficPosId: 1\n      httpRequestPosId: 3\n      cleaningAccessPosId: 2\n      appTypeId: 0\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAntiddos can be imported using the floating_ip_id, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/antiddosV1:AntiddosV1 myantiddos c1881895-cdcb-4d23-96cb-032e6a3ee667\n```\n\n","inputProperties":{"antiddosV1Id":{"type":"string"},"appTypeId":{"description":"The application type ID.\n","type":"number"},"cleaningAccessPosId":{"description":"The position ID of access limit during cleaning. The value ranges from 1 to 8.\n","type":"number"},"enableL7":{"description":"Specifies whether to enable L7 defense.\n","type":"boolean"},"floatingIpId":{"description":"The ID corresponding to the Elastic IP Address (EIP) of a user.\n","type":"string"},"httpRequestPosId":{"description":"The position ID of number of HTTP requests. The value ranges from 1 to 15.\n","type":"number"},"region":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FAntiddosV1Timeouts:AntiddosV1Timeouts"},"trafficPosId":{"description":"The position ID of traffic. The value ranges from 1 to 9.\n","type":"number"}},"properties":{"antiddosV1Id":{"type":"string"},"appTypeId":{"description":"The application type ID.\n","type":"number"},"cleaningAccessPosId":{"description":"The position ID of access limit during cleaning. The value ranges from 1 to 8.\n","type":"number"},"enableL7":{"description":"Specifies whether to enable L7 defense.\n","type":"boolean"},"floatingIpId":{"description":"The ID corresponding to the Elastic IP Address (EIP) of a user.\n","type":"string"},"httpRequestPosId":{"description":"The position ID of number of HTTP requests. The value ranges from 1 to 15.\n","type":"number"},"region":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FAntiddosV1Timeouts:AntiddosV1Timeouts"},"trafficPosId":{"description":"The position ID of traffic. The value ranges from 1 to 9.\n","type":"number"}},"required":["antiddosV1Id","appTypeId","cleaningAccessPosId","enableL7","floatingIpId","httpRequestPosId","region","trafficPosId"],"requiredInputs":["appTypeId","cleaningAccessPosId","enableL7","floatingIpId","httpRequestPosId","trafficPosId"],"stateInputs":{"description":"Input properties used for looking up and filtering AntiddosV1 resources.\n","properties":{"antiddosV1Id":{"type":"string"},"appTypeId":{"description":"The application type ID.\n","type":"number"},"cleaningAccessPosId":{"description":"The position ID of access limit during cleaning. The value ranges from 1 to 8.\n","type":"number"},"enableL7":{"description":"Specifies whether to enable L7 defense.\n","type":"boolean"},"floatingIpId":{"description":"The ID corresponding to the Elastic IP Address (EIP) of a user.\n","type":"string"},"httpRequestPosId":{"description":"The position ID of number of HTTP requests. The value ranges from 1 to 15.\n","type":"number"},"region":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FAntiddosV1Timeouts:AntiddosV1Timeouts"},"trafficPosId":{"description":"The position ID of traffic. The value ranges from 1 to 9.\n","type":"number"}},"type":"object"},"type":"object"},"opentelekomcloud:index/apigwAclPolicyAssociateV2:ApigwAclPolicyAssociateV2":{"description":"Up-to-date reference of API arguments for API Gateway Acl associate service you can get at\n[documentation portal](https://docs.otc.t-systems.com/api-gateway/api-ref/dedicated_gateway_apis_v2/binding_unbinding_access_control_policies/index.html)\n\nUse this resource to bind the APIs to the ACL policy within OpenTelekomCloud.\n\n> An ACL policy can only create one <span pulumi-lang-nodejs=\"`opentelekomcloud.ApigwAclPolicyAssociateV2`\" pulumi-lang-dotnet=\"`opentelekomcloud.ApigwAclPolicyAssociateV2`\" pulumi-lang-go=\"`ApigwAclPolicyAssociateV2`\" pulumi-lang-python=\"`ApigwAclPolicyAssociateV2`\" pulumi-lang-yaml=\"`opentelekomcloud.ApigwAclPolicyAssociateV2`\" pulumi-lang-java=\"`opentelekomcloud.ApigwAclPolicyAssociateV2`\">`opentelekomcloud.ApigwAclPolicyAssociateV2`</span> resource.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst gatewayId = config.requireObject<any>(\"gatewayId\");\nconst policyId = config.requireObject<any>(\"policyId\");\nconst apiPublishIds = config.requireObject<Array<string>>(\"apiPublishIds\");\nconst test = new opentelekomcloud.ApigwAclPolicyAssociateV2(\"test\", {\n    gatewayId: gatewayId,\n    policyId: policyId,\n    publishIds: apiPublishIds,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ngateway_id = config.require_object(\"gatewayId\")\npolicy_id = config.require_object(\"policyId\")\napi_publish_ids = config.require_object(\"apiPublishIds\")\ntest = opentelekomcloud.ApigwAclPolicyAssociateV2(\"test\",\n    gateway_id=gateway_id,\n    policy_id=policy_id,\n    publish_ids=api_publish_ids)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var gatewayId = config.RequireObject<dynamic>(\"gatewayId\");\n    var policyId = config.RequireObject<dynamic>(\"policyId\");\n    var apiPublishIds = config.RequireObject<string[]>(\"apiPublishIds\");\n    var test = new Opentelekomcloud.ApigwAclPolicyAssociateV2(\"test\", new()\n    {\n        GatewayId = gatewayId,\n        PolicyId = policyId,\n        PublishIds = apiPublishIds,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tgatewayId := cfg.RequireObject(\"gatewayId\")\n\t\tpolicyId := cfg.RequireObject(\"policyId\")\n\t\tapiPublishIds := cfg.Require(\"apiPublishIds\")\n\t\t_, err := opentelekomcloud.NewApigwAclPolicyAssociateV2(ctx, \"test\", &opentelekomcloud.ApigwAclPolicyAssociateV2Args{\n\t\t\tGatewayId:  pulumi.Any(gatewayId),\n\t\t\tPolicyId:   pulumi.Any(policyId),\n\t\t\tPublishIds: apiPublishIds,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ApigwAclPolicyAssociateV2;\nimport com.pulumi.opentelekomcloud.ApigwAclPolicyAssociateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var gatewayId = config.get(\"gatewayId\");\n        final var policyId = config.get(\"policyId\");\n        final var apiPublishIds = config.get(\"apiPublishIds\");\n        var test = new ApigwAclPolicyAssociateV2(\"test\", ApigwAclPolicyAssociateV2Args.builder()\n            .gatewayId(gatewayId)\n            .policyId(policyId)\n            .publishIds(apiPublishIds)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  gatewayId:\n    type: dynamic\n  policyId:\n    type: dynamic\n  apiPublishIds:\n    type: list(string)\nresources:\n  test:\n    type: opentelekomcloud:ApigwAclPolicyAssociateV2\n    properties:\n      gatewayId: ${gatewayId}\n      policyId: ${policyId}\n      publishIds: ${apiPublishIds}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAssociate resources can be imported using their `policy_id` and the APIG gateway instance ID to which the policy\n\nbelongs, separated by a slash, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/apigwAclPolicyAssociateV2:ApigwAclPolicyAssociateV2 test <gateway_id>/<policy_id>\n```\n\n","inputProperties":{"apigwAclPolicyAssociateV2Id":{"description":"Resource ID. The format is `<gateway_id>/<policy_id>`.\n","type":"string"},"gatewayId":{"description":"Specifies the ID of the dedicated gateway instance to which the APIs and the\nACL policy belong. Changing this will create a new resource.\n","type":"string"},"policyId":{"description":"Specifies the ACL Policy ID for APIs binding.\nChanging this will create a new resource.\n","type":"string"},"publishIds":{"description":"Specifies the publishing IDs corresponding to the APIs bound by the ACL policy.\n","items":{"type":"string"},"type":"array"}},"properties":{"apigwAclPolicyAssociateV2Id":{"description":"Resource ID. The format is `<gateway_id>/<policy_id>`.\n","type":"string"},"gatewayId":{"description":"Specifies the ID of the dedicated gateway instance to which the APIs and the\nACL policy belong. Changing this will create a new resource.\n","type":"string"},"policyId":{"description":"Specifies the ACL Policy ID for APIs binding.\nChanging this will create a new resource.\n","type":"string"},"publishIds":{"description":"Specifies the publishing IDs corresponding to the APIs bound by the ACL policy.\n","items":{"type":"string"},"type":"array"},"region":{"description":"Specifies the region where the dedicated instance and the throttling policy are located.\n","type":"string"}},"required":["apigwAclPolicyAssociateV2Id","gatewayId","policyId","publishIds","region"],"requiredInputs":["gatewayId","policyId","publishIds"],"stateInputs":{"description":"Input properties used for looking up and filtering ApigwAclPolicyAssociateV2 resources.\n","properties":{"apigwAclPolicyAssociateV2Id":{"description":"Resource ID. The format is `<gateway_id>/<policy_id>`.\n","type":"string"},"gatewayId":{"description":"Specifies the ID of the dedicated gateway instance to which the APIs and the\nACL policy belong. Changing this will create a new resource.\n","type":"string"},"policyId":{"description":"Specifies the ACL Policy ID for APIs binding.\nChanging this will create a new resource.\n","type":"string"},"publishIds":{"description":"Specifies the publishing IDs corresponding to the APIs bound by the ACL policy.\n","items":{"type":"string"},"type":"array"},"region":{"description":"Specifies the region where the dedicated instance and the throttling policy are located.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/apigwAclPolicyV2:ApigwAclPolicyV2":{"description":"Up-to-date reference of API arguments for API Gateway Acl service you can get at\n[documentation portal](https://docs.otc.t-systems.com/api-gateway/api-ref/dedicated_gateway_apis_v2/access_control_policy_management/index.html)\n\nManages an APIGW ACL policy resource within OpenTelekomCloud.\n\n## Example Usage\n\n## Import\n\nACL Policies can be imported using their `id` and related dedicated gateway ID, separated by a slash, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/apigwAclPolicyV2:ApigwAclPolicyV2 test <gateway_id>/<id>\n```\n\n","inputProperties":{"apigwAclPolicyV2Id":{"description":"The ID of the ACL policy.\n","type":"string"},"entityType":{"description":"Specifies the entity type of the ACL policy.\nThe valid values are as follows:\n+ `IP`: This rule is specified to control access to the API for specific IPs.\n+ `DOMAIN`: This rule is specified to control access to the API for specific accounts (specified by domain name).\n+ `DOMAIN_ID`: This rule is specified to control access to the API for specific accounts (specified by domain ID).\nChanging this will create a new resource.\n","type":"string"},"gatewayId":{"description":"Specifies the ID of the dedicated gateway instance to which the ACL\npolicy belongs.\nChanging this will create a new resource.\n","type":"string"},"name":{"description":"Specifies the name of the ACL policy.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, only English letters, Chinese characters, digits and underscores (_) are\nallowed. The name must start with an letter.\n","type":"string"},"type":{"description":"Specifies the type of the ACL policy.\nThe valid values are as follows:\n+ `PERMIT`: Allow specific IPs or accounts to access API.\n+ `DENY`: Forbid specific IPs or accounts to access API.\n","type":"string"},"value":{"description":"Specifies one or more objects from which the access will be controlled.\nSeparate multiple objects with commas (,).\n","type":"string"}},"properties":{"apigwAclPolicyV2Id":{"description":"The ID of the ACL policy.\n","type":"string"},"entityType":{"description":"Specifies the entity type of the ACL policy.\nThe valid values are as follows:\n+ `IP`: This rule is specified to control access to the API for specific IPs.\n+ `DOMAIN`: This rule is specified to control access to the API for specific accounts (specified by domain name).\n+ `DOMAIN_ID`: This rule is specified to control access to the API for specific accounts (specified by domain ID).\nChanging this will create a new resource.\n","type":"string"},"gatewayId":{"description":"Specifies the ID of the dedicated gateway instance to which the ACL\npolicy belongs.\nChanging this will create a new resource.\n","type":"string"},"name":{"description":"Specifies the name of the ACL policy.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, only English letters, Chinese characters, digits and underscores (_) are\nallowed. The name must start with an letter.\n","type":"string"},"region":{"description":"The region where the ACL policy is located.\n","type":"string"},"type":{"description":"Specifies the type of the ACL policy.\nThe valid values are as follows:\n+ `PERMIT`: Allow specific IPs or accounts to access API.\n+ `DENY`: Forbid specific IPs or accounts to access API.\n","type":"string"},"updatedAt":{"description":"The latest update time of the ACL policy.\n","type":"string"},"value":{"description":"Specifies one or more objects from which the access will be controlled.\nSeparate multiple objects with commas (,).\n","type":"string"}},"required":["apigwAclPolicyV2Id","entityType","gatewayId","name","region","type","updatedAt","value"],"requiredInputs":["entityType","gatewayId","type","value"],"stateInputs":{"description":"Input properties used for looking up and filtering ApigwAclPolicyV2 resources.\n","properties":{"apigwAclPolicyV2Id":{"description":"The ID of the ACL policy.\n","type":"string"},"entityType":{"description":"Specifies the entity type of the ACL policy.\nThe valid values are as follows:\n+ `IP`: This rule is specified to control access to the API for specific IPs.\n+ `DOMAIN`: This rule is specified to control access to the API for specific accounts (specified by domain name).\n+ `DOMAIN_ID`: This rule is specified to control access to the API for specific accounts (specified by domain ID).\nChanging this will create a new resource.\n","type":"string"},"gatewayId":{"description":"Specifies the ID of the dedicated gateway instance to which the ACL\npolicy belongs.\nChanging this will create a new resource.\n","type":"string"},"name":{"description":"Specifies the name of the ACL policy.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, only English letters, Chinese characters, digits and underscores (_) are\nallowed. The name must start with an letter.\n","type":"string"},"region":{"description":"The region where the ACL policy is located.\n","type":"string"},"type":{"description":"Specifies the type of the ACL policy.\nThe valid values are as follows:\n+ `PERMIT`: Allow specific IPs or accounts to access API.\n+ `DENY`: Forbid specific IPs or accounts to access API.\n","type":"string"},"updatedAt":{"description":"The latest update time of the ACL policy.\n","type":"string"},"value":{"description":"Specifies one or more objects from which the access will be controlled.\nSeparate multiple objects with commas (,).\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/apigwApiPublishmentV2:ApigwApiPublishmentV2":{"description":"## Example Usage\n\n### Publish a new version of the API\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst gatewayId = config.requireObject<any>(\"gatewayId\");\nconst environmentId = config.requireObject<any>(\"environmentId\");\nconst apiId = config.requireObject<any>(\"apiId\");\nconst _default = new opentelekomcloud.ApigwApiPublishmentV2(\"default\", {\n    gatewayId: gatewayId,\n    environmentId: environmentId,\n    apiId: apiId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ngateway_id = config.require_object(\"gatewayId\")\nenvironment_id = config.require_object(\"environmentId\")\napi_id = config.require_object(\"apiId\")\ndefault = opentelekomcloud.ApigwApiPublishmentV2(\"default\",\n    gateway_id=gateway_id,\n    environment_id=environment_id,\n    api_id=api_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var gatewayId = config.RequireObject<dynamic>(\"gatewayId\");\n    var environmentId = config.RequireObject<dynamic>(\"environmentId\");\n    var apiId = config.RequireObject<dynamic>(\"apiId\");\n    var @default = new Opentelekomcloud.ApigwApiPublishmentV2(\"default\", new()\n    {\n        GatewayId = gatewayId,\n        EnvironmentId = environmentId,\n        ApiId = apiId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tgatewayId := cfg.RequireObject(\"gatewayId\")\n\t\tenvironmentId := cfg.RequireObject(\"environmentId\")\n\t\tapiId := cfg.RequireObject(\"apiId\")\n\t\t_, err := opentelekomcloud.NewApigwApiPublishmentV2(ctx, \"default\", &opentelekomcloud.ApigwApiPublishmentV2Args{\n\t\t\tGatewayId:     pulumi.Any(gatewayId),\n\t\t\tEnvironmentId: pulumi.Any(environmentId),\n\t\t\tApiId:         pulumi.Any(apiId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ApigwApiPublishmentV2;\nimport com.pulumi.opentelekomcloud.ApigwApiPublishmentV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var gatewayId = config.get(\"gatewayId\");\n        final var environmentId = config.get(\"environmentId\");\n        final var apiId = config.get(\"apiId\");\n        var default_ = new ApigwApiPublishmentV2(\"default\", ApigwApiPublishmentV2Args.builder()\n            .gatewayId(gatewayId)\n            .environmentId(environmentId)\n            .apiId(apiId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  gatewayId:\n    type: dynamic\n  environmentId:\n    type: dynamic\n  apiId:\n    type: dynamic\nresources:\n  default:\n    type: opentelekomcloud:ApigwApiPublishmentV2\n    properties:\n      gatewayId: ${gatewayId}\n      environmentId: ${environmentId}\n      apiId: ${apiId}\n```\n<!--End PulumiCodeChooser -->\n\n### Switch to a specified version of the API which is published\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst gatewayId = config.requireObject<any>(\"gatewayId\");\nconst environmentId = config.requireObject<any>(\"environmentId\");\nconst apiId = config.requireObject<any>(\"apiId\");\nconst versionId = config.requireObject<any>(\"versionId\");\nconst _default = new opentelekomcloud.ApigwApiPublishmentV2(\"default\", {\n    gatewayId: gatewayId,\n    environmentId: environmentId,\n    apiId: apiId,\n    versionId: versionId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ngateway_id = config.require_object(\"gatewayId\")\nenvironment_id = config.require_object(\"environmentId\")\napi_id = config.require_object(\"apiId\")\nversion_id = config.require_object(\"versionId\")\ndefault = opentelekomcloud.ApigwApiPublishmentV2(\"default\",\n    gateway_id=gateway_id,\n    environment_id=environment_id,\n    api_id=api_id,\n    version_id=version_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var gatewayId = config.RequireObject<dynamic>(\"gatewayId\");\n    var environmentId = config.RequireObject<dynamic>(\"environmentId\");\n    var apiId = config.RequireObject<dynamic>(\"apiId\");\n    var versionId = config.RequireObject<dynamic>(\"versionId\");\n    var @default = new Opentelekomcloud.ApigwApiPublishmentV2(\"default\", new()\n    {\n        GatewayId = gatewayId,\n        EnvironmentId = environmentId,\n        ApiId = apiId,\n        VersionId = versionId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tgatewayId := cfg.RequireObject(\"gatewayId\")\n\t\tenvironmentId := cfg.RequireObject(\"environmentId\")\n\t\tapiId := cfg.RequireObject(\"apiId\")\n\t\tversionId := cfg.RequireObject(\"versionId\")\n\t\t_, err := opentelekomcloud.NewApigwApiPublishmentV2(ctx, \"default\", &opentelekomcloud.ApigwApiPublishmentV2Args{\n\t\t\tGatewayId:     pulumi.Any(gatewayId),\n\t\t\tEnvironmentId: pulumi.Any(environmentId),\n\t\t\tApiId:         pulumi.Any(apiId),\n\t\t\tVersionId:     pulumi.Any(versionId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ApigwApiPublishmentV2;\nimport com.pulumi.opentelekomcloud.ApigwApiPublishmentV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var gatewayId = config.get(\"gatewayId\");\n        final var environmentId = config.get(\"environmentId\");\n        final var apiId = config.get(\"apiId\");\n        final var versionId = config.get(\"versionId\");\n        var default_ = new ApigwApiPublishmentV2(\"default\", ApigwApiPublishmentV2Args.builder()\n            .gatewayId(gatewayId)\n            .environmentId(environmentId)\n            .apiId(apiId)\n            .versionId(versionId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  gatewayId:\n    type: dynamic\n  environmentId:\n    type: dynamic\n  apiId:\n    type: dynamic\n  versionId:\n    type: dynamic\nresources:\n  default:\n    type: opentelekomcloud:ApigwApiPublishmentV2\n    properties:\n      gatewayId: ${gatewayId}\n      environmentId: ${environmentId}\n      apiId: ${apiId}\n      versionId: ${versionId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe publishment can be imported using related `instance_id`, `environment_id` and `api_id`, separated by slashes, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/apigwApiPublishmentV2:ApigwApiPublishmentV2 pub <instance_id>/<environment_id>/<api_id>\n```\n\n","inputProperties":{"apiId":{"description":"Specifies the ID of the API to be published or already published.\nChanging this will create a new resource.\n","type":"string"},"apigwApiPublishmentV2Id":{"description":"The resource ID, which is constructed from the instance ID, environment ID, and API ID, separated by slashes.\n","type":"string"},"description":{"description":"Specifies the description of the current publish.\n","type":"string"},"environmentId":{"description":"Specifies the ID of the environment to which the current version of the API\nwill be published or has been published.\nChanging this will create a new resource.\n","type":"string"},"gatewayId":{"type":"string"},"versionId":{"description":"Specifies the version ID of the current publish.\n","type":"string"}},"properties":{"apiId":{"description":"Specifies the ID of the API to be published or already published.\nChanging this will create a new resource.\n","type":"string"},"apiName":{"type":"string"},"apigwApiPublishmentV2Id":{"description":"The resource ID, which is constructed from the instance ID, environment ID, and API ID, separated by slashes.\n","type":"string"},"description":{"description":"Specifies the description of the current publish.\n","type":"string"},"environmentId":{"description":"Specifies the ID of the environment to which the current version of the API\nwill be published or has been published.\nChanging this will create a new resource.\n","type":"string"},"environmentName":{"description":"The name of the environment to which the current version of the API is published.\n","type":"string"},"gatewayId":{"type":"string"},"histories":{"description":"All publish history of the API.\nThe object structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwApiPublishmentV2History:ApigwApiPublishmentV2History"},"type":"array"},"publishId":{"description":"The publishing ID of the API in current environment.\n","type":"string"},"publishedAt":{"description":"Time when the current version was published.\n","type":"string"},"region":{"description":"The region in which to APIs was published.\n","type":"string"},"versionId":{"description":"Specifies the version ID of the current publish.\n","type":"string"}},"required":["apiId","apiName","apigwApiPublishmentV2Id","environmentId","environmentName","gatewayId","histories","publishId","publishedAt","region"],"requiredInputs":["apiId","environmentId","gatewayId"],"stateInputs":{"description":"Input properties used for looking up and filtering ApigwApiPublishmentV2 resources.\n","properties":{"apiId":{"description":"Specifies the ID of the API to be published or already published.\nChanging this will create a new resource.\n","type":"string"},"apiName":{"type":"string"},"apigwApiPublishmentV2Id":{"description":"The resource ID, which is constructed from the instance ID, environment ID, and API ID, separated by slashes.\n","type":"string"},"description":{"description":"Specifies the description of the current publish.\n","type":"string"},"environmentId":{"description":"Specifies the ID of the environment to which the current version of the API\nwill be published or has been published.\nChanging this will create a new resource.\n","type":"string"},"environmentName":{"description":"The name of the environment to which the current version of the API is published.\n","type":"string"},"gatewayId":{"type":"string"},"histories":{"description":"All publish history of the API.\nThe object structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwApiPublishmentV2History:ApigwApiPublishmentV2History"},"type":"array"},"publishId":{"description":"The publishing ID of the API in current environment.\n","type":"string"},"publishedAt":{"description":"Time when the current version was published.\n","type":"string"},"region":{"description":"The region in which to APIs was published.\n","type":"string"},"versionId":{"description":"Specifies the version ID of the current publish.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/apigwApiV2:ApigwApiV2":{"description":"Up-to-date reference of API arguments for API Gateway API service you can get at\n[documentation portal](https://docs.otc.t-systems.com/api-gateway/api-ref/dedicated_gateway_apis_v2/api_management/index.html)\n\nProvides an API gateway API resource.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst vpcId = config.requireObject<any>(\"vpcId\");\nconst subnetId = config.requireObject<any>(\"subnetId\");\nconst secgroupId = config.requireObject<any>(\"secgroupId\");\nconst gateway = new opentelekomcloud.ApigwGatewayV2(\"gateway\", {\n    name: \"my_gw\",\n    specId: \"BASIC\",\n    vpcId: vpcId,\n    subnetId: subnetId,\n    securityGroupId: secgroupId,\n    availabilityZones: [\n        \"eu-de-01\",\n        \"eu-de-02\",\n    ],\n    description: \"test gateway 2\",\n    ingressBandwidthSize: 5,\n    ingressBandwidthChargingMode: \"bandwidth\",\n    maintainBegin: \"02:00:00\",\n});\nconst env = new opentelekomcloud.ApigwEnvironmentV2(\"env\", {\n    name: \"my_env\",\n    instanceId: gateway.apigwGatewayV2Id,\n    description: \"test description\",\n});\nconst group = new opentelekomcloud.ApigwGroupV2(\"group\", {\n    name: \"my_group\",\n    instanceId: gateway.apigwGatewayV2Id,\n    description: \"test description\",\n    environments: [{\n        variables: [{\n            name: \"test-name\",\n            value: \"test-value\",\n        }],\n        environmentId: env.apigwEnvironmentV2Id,\n    }],\n});\nconst api = new opentelekomcloud.ApigwApiV2(\"api\", {\n    gatewayId: gateway.apigwGatewayV2Id,\n    groupId: group.apigwGroupV2Id,\n    name: \"my_api\",\n    type: \"Public\",\n    requestProtocol: \"HTTP\",\n    requestMethod: \"GET\",\n    requestUri: \"/user_info/{user_age}\",\n    securityAuthenticationType: \"APP\",\n    matchMode: \"EXACT\",\n    successResponse: \"Success response\",\n    failureResponse: \"Failed response\",\n    description: \"Created by script\",\n    requestParams: [\n        {\n            name: \"user_age\",\n            type: \"NUMBER\",\n            location: \"PATH\",\n            required: true,\n            maximum: 200,\n            minimum: 0,\n        },\n        {\n            name: \"X-TEST-ENUM\",\n            type: \"STRING\",\n            location: \"HEADER\",\n            maximum: 20,\n            minimum: 10,\n            sample: \"ACC_TEST_XXX\",\n            passthrough: true,\n            enumeration: \"ACC_TEST_A,ACC_TEST_B\",\n        },\n    ],\n    backendParams: [{\n        type: \"REQUEST\",\n        name: \"userAge\",\n        location: \"PATH\",\n        value: \"user_age\",\n    }],\n    http: {\n        urlDomain: \"opentelekomcloud.my.com\",\n        requestUri: \"/getUserAge/{userAge}\",\n        requestMethod: \"GET\",\n        requestProtocol: \"HTTP\",\n        timeout: 30000,\n        retryCount: 1,\n    },\n    httpPolicies: [{\n        urlDomain: \"opentelekomcloud.my.com\",\n        name: \"my_policy1\",\n        requestProtocol: \"HTTP\",\n        requestMethod: \"GET\",\n        effectiveMode: \"ANY\",\n        requestUri: \"/getUserAge/{userAge}\",\n        timeout: 30000,\n        retryCount: 1,\n        backendParams: [\n            {\n                type: \"REQUEST\",\n                name: \"userAge\",\n                location: \"PATH\",\n                value: \"user_age\",\n            },\n            {\n                type: \"SYSTEM\",\n                name: \"%[2]s\",\n                location: \"HEADER\",\n                value: \"serverName\",\n                systemParamType: \"internal\",\n            },\n        ],\n        conditions: [{\n            origin: \"param\",\n            paramName: \"user_age\",\n            type: \"EXACT\",\n            value: \"28\",\n        }],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nvpc_id = config.require_object(\"vpcId\")\nsubnet_id = config.require_object(\"subnetId\")\nsecgroup_id = config.require_object(\"secgroupId\")\ngateway = opentelekomcloud.ApigwGatewayV2(\"gateway\",\n    name=\"my_gw\",\n    spec_id=\"BASIC\",\n    vpc_id=vpc_id,\n    subnet_id=subnet_id,\n    security_group_id=secgroup_id,\n    availability_zones=[\n        \"eu-de-01\",\n        \"eu-de-02\",\n    ],\n    description=\"test gateway 2\",\n    ingress_bandwidth_size=5,\n    ingress_bandwidth_charging_mode=\"bandwidth\",\n    maintain_begin=\"02:00:00\")\nenv = opentelekomcloud.ApigwEnvironmentV2(\"env\",\n    name=\"my_env\",\n    instance_id=gateway.apigw_gateway_v2_id,\n    description=\"test description\")\ngroup = opentelekomcloud.ApigwGroupV2(\"group\",\n    name=\"my_group\",\n    instance_id=gateway.apigw_gateway_v2_id,\n    description=\"test description\",\n    environments=[{\n        \"variables\": [{\n            \"name\": \"test-name\",\n            \"value\": \"test-value\",\n        }],\n        \"environment_id\": env.apigw_environment_v2_id,\n    }])\napi = opentelekomcloud.ApigwApiV2(\"api\",\n    gateway_id=gateway.apigw_gateway_v2_id,\n    group_id=group.apigw_group_v2_id,\n    name=\"my_api\",\n    type=\"Public\",\n    request_protocol=\"HTTP\",\n    request_method=\"GET\",\n    request_uri=\"/user_info/{user_age}\",\n    security_authentication_type=\"APP\",\n    match_mode=\"EXACT\",\n    success_response=\"Success response\",\n    failure_response=\"Failed response\",\n    description=\"Created by script\",\n    request_params=[\n        {\n            \"name\": \"user_age\",\n            \"type\": \"NUMBER\",\n            \"location\": \"PATH\",\n            \"required\": True,\n            \"maximum\": 200,\n            \"minimum\": 0,\n        },\n        {\n            \"name\": \"X-TEST-ENUM\",\n            \"type\": \"STRING\",\n            \"location\": \"HEADER\",\n            \"maximum\": 20,\n            \"minimum\": 10,\n            \"sample\": \"ACC_TEST_XXX\",\n            \"passthrough\": True,\n            \"enumeration\": \"ACC_TEST_A,ACC_TEST_B\",\n        },\n    ],\n    backend_params=[{\n        \"type\": \"REQUEST\",\n        \"name\": \"userAge\",\n        \"location\": \"PATH\",\n        \"value\": \"user_age\",\n    }],\n    http={\n        \"url_domain\": \"opentelekomcloud.my.com\",\n        \"request_uri\": \"/getUserAge/{userAge}\",\n        \"request_method\": \"GET\",\n        \"request_protocol\": \"HTTP\",\n        \"timeout\": 30000,\n        \"retry_count\": 1,\n    },\n    http_policies=[{\n        \"url_domain\": \"opentelekomcloud.my.com\",\n        \"name\": \"my_policy1\",\n        \"request_protocol\": \"HTTP\",\n        \"request_method\": \"GET\",\n        \"effective_mode\": \"ANY\",\n        \"request_uri\": \"/getUserAge/{userAge}\",\n        \"timeout\": 30000,\n        \"retry_count\": 1,\n        \"backend_params\": [\n            {\n                \"type\": \"REQUEST\",\n                \"name\": \"userAge\",\n                \"location\": \"PATH\",\n                \"value\": \"user_age\",\n            },\n            {\n                \"type\": \"SYSTEM\",\n                \"name\": \"%[2]s\",\n                \"location\": \"HEADER\",\n                \"value\": \"serverName\",\n                \"system_param_type\": \"internal\",\n            },\n        ],\n        \"conditions\": [{\n            \"origin\": \"param\",\n            \"param_name\": \"user_age\",\n            \"type\": \"EXACT\",\n            \"value\": \"28\",\n        }],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var vpcId = config.RequireObject<dynamic>(\"vpcId\");\n    var subnetId = config.RequireObject<dynamic>(\"subnetId\");\n    var secgroupId = config.RequireObject<dynamic>(\"secgroupId\");\n    var gateway = new Opentelekomcloud.ApigwGatewayV2(\"gateway\", new()\n    {\n        Name = \"my_gw\",\n        SpecId = \"BASIC\",\n        VpcId = vpcId,\n        SubnetId = subnetId,\n        SecurityGroupId = secgroupId,\n        AvailabilityZones = new[]\n        {\n            \"eu-de-01\",\n            \"eu-de-02\",\n        },\n        Description = \"test gateway 2\",\n        IngressBandwidthSize = 5,\n        IngressBandwidthChargingMode = \"bandwidth\",\n        MaintainBegin = \"02:00:00\",\n    });\n\n    var env = new Opentelekomcloud.ApigwEnvironmentV2(\"env\", new()\n    {\n        Name = \"my_env\",\n        InstanceId = gateway.ApigwGatewayV2Id,\n        Description = \"test description\",\n    });\n\n    var @group = new Opentelekomcloud.ApigwGroupV2(\"group\", new()\n    {\n        Name = \"my_group\",\n        InstanceId = gateway.ApigwGatewayV2Id,\n        Description = \"test description\",\n        Environments = new[]\n        {\n            new Opentelekomcloud.Inputs.ApigwGroupV2EnvironmentArgs\n            {\n                Variables = new[]\n                {\n                    new Opentelekomcloud.Inputs.ApigwGroupV2EnvironmentVariableArgs\n                    {\n                        Name = \"test-name\",\n                        Value = \"test-value\",\n                    },\n                },\n                EnvironmentId = env.ApigwEnvironmentV2Id,\n            },\n        },\n    });\n\n    var api = new Opentelekomcloud.ApigwApiV2(\"api\", new()\n    {\n        GatewayId = gateway.ApigwGatewayV2Id,\n        GroupId = @group.ApigwGroupV2Id,\n        Name = \"my_api\",\n        Type = \"Public\",\n        RequestProtocol = \"HTTP\",\n        RequestMethod = \"GET\",\n        RequestUri = \"/user_info/{user_age}\",\n        SecurityAuthenticationType = \"APP\",\n        MatchMode = \"EXACT\",\n        SuccessResponse = \"Success response\",\n        FailureResponse = \"Failed response\",\n        Description = \"Created by script\",\n        RequestParams = new[]\n        {\n            new Opentelekomcloud.Inputs.ApigwApiV2RequestParamArgs\n            {\n                Name = \"user_age\",\n                Type = \"NUMBER\",\n                Location = \"PATH\",\n                Required = true,\n                Maximum = 200,\n                Minimum = 0,\n            },\n            new Opentelekomcloud.Inputs.ApigwApiV2RequestParamArgs\n            {\n                Name = \"X-TEST-ENUM\",\n                Type = \"STRING\",\n                Location = \"HEADER\",\n                Maximum = 20,\n                Minimum = 10,\n                Sample = \"ACC_TEST_XXX\",\n                Passthrough = true,\n                Enumeration = \"ACC_TEST_A,ACC_TEST_B\",\n            },\n        },\n        BackendParams = new[]\n        {\n            new Opentelekomcloud.Inputs.ApigwApiV2BackendParamArgs\n            {\n                Type = \"REQUEST\",\n                Name = \"userAge\",\n                Location = \"PATH\",\n                Value = \"user_age\",\n            },\n        },\n        Http = new Opentelekomcloud.Inputs.ApigwApiV2HttpArgs\n        {\n            UrlDomain = \"opentelekomcloud.my.com\",\n            RequestUri = \"/getUserAge/{userAge}\",\n            RequestMethod = \"GET\",\n            RequestProtocol = \"HTTP\",\n            Timeout = 30000,\n            RetryCount = 1,\n        },\n        HttpPolicies = new[]\n        {\n            new Opentelekomcloud.Inputs.ApigwApiV2HttpPolicyArgs\n            {\n                UrlDomain = \"opentelekomcloud.my.com\",\n                Name = \"my_policy1\",\n                RequestProtocol = \"HTTP\",\n                RequestMethod = \"GET\",\n                EffectiveMode = \"ANY\",\n                RequestUri = \"/getUserAge/{userAge}\",\n                Timeout = 30000,\n                RetryCount = 1,\n                BackendParams = new[]\n                {\n                    new Opentelekomcloud.Inputs.ApigwApiV2HttpPolicyBackendParamArgs\n                    {\n                        Type = \"REQUEST\",\n                        Name = \"userAge\",\n                        Location = \"PATH\",\n                        Value = \"user_age\",\n                    },\n                    new Opentelekomcloud.Inputs.ApigwApiV2HttpPolicyBackendParamArgs\n                    {\n                        Type = \"SYSTEM\",\n                        Name = \"%[2]s\",\n                        Location = \"HEADER\",\n                        Value = \"serverName\",\n                        SystemParamType = \"internal\",\n                    },\n                },\n                Conditions = new[]\n                {\n                    new Opentelekomcloud.Inputs.ApigwApiV2HttpPolicyConditionArgs\n                    {\n                        Origin = \"param\",\n                        ParamName = \"user_age\",\n                        Type = \"EXACT\",\n                        Value = \"28\",\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tvpcId := cfg.RequireObject(\"vpcId\")\n\t\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\tsecgroupId := cfg.RequireObject(\"secgroupId\")\n\t\tgateway, err := opentelekomcloud.NewApigwGatewayV2(ctx, \"gateway\", &opentelekomcloud.ApigwGatewayV2Args{\n\t\t\tName:            pulumi.String(\"my_gw\"),\n\t\t\tSpecId:          pulumi.String(\"BASIC\"),\n\t\t\tVpcId:           pulumi.Any(vpcId),\n\t\t\tSubnetId:        pulumi.Any(subnetId),\n\t\t\tSecurityGroupId: pulumi.Any(secgroupId),\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"eu-de-01\"),\n\t\t\t\tpulumi.String(\"eu-de-02\"),\n\t\t\t},\n\t\t\tDescription:                  pulumi.String(\"test gateway 2\"),\n\t\t\tIngressBandwidthSize:         pulumi.Float64(5),\n\t\t\tIngressBandwidthChargingMode: pulumi.String(\"bandwidth\"),\n\t\t\tMaintainBegin:                pulumi.String(\"02:00:00\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tenv, err := opentelekomcloud.NewApigwEnvironmentV2(ctx, \"env\", &opentelekomcloud.ApigwEnvironmentV2Args{\n\t\t\tName:        pulumi.String(\"my_env\"),\n\t\t\tInstanceId:  gateway.ApigwGatewayV2Id,\n\t\t\tDescription: pulumi.String(\"test description\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgroup, err := opentelekomcloud.NewApigwGroupV2(ctx, \"group\", &opentelekomcloud.ApigwGroupV2Args{\n\t\t\tName:        pulumi.String(\"my_group\"),\n\t\t\tInstanceId:  gateway.ApigwGatewayV2Id,\n\t\t\tDescription: pulumi.String(\"test description\"),\n\t\t\tEnvironments: opentelekomcloud.ApigwGroupV2EnvironmentArray{\n\t\t\t\t&opentelekomcloud.ApigwGroupV2EnvironmentArgs{\n\t\t\t\t\tVariables: opentelekomcloud.ApigwGroupV2EnvironmentVariableArray{\n\t\t\t\t\t\t&opentelekomcloud.ApigwGroupV2EnvironmentVariableArgs{\n\t\t\t\t\t\t\tName:  pulumi.String(\"test-name\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"test-value\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tEnvironmentId: env.ApigwEnvironmentV2Id,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewApigwApiV2(ctx, \"api\", &opentelekomcloud.ApigwApiV2Args{\n\t\t\tGatewayId:                  gateway.ApigwGatewayV2Id,\n\t\t\tGroupId:                    group.ApigwGroupV2Id,\n\t\t\tName:                       pulumi.String(\"my_api\"),\n\t\t\tType:                       pulumi.String(\"Public\"),\n\t\t\tRequestProtocol:            pulumi.String(\"HTTP\"),\n\t\t\tRequestMethod:              pulumi.String(\"GET\"),\n\t\t\tRequestUri:                 pulumi.String(\"/user_info/{user_age}\"),\n\t\t\tSecurityAuthenticationType: pulumi.String(\"APP\"),\n\t\t\tMatchMode:                  pulumi.String(\"EXACT\"),\n\t\t\tSuccessResponse:            pulumi.String(\"Success response\"),\n\t\t\tFailureResponse:            pulumi.String(\"Failed response\"),\n\t\t\tDescription:                pulumi.String(\"Created by script\"),\n\t\t\tRequestParams: opentelekomcloud.ApigwApiV2RequestParamArray{\n\t\t\t\t&opentelekomcloud.ApigwApiV2RequestParamArgs{\n\t\t\t\t\tName:     pulumi.String(\"user_age\"),\n\t\t\t\t\tType:     pulumi.String(\"NUMBER\"),\n\t\t\t\t\tLocation: pulumi.String(\"PATH\"),\n\t\t\t\t\tRequired: pulumi.Bool(true),\n\t\t\t\t\tMaximum:  pulumi.Float64(200),\n\t\t\t\t\tMinimum:  pulumi.Float64(0),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.ApigwApiV2RequestParamArgs{\n\t\t\t\t\tName:        pulumi.String(\"X-TEST-ENUM\"),\n\t\t\t\t\tType:        pulumi.String(\"STRING\"),\n\t\t\t\t\tLocation:    pulumi.String(\"HEADER\"),\n\t\t\t\t\tMaximum:     pulumi.Float64(20),\n\t\t\t\t\tMinimum:     pulumi.Float64(10),\n\t\t\t\t\tSample:      pulumi.String(\"ACC_TEST_XXX\"),\n\t\t\t\t\tPassthrough: pulumi.Bool(true),\n\t\t\t\t\tEnumeration: pulumi.String(\"ACC_TEST_A,ACC_TEST_B\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackendParams: opentelekomcloud.ApigwApiV2BackendParamArray{\n\t\t\t\t&opentelekomcloud.ApigwApiV2BackendParamArgs{\n\t\t\t\t\tType:     pulumi.String(\"REQUEST\"),\n\t\t\t\t\tName:     pulumi.String(\"userAge\"),\n\t\t\t\t\tLocation: pulumi.String(\"PATH\"),\n\t\t\t\t\tValue:    pulumi.String(\"user_age\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tHttp: &opentelekomcloud.ApigwApiV2HttpArgs{\n\t\t\t\tUrlDomain:       pulumi.String(\"opentelekomcloud.my.com\"),\n\t\t\t\tRequestUri:      pulumi.String(\"/getUserAge/{userAge}\"),\n\t\t\t\tRequestMethod:   pulumi.String(\"GET\"),\n\t\t\t\tRequestProtocol: pulumi.String(\"HTTP\"),\n\t\t\t\tTimeout:         pulumi.Float64(30000),\n\t\t\t\tRetryCount:      pulumi.Float64(1),\n\t\t\t},\n\t\t\tHttpPolicies: opentelekomcloud.ApigwApiV2HttpPolicyArray{\n\t\t\t\t&opentelekomcloud.ApigwApiV2HttpPolicyArgs{\n\t\t\t\t\tUrlDomain:       pulumi.String(\"opentelekomcloud.my.com\"),\n\t\t\t\t\tName:            pulumi.String(\"my_policy1\"),\n\t\t\t\t\tRequestProtocol: pulumi.String(\"HTTP\"),\n\t\t\t\t\tRequestMethod:   pulumi.String(\"GET\"),\n\t\t\t\t\tEffectiveMode:   pulumi.String(\"ANY\"),\n\t\t\t\t\tRequestUri:      pulumi.String(\"/getUserAge/{userAge}\"),\n\t\t\t\t\tTimeout:         pulumi.Float64(30000),\n\t\t\t\t\tRetryCount:      pulumi.Float64(1),\n\t\t\t\t\tBackendParams: opentelekomcloud.ApigwApiV2HttpPolicyBackendParamArray{\n\t\t\t\t\t\t&opentelekomcloud.ApigwApiV2HttpPolicyBackendParamArgs{\n\t\t\t\t\t\t\tType:     pulumi.String(\"REQUEST\"),\n\t\t\t\t\t\t\tName:     pulumi.String(\"userAge\"),\n\t\t\t\t\t\t\tLocation: pulumi.String(\"PATH\"),\n\t\t\t\t\t\t\tValue:    pulumi.String(\"user_age\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t&opentelekomcloud.ApigwApiV2HttpPolicyBackendParamArgs{\n\t\t\t\t\t\t\tType:            pulumi.String(\"SYSTEM\"),\n\t\t\t\t\t\t\tName:            pulumi.String(\"%[2]s\"),\n\t\t\t\t\t\t\tLocation:        pulumi.String(\"HEADER\"),\n\t\t\t\t\t\t\tValue:           pulumi.String(\"serverName\"),\n\t\t\t\t\t\t\tSystemParamType: pulumi.String(\"internal\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tConditions: opentelekomcloud.ApigwApiV2HttpPolicyConditionArray{\n\t\t\t\t\t\t&opentelekomcloud.ApigwApiV2HttpPolicyConditionArgs{\n\t\t\t\t\t\t\tOrigin:    pulumi.String(\"param\"),\n\t\t\t\t\t\t\tParamName: pulumi.String(\"user_age\"),\n\t\t\t\t\t\t\tType:      pulumi.String(\"EXACT\"),\n\t\t\t\t\t\t\tValue:     pulumi.String(\"28\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ApigwGatewayV2;\nimport com.pulumi.opentelekomcloud.ApigwGatewayV2Args;\nimport com.pulumi.opentelekomcloud.ApigwEnvironmentV2;\nimport com.pulumi.opentelekomcloud.ApigwEnvironmentV2Args;\nimport com.pulumi.opentelekomcloud.ApigwGroupV2;\nimport com.pulumi.opentelekomcloud.ApigwGroupV2Args;\nimport com.pulumi.opentelekomcloud.inputs.ApigwGroupV2EnvironmentArgs;\nimport com.pulumi.opentelekomcloud.ApigwApiV2;\nimport com.pulumi.opentelekomcloud.ApigwApiV2Args;\nimport com.pulumi.opentelekomcloud.inputs.ApigwApiV2RequestParamArgs;\nimport com.pulumi.opentelekomcloud.inputs.ApigwApiV2BackendParamArgs;\nimport com.pulumi.opentelekomcloud.inputs.ApigwApiV2HttpArgs;\nimport com.pulumi.opentelekomcloud.inputs.ApigwApiV2HttpPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var vpcId = config.get(\"vpcId\");\n        final var subnetId = config.get(\"subnetId\");\n        final var secgroupId = config.get(\"secgroupId\");\n        var gateway = new ApigwGatewayV2(\"gateway\", ApigwGatewayV2Args.builder()\n            .name(\"my_gw\")\n            .specId(\"BASIC\")\n            .vpcId(vpcId)\n            .subnetId(subnetId)\n            .securityGroupId(secgroupId)\n            .availabilityZones(            \n                \"eu-de-01\",\n                \"eu-de-02\")\n            .description(\"test gateway 2\")\n            .ingressBandwidthSize(5.0)\n            .ingressBandwidthChargingMode(\"bandwidth\")\n            .maintainBegin(\"02:00:00\")\n            .build());\n\n        var env = new ApigwEnvironmentV2(\"env\", ApigwEnvironmentV2Args.builder()\n            .name(\"my_env\")\n            .instanceId(gateway.apigwGatewayV2Id())\n            .description(\"test description\")\n            .build());\n\n        var group = new ApigwGroupV2(\"group\", ApigwGroupV2Args.builder()\n            .name(\"my_group\")\n            .instanceId(gateway.apigwGatewayV2Id())\n            .description(\"test description\")\n            .environments(ApigwGroupV2EnvironmentArgs.builder()\n                .variables(ApigwGroupV2EnvironmentVariableArgs.builder()\n                    .name(\"test-name\")\n                    .value(\"test-value\")\n                    .build())\n                .environmentId(env.apigwEnvironmentV2Id())\n                .build())\n            .build());\n\n        var api = new ApigwApiV2(\"api\", ApigwApiV2Args.builder()\n            .gatewayId(gateway.apigwGatewayV2Id())\n            .groupId(group.apigwGroupV2Id())\n            .name(\"my_api\")\n            .type(\"Public\")\n            .requestProtocol(\"HTTP\")\n            .requestMethod(\"GET\")\n            .requestUri(\"/user_info/{user_age}\")\n            .securityAuthenticationType(\"APP\")\n            .matchMode(\"EXACT\")\n            .successResponse(\"Success response\")\n            .failureResponse(\"Failed response\")\n            .description(\"Created by script\")\n            .requestParams(            \n                ApigwApiV2RequestParamArgs.builder()\n                    .name(\"user_age\")\n                    .type(\"NUMBER\")\n                    .location(\"PATH\")\n                    .required(true)\n                    .maximum(200.0)\n                    .minimum(0.0)\n                    .build(),\n                ApigwApiV2RequestParamArgs.builder()\n                    .name(\"X-TEST-ENUM\")\n                    .type(\"STRING\")\n                    .location(\"HEADER\")\n                    .maximum(20.0)\n                    .minimum(10.0)\n                    .sample(\"ACC_TEST_XXX\")\n                    .passthrough(true)\n                    .enumeration(\"ACC_TEST_A,ACC_TEST_B\")\n                    .build())\n            .backendParams(ApigwApiV2BackendParamArgs.builder()\n                .type(\"REQUEST\")\n                .name(\"userAge\")\n                .location(\"PATH\")\n                .value(\"user_age\")\n                .build())\n            .http(ApigwApiV2HttpArgs.builder()\n                .urlDomain(\"opentelekomcloud.my.com\")\n                .requestUri(\"/getUserAge/{userAge}\")\n                .requestMethod(\"GET\")\n                .requestProtocol(\"HTTP\")\n                .timeout(30000.0)\n                .retryCount(1.0)\n                .build())\n            .httpPolicies(ApigwApiV2HttpPolicyArgs.builder()\n                .urlDomain(\"opentelekomcloud.my.com\")\n                .name(\"my_policy1\")\n                .requestProtocol(\"HTTP\")\n                .requestMethod(\"GET\")\n                .effectiveMode(\"ANY\")\n                .requestUri(\"/getUserAge/{userAge}\")\n                .timeout(30000.0)\n                .retryCount(1.0)\n                .backendParams(                \n                    ApigwApiV2HttpPolicyBackendParamArgs.builder()\n                        .type(\"REQUEST\")\n                        .name(\"userAge\")\n                        .location(\"PATH\")\n                        .value(\"user_age\")\n                        .build(),\n                    ApigwApiV2HttpPolicyBackendParamArgs.builder()\n                        .type(\"SYSTEM\")\n                        .name(\"%[2]s\")\n                        .location(\"HEADER\")\n                        .value(\"serverName\")\n                        .systemParamType(\"internal\")\n                        .build())\n                .conditions(ApigwApiV2HttpPolicyConditionArgs.builder()\n                    .origin(\"param\")\n                    .paramName(\"user_age\")\n                    .type(\"EXACT\")\n                    .value(\"28\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  vpcId:\n    type: dynamic\n  subnetId:\n    type: dynamic\n  secgroupId:\n    type: dynamic\nresources:\n  gateway:\n    type: opentelekomcloud:ApigwGatewayV2\n    properties:\n      name: my_gw\n      specId: BASIC\n      vpcId: ${vpcId}\n      subnetId: ${subnetId}\n      securityGroupId: ${secgroupId}\n      availabilityZones:\n        - eu-de-01\n        - eu-de-02\n      description: test gateway 2\n      ingressBandwidthSize: 5\n      ingressBandwidthChargingMode: bandwidth\n      maintainBegin: 02:00:00\n  env:\n    type: opentelekomcloud:ApigwEnvironmentV2\n    properties:\n      name: my_env\n      instanceId: ${gateway.apigwGatewayV2Id}\n      description: test description\n  group:\n    type: opentelekomcloud:ApigwGroupV2\n    properties:\n      name: my_group\n      instanceId: ${gateway.apigwGatewayV2Id}\n      description: test description\n      environments:\n        - variables:\n            - name: test-name\n              value: test-value\n          environmentId: ${env.apigwEnvironmentV2Id}\n  api:\n    type: opentelekomcloud:ApigwApiV2\n    properties:\n      gatewayId: ${gateway.apigwGatewayV2Id}\n      groupId: ${group.apigwGroupV2Id}\n      name: my_api\n      type: Public\n      requestProtocol: HTTP\n      requestMethod: GET\n      requestUri: /user_info/{user_age}\n      securityAuthenticationType: APP\n      matchMode: EXACT\n      successResponse: Success response\n      failureResponse: Failed response\n      description: Created by script\n      requestParams:\n        - name: user_age\n          type: NUMBER\n          location: PATH\n          required: true\n          maximum: 200\n          minimum: 0\n        - name: X-TEST-ENUM\n          type: STRING\n          location: HEADER\n          maximum: 20\n          minimum: 10\n          sample: ACC_TEST_XXX\n          passthrough: true\n          enumeration: ACC_TEST_A,ACC_TEST_B\n      backendParams:\n        - type: REQUEST\n          name: userAge\n          location: PATH\n          value: user_age\n      http:\n        urlDomain: opentelekomcloud.my.com\n        requestUri: /getUserAge/{userAge}\n        requestMethod: GET\n        requestProtocol: HTTP\n        timeout: 30000\n        retryCount: 1\n      httpPolicies:\n        - urlDomain: opentelekomcloud.my.com\n          name: my_policy1\n          requestProtocol: HTTP\n          requestMethod: GET\n          effectiveMode: ANY\n          requestUri: /getUserAge/{userAge}\n          timeout: 30000\n          retryCount: 1\n          backendParams:\n            - type: REQUEST\n              name: userAge\n              location: PATH\n              value: user_age\n            - type: SYSTEM\n              name: '%[2]s'\n              location: HEADER\n              value: serverName\n              systemParamType: internal\n          conditions:\n            - origin: param\n              paramName: user_age\n              type: EXACT\n              value: '28'\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAPI can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/apigwApiV2:ApigwApiV2 api \"774438a28a574ac8a496325d1bf51807\"\n```\n","inputProperties":{"apigwApiV2Id":{"description":"The ID of the API.\n","type":"string"},"authorizerId":{"description":"Specifies the ID of the backend custom authorization.\n\n<a name=<span pulumi-lang-nodejs=\"\"apigwApiConditions\"\" pulumi-lang-dotnet=\"\"ApigwApiConditions\"\" pulumi-lang-go=\"\"apigwApiConditions\"\" pulumi-lang-python=\"\"apigw_api_conditions\"\" pulumi-lang-yaml=\"\"apigwApiConditions\"\" pulumi-lang-java=\"\"apigwApiConditions\"\">\"apigw_api_conditions\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`conditions`\" pulumi-lang-dotnet=\"`Conditions`\" pulumi-lang-go=\"`conditions`\" pulumi-lang-python=\"`conditions`\" pulumi-lang-yaml=\"`conditions`\" pulumi-lang-java=\"`conditions`\">`conditions`</span> block supports:\n","type":"string"},"backendParams":{"description":"Specifies an array of one or more backend parameters. The maximum of request\nparameters is 50. The object structure is documented above.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwApiV2BackendParam:ApigwApiV2BackendParam"},"type":"array"},"bodyDescription":{"description":"Specifies the description of the API request body, which can be an example\nrequest body, media type or parameters.\nThe request body does not exceed `20,480` characters.\n","type":"string"},"cors":{"description":"Specifies whether CORS is supported, defaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"description":{"description":"Specifies the description of the constant or system parameter.\nThe description contains a maximum of <span pulumi-lang-nodejs=\"`255`\" pulumi-lang-dotnet=\"`255`\" pulumi-lang-go=\"`255`\" pulumi-lang-python=\"`255`\" pulumi-lang-yaml=\"`255`\" pulumi-lang-java=\"`255`\">`255`</span> characters and the angle brackets (< and >) are not allowed.\n","type":"string"},"failureResponse":{"description":"Specifies the example response for a failure request.\nThe response contains a maximum of `20,480` characters.\n","type":"string"},"funcGraph":{"$ref":"#/types/opentelekomcloud:index%2FApigwApiV2FuncGraph:ApigwApiV2FuncGraph","description":"Specifies the function graph backend details.\nThe object structure is documented below.\nChanging this will create a new API resource.\n"},"funcGraphPolicies":{"description":"Specifies the Mock policy backends.\nThe maximum blocks of the policy is 5.\nThe object structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwApiV2FuncGraphPolicy:ApigwApiV2FuncGraphPolicy"},"type":"array"},"gatewayId":{"description":"Specifies an ID of the APIG dedicated instance to which the API belongs\nto. Changing this will create a new API resource.\n","type":"string"},"groupId":{"description":"Specifies an ID of the APIG group to which the API belongs to.\n","type":"string"},"http":{"$ref":"#/types/opentelekomcloud:index%2FApigwApiV2Http:ApigwApiV2Http","description":"Specifies the web backend details.\nThe object structure is documented below. Changing this will create a new API resource.\n"},"httpPolicies":{"description":"Specifies the example response for a failed request.\nThe maximum blocks of the policy is 5.\nThe object structure is documented below.\n\n<a name=<span pulumi-lang-nodejs=\"\"apigwApiRequestParams\"\" pulumi-lang-dotnet=\"\"ApigwApiRequestParams\"\" pulumi-lang-go=\"\"apigwApiRequestParams\"\" pulumi-lang-python=\"\"apigw_api_request_params\"\" pulumi-lang-yaml=\"\"apigwApiRequestParams\"\" pulumi-lang-java=\"\"apigwApiRequestParams\"\">\"apigw_api_request_params\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`requestParams`\" pulumi-lang-dotnet=\"`RequestParams`\" pulumi-lang-go=\"`requestParams`\" pulumi-lang-python=\"`request_params`\" pulumi-lang-yaml=\"`requestParams`\" pulumi-lang-java=\"`requestParams`\">`request_params`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwApiV2HttpPolicy:ApigwApiV2HttpPolicy"},"type":"array"},"matchMode":{"description":"Specifies the route matching mode.\nThe valid values are `EXACT` and `PREFIX`, defaults to `EXACT`.\n","type":"string"},"mock":{"$ref":"#/types/opentelekomcloud:index%2FApigwApiV2Mock:ApigwApiV2Mock","description":"Specifies the mock backend details.\nThe object structure is documented below.\nChanging this will create a new API resource.\n"},"mockPolicies":{"description":"Specifies the Mock policy backends.\nThe maximum blocks of the policy is 5.\nThe object structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwApiV2MockPolicy:ApigwApiV2MockPolicy"},"type":"array"},"name":{"description":"Specifies the backend policy name.\nThe valid length is limited from can contain <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, only letters, digits and underscores (_) are allowed.\n","type":"string"},"region":{"description":"Specifies the region where the API is located.\nIf omitted, the provider-level region will be used. Changing this will create a new API resource.\n","type":"string"},"requestMethod":{"description":"Specifies the backend request method of the API.\nThe valid values are `GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `PATCH`, `OPTIONS` and `ANY`.\n","type":"string"},"requestParams":{"description":"Specifies the configurations of the front-end parameters.\nThe object structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwApiV2RequestParam:ApigwApiV2RequestParam"},"type":"array"},"requestProtocol":{"description":"Specifies the backend request protocol. The valid values are `HTTP` and\n`HTTPS`, defaults to `HTTPS`.\n","type":"string"},"requestUri":{"description":"Specifies the backend request address, which can contain a maximum of <span pulumi-lang-nodejs=\"`512`\" pulumi-lang-dotnet=\"`512`\" pulumi-lang-go=\"`512`\" pulumi-lang-python=\"`512`\" pulumi-lang-yaml=\"`512`\" pulumi-lang-java=\"`512`\">`512`</span> characters and\nmust comply with URI specifications.\n+ The address can contain request parameters enclosed with brackets ({}).\n+ The address can contain special characters, such as asterisks (*), percent signs (%), hyphens (-) and\nunderscores (_) and must comply with URI specifications.\n+ The address can contain environment variables, each starting with a letter and consisting of <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> characters.\nOnly letters, digits, hyphens (-), and underscores (_) are allowed in environment variables.\n","type":"string"},"responseId":{"description":"Specifies the APIG group response ID.\n","type":"string"},"securityAuthenticationEnabled":{"description":"Specifies whether the authentication of the application code is enabled.\nThe application code must located in the header when <span pulumi-lang-nodejs=\"`securityAuthenticationEnabled`\" pulumi-lang-dotnet=\"`SecurityAuthenticationEnabled`\" pulumi-lang-go=\"`securityAuthenticationEnabled`\" pulumi-lang-python=\"`security_authentication_enabled`\" pulumi-lang-yaml=\"`securityAuthenticationEnabled`\" pulumi-lang-java=\"`securityAuthenticationEnabled`\">`security_authentication_enabled`</span> is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"securityAuthenticationType":{"description":"Specifies the security authentication mode of the API request.\nThe valid values are `NONE`, `APP`, `IAM` and `AUTHORIZER`, defaults to `NONE`.\n","type":"string"},"successResponse":{"description":"Specifies the example response for a successful request.\nThe response contains a maximum of `20,480` characters.\n","type":"string"},"tags":{"description":"Tags. Use letters, digits, and special characters `(-*#%.:_)` and start with a letter.\nBy default, <span pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\">`10`</span> tags are supported. To increase the quota, contact technical support to modify the `API_TAG_NUM_LIMIT` configuration.\n","items":{"type":"string"},"type":"array"},"type":{"description":"Specifies the condition type of the backend policy.\nThe valid values are `EXACT`, `ENUM` and `PATTERN`, defaults to `EXACT`.\n","type":"string"},"version":{"description":"Specifies the version of the FunctionGraph function.\n","type":"string"}},"properties":{"apigwApiV2Id":{"description":"The ID of the API.\n","type":"string"},"authorizerId":{"description":"Specifies the ID of the backend custom authorization.\n\n<a name=<span pulumi-lang-nodejs=\"\"apigwApiConditions\"\" pulumi-lang-dotnet=\"\"ApigwApiConditions\"\" pulumi-lang-go=\"\"apigwApiConditions\"\" pulumi-lang-python=\"\"apigw_api_conditions\"\" pulumi-lang-yaml=\"\"apigwApiConditions\"\" pulumi-lang-java=\"\"apigwApiConditions\"\">\"apigw_api_conditions\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`conditions`\" pulumi-lang-dotnet=\"`Conditions`\" pulumi-lang-go=\"`conditions`\" pulumi-lang-python=\"`conditions`\" pulumi-lang-yaml=\"`conditions`\" pulumi-lang-java=\"`conditions`\">`conditions`</span> block supports:\n","type":"string"},"backendParams":{"description":"Specifies an array of one or more backend parameters. The maximum of request\nparameters is 50. The object structure is documented above.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwApiV2BackendParam:ApigwApiV2BackendParam"},"type":"array"},"bodyDescription":{"description":"Specifies the description of the API request body, which can be an example\nrequest body, media type or parameters.\nThe request body does not exceed `20,480` characters.\n","type":"string"},"cors":{"description":"Specifies whether CORS is supported, defaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"description":{"description":"Specifies the description of the constant or system parameter.\nThe description contains a maximum of <span pulumi-lang-nodejs=\"`255`\" pulumi-lang-dotnet=\"`255`\" pulumi-lang-go=\"`255`\" pulumi-lang-python=\"`255`\" pulumi-lang-yaml=\"`255`\" pulumi-lang-java=\"`255`\">`255`</span> characters and the angle brackets (< and >) are not allowed.\n","type":"string"},"failureResponse":{"description":"Specifies the example response for a failure request.\nThe response contains a maximum of `20,480` characters.\n","type":"string"},"funcGraph":{"$ref":"#/types/opentelekomcloud:index%2FApigwApiV2FuncGraph:ApigwApiV2FuncGraph","description":"Specifies the function graph backend details.\nThe object structure is documented below.\nChanging this will create a new API resource.\n"},"funcGraphPolicies":{"description":"Specifies the Mock policy backends.\nThe maximum blocks of the policy is 5.\nThe object structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwApiV2FuncGraphPolicy:ApigwApiV2FuncGraphPolicy"},"type":"array"},"gatewayId":{"description":"Specifies an ID of the APIG dedicated instance to which the API belongs\nto. Changing this will create a new API resource.\n","type":"string"},"groupId":{"description":"Specifies an ID of the APIG group to which the API belongs to.\n","type":"string"},"http":{"$ref":"#/types/opentelekomcloud:index%2FApigwApiV2Http:ApigwApiV2Http","description":"Specifies the web backend details.\nThe object structure is documented below. Changing this will create a new API resource.\n"},"httpPolicies":{"description":"Specifies the example response for a failed request.\nThe maximum blocks of the policy is 5.\nThe object structure is documented below.\n\n<a name=<span pulumi-lang-nodejs=\"\"apigwApiRequestParams\"\" pulumi-lang-dotnet=\"\"ApigwApiRequestParams\"\" pulumi-lang-go=\"\"apigwApiRequestParams\"\" pulumi-lang-python=\"\"apigw_api_request_params\"\" pulumi-lang-yaml=\"\"apigwApiRequestParams\"\" pulumi-lang-java=\"\"apigwApiRequestParams\"\">\"apigw_api_request_params\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`requestParams`\" pulumi-lang-dotnet=\"`RequestParams`\" pulumi-lang-go=\"`requestParams`\" pulumi-lang-python=\"`request_params`\" pulumi-lang-yaml=\"`requestParams`\" pulumi-lang-java=\"`requestParams`\">`request_params`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwApiV2HttpPolicy:ApigwApiV2HttpPolicy"},"type":"array"},"matchMode":{"description":"Specifies the route matching mode.\nThe valid values are `EXACT` and `PREFIX`, defaults to `EXACT`.\n","type":"string"},"mock":{"$ref":"#/types/opentelekomcloud:index%2FApigwApiV2Mock:ApigwApiV2Mock","description":"Specifies the mock backend details.\nThe object structure is documented below.\nChanging this will create a new API resource.\n"},"mockPolicies":{"description":"Specifies the Mock policy backends.\nThe maximum blocks of the policy is 5.\nThe object structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwApiV2MockPolicy:ApigwApiV2MockPolicy"},"type":"array"},"name":{"description":"Specifies the backend policy name.\nThe valid length is limited from can contain <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, only letters, digits and underscores (_) are allowed.\n","type":"string"},"region":{"description":"Specifies the region where the API is located.\nIf omitted, the provider-level region will be used. Changing this will create a new API resource.\n","type":"string"},"registeredAt":{"description":"Time when the API is registered.\n","type":"string"},"requestMethod":{"description":"Specifies the backend request method of the API.\nThe valid values are `GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `PATCH`, `OPTIONS` and `ANY`.\n","type":"string"},"requestParams":{"description":"Specifies the configurations of the front-end parameters.\nThe object structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwApiV2RequestParam:ApigwApiV2RequestParam"},"type":"array"},"requestProtocol":{"description":"Specifies the backend request protocol. The valid values are `HTTP` and\n`HTTPS`, defaults to `HTTPS`.\n","type":"string"},"requestUri":{"description":"Specifies the backend request address, which can contain a maximum of <span pulumi-lang-nodejs=\"`512`\" pulumi-lang-dotnet=\"`512`\" pulumi-lang-go=\"`512`\" pulumi-lang-python=\"`512`\" pulumi-lang-yaml=\"`512`\" pulumi-lang-java=\"`512`\">`512`</span> characters and\nmust comply with URI specifications.\n+ The address can contain request parameters enclosed with brackets ({}).\n+ The address can contain special characters, such as asterisks (*), percent signs (%), hyphens (-) and\nunderscores (_) and must comply with URI specifications.\n+ The address can contain environment variables, each starting with a letter and consisting of <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> characters.\nOnly letters, digits, hyphens (-), and underscores (_) are allowed in environment variables.\n","type":"string"},"responseId":{"description":"Specifies the APIG group response ID.\n","type":"string"},"securityAuthenticationEnabled":{"description":"Specifies whether the authentication of the application code is enabled.\nThe application code must located in the header when <span pulumi-lang-nodejs=\"`securityAuthenticationEnabled`\" pulumi-lang-dotnet=\"`SecurityAuthenticationEnabled`\" pulumi-lang-go=\"`securityAuthenticationEnabled`\" pulumi-lang-python=\"`security_authentication_enabled`\" pulumi-lang-yaml=\"`securityAuthenticationEnabled`\" pulumi-lang-java=\"`securityAuthenticationEnabled`\">`security_authentication_enabled`</span> is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"securityAuthenticationType":{"description":"Specifies the security authentication mode of the API request.\nThe valid values are `NONE`, `APP`, `IAM` and `AUTHORIZER`, defaults to `NONE`.\n","type":"string"},"successResponse":{"description":"Specifies the example response for a successful request.\nThe response contains a maximum of `20,480` characters.\n","type":"string"},"tags":{"description":"Tags. Use letters, digits, and special characters `(-*#%.:_)` and start with a letter.\nBy default, <span pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\">`10`</span> tags are supported. To increase the quota, contact technical support to modify the `API_TAG_NUM_LIMIT` configuration.\n","items":{"type":"string"},"type":"array"},"type":{"description":"Specifies the condition type of the backend policy.\nThe valid values are `EXACT`, `ENUM` and `PATTERN`, defaults to `EXACT`.\n","type":"string"},"updatedAt":{"description":"Time when the API was last modified.\n","type":"string"},"version":{"description":"Specifies the version of the FunctionGraph function.\n","type":"string"}},"required":["apigwApiV2Id","gatewayId","groupId","name","region","registeredAt","requestMethod","requestProtocol","requestUri","securityAuthenticationEnabled","type","updatedAt"],"requiredInputs":["gatewayId","groupId","requestMethod","requestProtocol","requestUri","type"],"stateInputs":{"description":"Input properties used for looking up and filtering ApigwApiV2 resources.\n","properties":{"apigwApiV2Id":{"description":"The ID of the API.\n","type":"string"},"authorizerId":{"description":"Specifies the ID of the backend custom authorization.\n\n<a name=<span pulumi-lang-nodejs=\"\"apigwApiConditions\"\" pulumi-lang-dotnet=\"\"ApigwApiConditions\"\" pulumi-lang-go=\"\"apigwApiConditions\"\" pulumi-lang-python=\"\"apigw_api_conditions\"\" pulumi-lang-yaml=\"\"apigwApiConditions\"\" pulumi-lang-java=\"\"apigwApiConditions\"\">\"apigw_api_conditions\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`conditions`\" pulumi-lang-dotnet=\"`Conditions`\" pulumi-lang-go=\"`conditions`\" pulumi-lang-python=\"`conditions`\" pulumi-lang-yaml=\"`conditions`\" pulumi-lang-java=\"`conditions`\">`conditions`</span> block supports:\n","type":"string"},"backendParams":{"description":"Specifies an array of one or more backend parameters. The maximum of request\nparameters is 50. The object structure is documented above.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwApiV2BackendParam:ApigwApiV2BackendParam"},"type":"array"},"bodyDescription":{"description":"Specifies the description of the API request body, which can be an example\nrequest body, media type or parameters.\nThe request body does not exceed `20,480` characters.\n","type":"string"},"cors":{"description":"Specifies whether CORS is supported, defaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"description":{"description":"Specifies the description of the constant or system parameter.\nThe description contains a maximum of <span pulumi-lang-nodejs=\"`255`\" pulumi-lang-dotnet=\"`255`\" pulumi-lang-go=\"`255`\" pulumi-lang-python=\"`255`\" pulumi-lang-yaml=\"`255`\" pulumi-lang-java=\"`255`\">`255`</span> characters and the angle brackets (< and >) are not allowed.\n","type":"string"},"failureResponse":{"description":"Specifies the example response for a failure request.\nThe response contains a maximum of `20,480` characters.\n","type":"string"},"funcGraph":{"$ref":"#/types/opentelekomcloud:index%2FApigwApiV2FuncGraph:ApigwApiV2FuncGraph","description":"Specifies the function graph backend details.\nThe object structure is documented below.\nChanging this will create a new API resource.\n"},"funcGraphPolicies":{"description":"Specifies the Mock policy backends.\nThe maximum blocks of the policy is 5.\nThe object structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwApiV2FuncGraphPolicy:ApigwApiV2FuncGraphPolicy"},"type":"array"},"gatewayId":{"description":"Specifies an ID of the APIG dedicated instance to which the API belongs\nto. Changing this will create a new API resource.\n","type":"string"},"groupId":{"description":"Specifies an ID of the APIG group to which the API belongs to.\n","type":"string"},"http":{"$ref":"#/types/opentelekomcloud:index%2FApigwApiV2Http:ApigwApiV2Http","description":"Specifies the web backend details.\nThe object structure is documented below. Changing this will create a new API resource.\n"},"httpPolicies":{"description":"Specifies the example response for a failed request.\nThe maximum blocks of the policy is 5.\nThe object structure is documented below.\n\n<a name=<span pulumi-lang-nodejs=\"\"apigwApiRequestParams\"\" pulumi-lang-dotnet=\"\"ApigwApiRequestParams\"\" pulumi-lang-go=\"\"apigwApiRequestParams\"\" pulumi-lang-python=\"\"apigw_api_request_params\"\" pulumi-lang-yaml=\"\"apigwApiRequestParams\"\" pulumi-lang-java=\"\"apigwApiRequestParams\"\">\"apigw_api_request_params\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`requestParams`\" pulumi-lang-dotnet=\"`RequestParams`\" pulumi-lang-go=\"`requestParams`\" pulumi-lang-python=\"`request_params`\" pulumi-lang-yaml=\"`requestParams`\" pulumi-lang-java=\"`requestParams`\">`request_params`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwApiV2HttpPolicy:ApigwApiV2HttpPolicy"},"type":"array"},"matchMode":{"description":"Specifies the route matching mode.\nThe valid values are `EXACT` and `PREFIX`, defaults to `EXACT`.\n","type":"string"},"mock":{"$ref":"#/types/opentelekomcloud:index%2FApigwApiV2Mock:ApigwApiV2Mock","description":"Specifies the mock backend details.\nThe object structure is documented below.\nChanging this will create a new API resource.\n"},"mockPolicies":{"description":"Specifies the Mock policy backends.\nThe maximum blocks of the policy is 5.\nThe object structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwApiV2MockPolicy:ApigwApiV2MockPolicy"},"type":"array"},"name":{"description":"Specifies the backend policy name.\nThe valid length is limited from can contain <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, only letters, digits and underscores (_) are allowed.\n","type":"string"},"region":{"description":"Specifies the region where the API is located.\nIf omitted, the provider-level region will be used. Changing this will create a new API resource.\n","type":"string"},"registeredAt":{"description":"Time when the API is registered.\n","type":"string"},"requestMethod":{"description":"Specifies the backend request method of the API.\nThe valid values are `GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `PATCH`, `OPTIONS` and `ANY`.\n","type":"string"},"requestParams":{"description":"Specifies the configurations of the front-end parameters.\nThe object structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwApiV2RequestParam:ApigwApiV2RequestParam"},"type":"array"},"requestProtocol":{"description":"Specifies the backend request protocol. The valid values are `HTTP` and\n`HTTPS`, defaults to `HTTPS`.\n","type":"string"},"requestUri":{"description":"Specifies the backend request address, which can contain a maximum of <span pulumi-lang-nodejs=\"`512`\" pulumi-lang-dotnet=\"`512`\" pulumi-lang-go=\"`512`\" pulumi-lang-python=\"`512`\" pulumi-lang-yaml=\"`512`\" pulumi-lang-java=\"`512`\">`512`</span> characters and\nmust comply with URI specifications.\n+ The address can contain request parameters enclosed with brackets ({}).\n+ The address can contain special characters, such as asterisks (*), percent signs (%), hyphens (-) and\nunderscores (_) and must comply with URI specifications.\n+ The address can contain environment variables, each starting with a letter and consisting of <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> characters.\nOnly letters, digits, hyphens (-), and underscores (_) are allowed in environment variables.\n","type":"string"},"responseId":{"description":"Specifies the APIG group response ID.\n","type":"string"},"securityAuthenticationEnabled":{"description":"Specifies whether the authentication of the application code is enabled.\nThe application code must located in the header when <span pulumi-lang-nodejs=\"`securityAuthenticationEnabled`\" pulumi-lang-dotnet=\"`SecurityAuthenticationEnabled`\" pulumi-lang-go=\"`securityAuthenticationEnabled`\" pulumi-lang-python=\"`security_authentication_enabled`\" pulumi-lang-yaml=\"`securityAuthenticationEnabled`\" pulumi-lang-java=\"`securityAuthenticationEnabled`\">`security_authentication_enabled`</span> is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"securityAuthenticationType":{"description":"Specifies the security authentication mode of the API request.\nThe valid values are `NONE`, `APP`, `IAM` and `AUTHORIZER`, defaults to `NONE`.\n","type":"string"},"successResponse":{"description":"Specifies the example response for a successful request.\nThe response contains a maximum of `20,480` characters.\n","type":"string"},"tags":{"description":"Tags. Use letters, digits, and special characters `(-*#%.:_)` and start with a letter.\nBy default, <span pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\">`10`</span> tags are supported. To increase the quota, contact technical support to modify the `API_TAG_NUM_LIMIT` configuration.\n","items":{"type":"string"},"type":"array"},"type":{"description":"Specifies the condition type of the backend policy.\nThe valid values are `EXACT`, `ENUM` and `PATTERN`, defaults to `EXACT`.\n","type":"string"},"updatedAt":{"description":"Time when the API was last modified.\n","type":"string"},"version":{"description":"Specifies the version of the FunctionGraph function.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/apigwAppcodeV2:ApigwAppcodeV2":{"inputProperties":{"apigwAppcodeV2Id":{"type":"string"},"applicationId":{"type":"string"},"gatewayId":{"type":"string"},"value":{"type":"string"}},"properties":{"apigwAppcodeV2Id":{"type":"string"},"applicationId":{"type":"string"},"createdAt":{"type":"string"},"gatewayId":{"type":"string"},"region":{"type":"string"},"value":{"type":"string"}},"required":["apigwAppcodeV2Id","applicationId","createdAt","gatewayId","region","value"],"requiredInputs":["applicationId","gatewayId"],"stateInputs":{"description":"Input properties used for looking up and filtering ApigwAppcodeV2 resources.\n","properties":{"apigwAppcodeV2Id":{"type":"string"},"applicationId":{"type":"string"},"createdAt":{"type":"string"},"gatewayId":{"type":"string"},"region":{"type":"string"},"value":{"type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/apigwApplicationAuthorizationV2:ApigwApplicationAuthorizationV2":{"inputProperties":{"apiIds":{"items":{"type":"string"},"type":"array"},"apigwApplicationAuthorizationV2Id":{"type":"string"},"applicationId":{"type":"string"},"envId":{"type":"string"},"gatewayId":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FApigwApplicationAuthorizationV2Timeouts:ApigwApplicationAuthorizationV2Timeouts"}},"properties":{"apiIds":{"items":{"type":"string"},"type":"array"},"apigwApplicationAuthorizationV2Id":{"type":"string"},"applicationId":{"type":"string"},"envId":{"type":"string"},"gatewayId":{"type":"string"},"region":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FApigwApplicationAuthorizationV2Timeouts:ApigwApplicationAuthorizationV2Timeouts"}},"required":["apiIds","apigwApplicationAuthorizationV2Id","applicationId","envId","gatewayId","region"],"requiredInputs":["apiIds","applicationId","envId","gatewayId"],"stateInputs":{"description":"Input properties used for looking up and filtering ApigwApplicationAuthorizationV2 resources.\n","properties":{"apiIds":{"items":{"type":"string"},"type":"array"},"apigwApplicationAuthorizationV2Id":{"type":"string"},"applicationId":{"type":"string"},"envId":{"type":"string"},"gatewayId":{"type":"string"},"region":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FApigwApplicationAuthorizationV2Timeouts:ApigwApplicationAuthorizationV2Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/apigwApplicationV2:ApigwApplicationV2":{"inputProperties":{"apigwApplicationV2Id":{"type":"string"},"appCodes":{"items":{"type":"string"},"type":"array"},"description":{"type":"string"},"gatewayId":{"type":"string"},"name":{"type":"string"},"secretAction":{"type":"string"}},"properties":{"apigwApplicationV2Id":{"type":"string"},"appCodes":{"items":{"type":"string"},"type":"array"},"appKey":{"type":"string"},"appSecret":{"secret":true,"type":"string"},"description":{"type":"string"},"gatewayId":{"type":"string"},"name":{"type":"string"},"region":{"type":"string"},"registrationTime":{"type":"string"},"secretAction":{"type":"string"},"updatedAt":{"type":"string"}},"required":["apigwApplicationV2Id","appCodes","appKey","appSecret","description","gatewayId","name","region","registrationTime","updatedAt"],"requiredInputs":["gatewayId"],"stateInputs":{"description":"Input properties used for looking up and filtering ApigwApplicationV2 resources.\n","properties":{"apigwApplicationV2Id":{"type":"string"},"appCodes":{"items":{"type":"string"},"type":"array"},"appKey":{"type":"string"},"appSecret":{"secret":true,"type":"string"},"description":{"type":"string"},"gatewayId":{"type":"string"},"name":{"type":"string"},"region":{"type":"string"},"registrationTime":{"type":"string"},"secretAction":{"type":"string"},"updatedAt":{"type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/apigwCertificateV2:ApigwCertificateV2":{"description":"Manages an APIGW SSL certificate resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Manages a global SSL certificate\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst certificateName = config.requireObject<any>(\"certificateName\");\nconst certificateContent = config.get(\"certificateContent\") || \"'-----BEGIN CERTIFICATE-----THIS IS YOUR CERT CONTENT-----END CERTIFICATE-----'\";\nconst certificatePrivateKey = config.get(\"certificatePrivateKey\") || \"'-----BEGIN PRIVATE KEY-----THIS IS YOUR PRIVATE KEY-----END PRIVATE KEY-----'\";\nconst test = new opentelekomcloud.ApigwCertificateV2(\"test\", {\n    name: certificateName,\n    content: certificateContent,\n    privateKey: certificatePrivateKey,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ncertificate_name = config.require_object(\"certificateName\")\ncertificate_content = config.get(\"certificateContent\")\nif certificate_content is None:\n    certificate_content = \"'-----BEGIN CERTIFICATE-----THIS IS YOUR CERT CONTENT-----END CERTIFICATE-----'\"\ncertificate_private_key = config.get(\"certificatePrivateKey\")\nif certificate_private_key is None:\n    certificate_private_key = \"'-----BEGIN PRIVATE KEY-----THIS IS YOUR PRIVATE KEY-----END PRIVATE KEY-----'\"\ntest = opentelekomcloud.ApigwCertificateV2(\"test\",\n    name=certificate_name,\n    content=certificate_content,\n    private_key=certificate_private_key)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var certificateName = config.RequireObject<dynamic>(\"certificateName\");\n    var certificateContent = config.Get(\"certificateContent\") ?? \"'-----BEGIN CERTIFICATE-----THIS IS YOUR CERT CONTENT-----END CERTIFICATE-----'\";\n    var certificatePrivateKey = config.Get(\"certificatePrivateKey\") ?? \"'-----BEGIN PRIVATE KEY-----THIS IS YOUR PRIVATE KEY-----END PRIVATE KEY-----'\";\n    var test = new Opentelekomcloud.ApigwCertificateV2(\"test\", new()\n    {\n        Name = certificateName,\n        Content = certificateContent,\n        PrivateKey = certificatePrivateKey,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tcertificateName := cfg.RequireObject(\"certificateName\")\n\t\tcertificateContent := \"'-----BEGIN CERTIFICATE-----THIS IS YOUR CERT CONTENT-----END CERTIFICATE-----'\"\n\t\tif param := cfg.Get(\"certificateContent\"); param != \"\" {\n\t\t\tcertificateContent = param\n\t\t}\n\t\tcertificatePrivateKey := \"'-----BEGIN PRIVATE KEY-----THIS IS YOUR PRIVATE KEY-----END PRIVATE KEY-----'\"\n\t\tif param := cfg.Get(\"certificatePrivateKey\"); param != \"\" {\n\t\t\tcertificatePrivateKey = param\n\t\t}\n\t\t_, err := opentelekomcloud.NewApigwCertificateV2(ctx, \"test\", &opentelekomcloud.ApigwCertificateV2Args{\n\t\t\tName:       pulumi.Any(certificateName),\n\t\t\tContent:    pulumi.String(certificateContent),\n\t\t\tPrivateKey: pulumi.String(certificatePrivateKey),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ApigwCertificateV2;\nimport com.pulumi.opentelekomcloud.ApigwCertificateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var certificateName = config.get(\"certificateName\");\n        final var certificateContent = config.get(\"certificateContent\").orElse(\"'-----BEGIN CERTIFICATE-----THIS IS YOUR CERT CONTENT-----END CERTIFICATE-----'\");\n        final var certificatePrivateKey = config.get(\"certificatePrivateKey\").orElse(\"'-----BEGIN PRIVATE KEY-----THIS IS YOUR PRIVATE KEY-----END PRIVATE KEY-----'\");\n        var test = new ApigwCertificateV2(\"test\", ApigwCertificateV2Args.builder()\n            .name(certificateName)\n            .content(certificateContent)\n            .privateKey(certificatePrivateKey)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  certificateName:\n    type: dynamic\n  certificateContent:\n    type: string\n    default: '''-----BEGIN CERTIFICATE-----THIS IS YOUR CERT CONTENT-----END CERTIFICATE-----'''\n  certificatePrivateKey:\n    type: string\n    default: '''-----BEGIN PRIVATE KEY-----THIS IS YOUR PRIVATE KEY-----END PRIVATE KEY-----'''\nresources:\n  test:\n    type: opentelekomcloud:ApigwCertificateV2\n    properties:\n      name: ${certificateName}\n      content: ${certificateContent}\n      privateKey: ${certificatePrivateKey}\n```\n<!--End PulumiCodeChooser -->\n\n### Manages a local SSL certificate in a specified dedicated APIGW instance\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst certificateName = config.requireObject<any>(\"certificateName\");\nconst certificateContent = config.get(\"certificateContent\") || \"'-----BEGIN CERTIFICATE-----THIS IS YOUR CERT CONTENT-----END CERTIFICATE-----'\";\nconst certificatePrivateKey = config.get(\"certificatePrivateKey\") || \"'-----BEGIN PRIVATE KEY-----THIS IS YOUR PRIVATE KEY-----END PRIVATE KEY-----'\";\nconst dedicatedInstanceId = config.requireObject<any>(\"dedicatedInstanceId\");\nconst test = new opentelekomcloud.ApigwCertificateV2(\"test\", {\n    name: certificateName,\n    content: certificateContent,\n    privateKey: certificatePrivateKey,\n    type: \"instance\",\n    instanceId: dedicatedInstanceId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ncertificate_name = config.require_object(\"certificateName\")\ncertificate_content = config.get(\"certificateContent\")\nif certificate_content is None:\n    certificate_content = \"'-----BEGIN CERTIFICATE-----THIS IS YOUR CERT CONTENT-----END CERTIFICATE-----'\"\ncertificate_private_key = config.get(\"certificatePrivateKey\")\nif certificate_private_key is None:\n    certificate_private_key = \"'-----BEGIN PRIVATE KEY-----THIS IS YOUR PRIVATE KEY-----END PRIVATE KEY-----'\"\ndedicated_instance_id = config.require_object(\"dedicatedInstanceId\")\ntest = opentelekomcloud.ApigwCertificateV2(\"test\",\n    name=certificate_name,\n    content=certificate_content,\n    private_key=certificate_private_key,\n    type=\"instance\",\n    instance_id=dedicated_instance_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var certificateName = config.RequireObject<dynamic>(\"certificateName\");\n    var certificateContent = config.Get(\"certificateContent\") ?? \"'-----BEGIN CERTIFICATE-----THIS IS YOUR CERT CONTENT-----END CERTIFICATE-----'\";\n    var certificatePrivateKey = config.Get(\"certificatePrivateKey\") ?? \"'-----BEGIN PRIVATE KEY-----THIS IS YOUR PRIVATE KEY-----END PRIVATE KEY-----'\";\n    var dedicatedInstanceId = config.RequireObject<dynamic>(\"dedicatedInstanceId\");\n    var test = new Opentelekomcloud.ApigwCertificateV2(\"test\", new()\n    {\n        Name = certificateName,\n        Content = certificateContent,\n        PrivateKey = certificatePrivateKey,\n        Type = \"instance\",\n        InstanceId = dedicatedInstanceId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tcertificateName := cfg.RequireObject(\"certificateName\")\n\t\tcertificateContent := \"'-----BEGIN CERTIFICATE-----THIS IS YOUR CERT CONTENT-----END CERTIFICATE-----'\"\n\t\tif param := cfg.Get(\"certificateContent\"); param != \"\" {\n\t\t\tcertificateContent = param\n\t\t}\n\t\tcertificatePrivateKey := \"'-----BEGIN PRIVATE KEY-----THIS IS YOUR PRIVATE KEY-----END PRIVATE KEY-----'\"\n\t\tif param := cfg.Get(\"certificatePrivateKey\"); param != \"\" {\n\t\t\tcertificatePrivateKey = param\n\t\t}\n\t\tdedicatedInstanceId := cfg.RequireObject(\"dedicatedInstanceId\")\n\t\t_, err := opentelekomcloud.NewApigwCertificateV2(ctx, \"test\", &opentelekomcloud.ApigwCertificateV2Args{\n\t\t\tName:       pulumi.Any(certificateName),\n\t\t\tContent:    pulumi.String(certificateContent),\n\t\t\tPrivateKey: pulumi.String(certificatePrivateKey),\n\t\t\tType:       pulumi.String(\"instance\"),\n\t\t\tInstanceId: pulumi.Any(dedicatedInstanceId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ApigwCertificateV2;\nimport com.pulumi.opentelekomcloud.ApigwCertificateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var certificateName = config.get(\"certificateName\");\n        final var certificateContent = config.get(\"certificateContent\").orElse(\"'-----BEGIN CERTIFICATE-----THIS IS YOUR CERT CONTENT-----END CERTIFICATE-----'\");\n        final var certificatePrivateKey = config.get(\"certificatePrivateKey\").orElse(\"'-----BEGIN PRIVATE KEY-----THIS IS YOUR PRIVATE KEY-----END PRIVATE KEY-----'\");\n        final var dedicatedInstanceId = config.get(\"dedicatedInstanceId\");\n        var test = new ApigwCertificateV2(\"test\", ApigwCertificateV2Args.builder()\n            .name(certificateName)\n            .content(certificateContent)\n            .privateKey(certificatePrivateKey)\n            .type(\"instance\")\n            .instanceId(dedicatedInstanceId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  certificateName:\n    type: dynamic\n  certificateContent:\n    type: string\n    default: '''-----BEGIN CERTIFICATE-----THIS IS YOUR CERT CONTENT-----END CERTIFICATE-----'''\n  certificatePrivateKey:\n    type: string\n    default: '''-----BEGIN PRIVATE KEY-----THIS IS YOUR PRIVATE KEY-----END PRIVATE KEY-----'''\n  dedicatedInstanceId:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:ApigwCertificateV2\n    properties:\n      name: ${certificateName}\n      content: ${certificateContent}\n      privateKey: ${certificatePrivateKey}\n      type: instance\n      instanceId: ${dedicatedInstanceId}\n```\n<!--End PulumiCodeChooser -->\n\n### Manages a local SSL certificate (with the ROOT CA certificate)\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst certificateName = config.requireObject<any>(\"certificateName\");\nconst certificateContent = config.get(\"certificateContent\") || \"'-----BEGIN CERTIFICATE-----THIS IS YOUR CERT CONTENT-----END CERTIFICATE-----'\";\nconst certificatePrivateKey = config.get(\"certificatePrivateKey\") || \"'-----BEGIN PRIVATE KEY-----THIS IS YOUR PRIVATE KEY-----END PRIVATE KEY-----'\";\nconst rootCaCertificateContent = config.get(\"rootCaCertificateContent\") || \"'-----BEGIN CERTIFICATE-----THIS IS YOUR CERT CONTENT-----END CERTIFICATE-----'\";\nconst dedicatedInstanceId = config.requireObject<any>(\"dedicatedInstanceId\");\nconst test = new opentelekomcloud.ApigwCertificateV2(\"test\", {\n    name: certificateName,\n    content: certificateContent,\n    privateKey: certificatePrivateKey,\n    trustedRootCa: rootCaCertificateContent,\n    type: \"instance\",\n    instanceId: dedicatedInstanceId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ncertificate_name = config.require_object(\"certificateName\")\ncertificate_content = config.get(\"certificateContent\")\nif certificate_content is None:\n    certificate_content = \"'-----BEGIN CERTIFICATE-----THIS IS YOUR CERT CONTENT-----END CERTIFICATE-----'\"\ncertificate_private_key = config.get(\"certificatePrivateKey\")\nif certificate_private_key is None:\n    certificate_private_key = \"'-----BEGIN PRIVATE KEY-----THIS IS YOUR PRIVATE KEY-----END PRIVATE KEY-----'\"\nroot_ca_certificate_content = config.get(\"rootCaCertificateContent\")\nif root_ca_certificate_content is None:\n    root_ca_certificate_content = \"'-----BEGIN CERTIFICATE-----THIS IS YOUR CERT CONTENT-----END CERTIFICATE-----'\"\ndedicated_instance_id = config.require_object(\"dedicatedInstanceId\")\ntest = opentelekomcloud.ApigwCertificateV2(\"test\",\n    name=certificate_name,\n    content=certificate_content,\n    private_key=certificate_private_key,\n    trusted_root_ca=root_ca_certificate_content,\n    type=\"instance\",\n    instance_id=dedicated_instance_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var certificateName = config.RequireObject<dynamic>(\"certificateName\");\n    var certificateContent = config.Get(\"certificateContent\") ?? \"'-----BEGIN CERTIFICATE-----THIS IS YOUR CERT CONTENT-----END CERTIFICATE-----'\";\n    var certificatePrivateKey = config.Get(\"certificatePrivateKey\") ?? \"'-----BEGIN PRIVATE KEY-----THIS IS YOUR PRIVATE KEY-----END PRIVATE KEY-----'\";\n    var rootCaCertificateContent = config.Get(\"rootCaCertificateContent\") ?? \"'-----BEGIN CERTIFICATE-----THIS IS YOUR CERT CONTENT-----END CERTIFICATE-----'\";\n    var dedicatedInstanceId = config.RequireObject<dynamic>(\"dedicatedInstanceId\");\n    var test = new Opentelekomcloud.ApigwCertificateV2(\"test\", new()\n    {\n        Name = certificateName,\n        Content = certificateContent,\n        PrivateKey = certificatePrivateKey,\n        TrustedRootCa = rootCaCertificateContent,\n        Type = \"instance\",\n        InstanceId = dedicatedInstanceId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tcertificateName := cfg.RequireObject(\"certificateName\")\n\t\tcertificateContent := \"'-----BEGIN CERTIFICATE-----THIS IS YOUR CERT CONTENT-----END CERTIFICATE-----'\"\n\t\tif param := cfg.Get(\"certificateContent\"); param != \"\" {\n\t\t\tcertificateContent = param\n\t\t}\n\t\tcertificatePrivateKey := \"'-----BEGIN PRIVATE KEY-----THIS IS YOUR PRIVATE KEY-----END PRIVATE KEY-----'\"\n\t\tif param := cfg.Get(\"certificatePrivateKey\"); param != \"\" {\n\t\t\tcertificatePrivateKey = param\n\t\t}\n\t\trootCaCertificateContent := \"'-----BEGIN CERTIFICATE-----THIS IS YOUR CERT CONTENT-----END CERTIFICATE-----'\"\n\t\tif param := cfg.Get(\"rootCaCertificateContent\"); param != \"\" {\n\t\t\trootCaCertificateContent = param\n\t\t}\n\t\tdedicatedInstanceId := cfg.RequireObject(\"dedicatedInstanceId\")\n\t\t_, err := opentelekomcloud.NewApigwCertificateV2(ctx, \"test\", &opentelekomcloud.ApigwCertificateV2Args{\n\t\t\tName:          pulumi.Any(certificateName),\n\t\t\tContent:       pulumi.String(certificateContent),\n\t\t\tPrivateKey:    pulumi.String(certificatePrivateKey),\n\t\t\tTrustedRootCa: pulumi.String(rootCaCertificateContent),\n\t\t\tType:          pulumi.String(\"instance\"),\n\t\t\tInstanceId:    pulumi.Any(dedicatedInstanceId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ApigwCertificateV2;\nimport com.pulumi.opentelekomcloud.ApigwCertificateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var certificateName = config.get(\"certificateName\");\n        final var certificateContent = config.get(\"certificateContent\").orElse(\"'-----BEGIN CERTIFICATE-----THIS IS YOUR CERT CONTENT-----END CERTIFICATE-----'\");\n        final var certificatePrivateKey = config.get(\"certificatePrivateKey\").orElse(\"'-----BEGIN PRIVATE KEY-----THIS IS YOUR PRIVATE KEY-----END PRIVATE KEY-----'\");\n        final var rootCaCertificateContent = config.get(\"rootCaCertificateContent\").orElse(\"'-----BEGIN CERTIFICATE-----THIS IS YOUR CERT CONTENT-----END CERTIFICATE-----'\");\n        final var dedicatedInstanceId = config.get(\"dedicatedInstanceId\");\n        var test = new ApigwCertificateV2(\"test\", ApigwCertificateV2Args.builder()\n            .name(certificateName)\n            .content(certificateContent)\n            .privateKey(certificatePrivateKey)\n            .trustedRootCa(rootCaCertificateContent)\n            .type(\"instance\")\n            .instanceId(dedicatedInstanceId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  certificateName:\n    type: dynamic\n  certificateContent:\n    type: string\n    default: '''-----BEGIN CERTIFICATE-----THIS IS YOUR CERT CONTENT-----END CERTIFICATE-----'''\n  certificatePrivateKey:\n    type: string\n    default: '''-----BEGIN PRIVATE KEY-----THIS IS YOUR PRIVATE KEY-----END PRIVATE KEY-----'''\n  rootCaCertificateContent:\n    type: string\n    default: '''-----BEGIN CERTIFICATE-----THIS IS YOUR CERT CONTENT-----END CERTIFICATE-----'''\n  dedicatedInstanceId:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:ApigwCertificateV2\n    properties:\n      name: ${certificateName}\n      content: ${certificateContent}\n      privateKey: ${certificatePrivateKey}\n      trustedRootCa: ${rootCaCertificateContent}\n      type: instance\n      instanceId: ${dedicatedInstanceId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCertificates can be imported using their `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/apigwCertificateV2:ApigwCertificateV2 test <id>\n```\n\nNote that the imported state may not be identical to your resource definition, due to some attributes missing from the\n\nAPI response. The missing attributes include: `content`, `private_key` and `trusted_root_ca`.\n\nIt is generally recommended running `pulumi preview` after importing a certificate.\n\nYou can then decide if changes should be applied to the certificate, or the resource definition should be updated to\n\nalign with the certificate. Also, you can ignore changes as below.\n\nhcl\n\nresource \"opentelekomcloud_apigw_certificate_v2\" \"test\" {\n\n  lifecycle {\n\n    ignore_changes = [\n\n      content, private_key, trusted_root_ca,\n\n    ]\n\n  }\n\n}\n\n","inputProperties":{"apigwCertificateV2Id":{"description":"The certificate ID.\n","type":"string"},"content":{"description":"Specifies the certificate content.\n","secret":true,"type":"string"},"instanceId":{"description":"Specifies the dedicated instance ID to which the certificate belongs.\nRequired if <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is **instance**.\nChanging this will create a new resource.\n","type":"string"},"name":{"description":"Specifies the certificate name.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span> to <span pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\">`50`</span>, only Chinese and English letters, digits and underscores (_) are\nallowed. The name must start with an English letter.\n","type":"string"},"privateKey":{"description":"Specifies the private key of the certificate.\n","secret":true,"type":"string"},"trustedRootCa":{"description":"Specifies the trusted **ROOT CA** certificate.\n\n> Currently, the ROOT CA parameter only certificates of type <span pulumi-lang-nodejs=\"`instance`\" pulumi-lang-dotnet=\"`Instance`\" pulumi-lang-go=\"`instance`\" pulumi-lang-python=\"`instance`\" pulumi-lang-yaml=\"`instance`\" pulumi-lang-java=\"`instance`\">`instance`</span> are support.\n","secret":true,"type":"string"},"type":{"description":"Specifies the certificate type. The valid values are as follows:\n+ **instance**\n+ **global**\n\nDefaults to **global**. Changing this will create a new resource.\n","type":"string"}},"properties":{"apigwCertificateV2Id":{"description":"The certificate ID.\n","type":"string"},"content":{"description":"Specifies the certificate content.\n","secret":true,"type":"string"},"effectedAt":{"description":"The effective time of the certificate, in RFC3339 format (YYYY-MM-DDThh:mm:ssZ).\n","type":"string"},"expiresAt":{"description":"The expiration time of the certificate, in RFC3339 format (YYYY-MM-DDThh:mm:ssZ).\n","type":"string"},"instanceId":{"description":"Specifies the dedicated instance ID to which the certificate belongs.\nRequired if <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is **instance**.\nChanging this will create a new resource.\n","type":"string"},"name":{"description":"Specifies the certificate name.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span> to <span pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\">`50`</span>, only Chinese and English letters, digits and underscores (_) are\nallowed. The name must start with an English letter.\n","type":"string"},"privateKey":{"description":"Specifies the private key of the certificate.\n","secret":true,"type":"string"},"region":{"description":"The region where the certificate is located.\n","type":"string"},"sans":{"description":"The SAN (Subject Alternative Names) of the certificate.\n","items":{"type":"string"},"type":"array"},"signatureAlgorithm":{"description":"What signature algorithm the certificate uses.\n","type":"string"},"trustedRootCa":{"description":"Specifies the trusted **ROOT CA** certificate.\n\n> Currently, the ROOT CA parameter only certificates of type <span pulumi-lang-nodejs=\"`instance`\" pulumi-lang-dotnet=\"`Instance`\" pulumi-lang-go=\"`instance`\" pulumi-lang-python=\"`instance`\" pulumi-lang-yaml=\"`instance`\" pulumi-lang-java=\"`instance`\">`instance`</span> are support.\n","secret":true,"type":"string"},"type":{"description":"Specifies the certificate type. The valid values are as follows:\n+ **instance**\n+ **global**\n\nDefaults to **global**. Changing this will create a new resource.\n","type":"string"}},"required":["apigwCertificateV2Id","content","effectedAt","expiresAt","instanceId","name","privateKey","region","sans","signatureAlgorithm","type"],"requiredInputs":["content","privateKey"],"stateInputs":{"description":"Input properties used for looking up and filtering ApigwCertificateV2 resources.\n","properties":{"apigwCertificateV2Id":{"description":"The certificate ID.\n","type":"string"},"content":{"description":"Specifies the certificate content.\n","secret":true,"type":"string"},"effectedAt":{"description":"The effective time of the certificate, in RFC3339 format (YYYY-MM-DDThh:mm:ssZ).\n","type":"string"},"expiresAt":{"description":"The expiration time of the certificate, in RFC3339 format (YYYY-MM-DDThh:mm:ssZ).\n","type":"string"},"instanceId":{"description":"Specifies the dedicated instance ID to which the certificate belongs.\nRequired if <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is **instance**.\nChanging this will create a new resource.\n","type":"string"},"name":{"description":"Specifies the certificate name.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span> to <span pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\">`50`</span>, only Chinese and English letters, digits and underscores (_) are\nallowed. The name must start with an English letter.\n","type":"string"},"privateKey":{"description":"Specifies the private key of the certificate.\n","secret":true,"type":"string"},"region":{"description":"The region where the certificate is located.\n","type":"string"},"sans":{"description":"The SAN (Subject Alternative Names) of the certificate.\n","items":{"type":"string"},"type":"array"},"signatureAlgorithm":{"description":"What signature algorithm the certificate uses.\n","type":"string"},"trustedRootCa":{"description":"Specifies the trusted **ROOT CA** certificate.\n\n> Currently, the ROOT CA parameter only certificates of type <span pulumi-lang-nodejs=\"`instance`\" pulumi-lang-dotnet=\"`Instance`\" pulumi-lang-go=\"`instance`\" pulumi-lang-python=\"`instance`\" pulumi-lang-yaml=\"`instance`\" pulumi-lang-java=\"`instance`\">`instance`</span> are support.\n","secret":true,"type":"string"},"type":{"description":"Specifies the certificate type. The valid values are as follows:\n+ **instance**\n+ **global**\n\nDefaults to **global**. Changing this will create a new resource.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/apigwCustomAuthorizerV2:ApigwCustomAuthorizerV2":{"description":"Up-to-date reference of API arguments for API Gateway Custom Authorizer service you can get at\n[documentation portal](https://docs.otc.t-systems.com/api-gateway/api-ref/dedicated_gateway_apis_v2/custom_authorizer_management/index.html)\n\nManages an APIGW custom authorizer resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst gatewayId = config.requireObject<any>(\"gatewayId\");\nconst authorizerName = config.requireObject<any>(\"authorizerName\");\nconst functionUrn = config.requireObject<any>(\"functionUrn\");\nconst test = new opentelekomcloud.ApigwCustomAuthorizerV2(\"test\", {\n    gatewayId: gatewayId,\n    name: authorizerName,\n    functionUrn: functionUrn,\n    type: \"FRONTEND\",\n    ttl: 60,\n    identities: [{\n        name: \"user_name\",\n        location: \"QUERY\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ngateway_id = config.require_object(\"gatewayId\")\nauthorizer_name = config.require_object(\"authorizerName\")\nfunction_urn = config.require_object(\"functionUrn\")\ntest = opentelekomcloud.ApigwCustomAuthorizerV2(\"test\",\n    gateway_id=gateway_id,\n    name=authorizer_name,\n    function_urn=function_urn,\n    type=\"FRONTEND\",\n    ttl=60,\n    identities=[{\n        \"name\": \"user_name\",\n        \"location\": \"QUERY\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var gatewayId = config.RequireObject<dynamic>(\"gatewayId\");\n    var authorizerName = config.RequireObject<dynamic>(\"authorizerName\");\n    var functionUrn = config.RequireObject<dynamic>(\"functionUrn\");\n    var test = new Opentelekomcloud.ApigwCustomAuthorizerV2(\"test\", new()\n    {\n        GatewayId = gatewayId,\n        Name = authorizerName,\n        FunctionUrn = functionUrn,\n        Type = \"FRONTEND\",\n        Ttl = 60,\n        Identities = new[]\n        {\n            new Opentelekomcloud.Inputs.ApigwCustomAuthorizerV2IdentityArgs\n            {\n                Name = \"user_name\",\n                Location = \"QUERY\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tgatewayId := cfg.RequireObject(\"gatewayId\")\n\t\tauthorizerName := cfg.RequireObject(\"authorizerName\")\n\t\tfunctionUrn := cfg.RequireObject(\"functionUrn\")\n\t\t_, err := opentelekomcloud.NewApigwCustomAuthorizerV2(ctx, \"test\", &opentelekomcloud.ApigwCustomAuthorizerV2Args{\n\t\t\tGatewayId:   pulumi.Any(gatewayId),\n\t\t\tName:        pulumi.Any(authorizerName),\n\t\t\tFunctionUrn: pulumi.Any(functionUrn),\n\t\t\tType:        pulumi.String(\"FRONTEND\"),\n\t\t\tTtl:         pulumi.Float64(60),\n\t\t\tIdentities: opentelekomcloud.ApigwCustomAuthorizerV2IdentityArray{\n\t\t\t\t&opentelekomcloud.ApigwCustomAuthorizerV2IdentityArgs{\n\t\t\t\t\tName:     pulumi.String(\"user_name\"),\n\t\t\t\t\tLocation: pulumi.String(\"QUERY\"),\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.opentelekomcloud.ApigwCustomAuthorizerV2;\nimport com.pulumi.opentelekomcloud.ApigwCustomAuthorizerV2Args;\nimport com.pulumi.opentelekomcloud.inputs.ApigwCustomAuthorizerV2IdentityArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var gatewayId = config.get(\"gatewayId\");\n        final var authorizerName = config.get(\"authorizerName\");\n        final var functionUrn = config.get(\"functionUrn\");\n        var test = new ApigwCustomAuthorizerV2(\"test\", ApigwCustomAuthorizerV2Args.builder()\n            .gatewayId(gatewayId)\n            .name(authorizerName)\n            .functionUrn(functionUrn)\n            .type(\"FRONTEND\")\n            .ttl(60.0)\n            .identities(ApigwCustomAuthorizerV2IdentityArgs.builder()\n                .name(\"user_name\")\n                .location(\"QUERY\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  gatewayId:\n    type: dynamic\n  authorizerName:\n    type: dynamic\n  functionUrn:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:ApigwCustomAuthorizerV2\n    properties:\n      gatewayId: ${gatewayId}\n      name: ${authorizerName}\n      functionUrn: ${functionUrn}\n      type: FRONTEND\n      ttl: 60\n      identities:\n        - name: user_name\n          location: QUERY\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCustom Authorizers of the APIGW can be imported using their `name` and related dedicated gateway IDs, separated by a\n\nslash, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/apigwCustomAuthorizerV2:ApigwCustomAuthorizerV2 test <gateway_id>/<name>\n```\n\n","inputProperties":{"apigwCustomAuthorizerV2Id":{"description":"ID of the custom authorizer.\n","type":"string"},"functionUrn":{"description":"Specifies the uniform function URN of the function graph resource.\n","type":"string"},"gatewayId":{"description":"Specifies an ID of the APIGW dedicated instance to which the\ncustom authorizer belongs to.\nChanging this will create a new custom authorizer resource.\n","type":"string"},"identities":{"description":"Specifies an array of one or more parameter identities of the custom authorizer.\nThe object structure is documented below.\n\n<a name=<span pulumi-lang-nodejs=\"\"authorizerIdentity\"\" pulumi-lang-dotnet=\"\"AuthorizerIdentity\"\" pulumi-lang-go=\"\"authorizerIdentity\"\" pulumi-lang-python=\"\"authorizer_identity\"\" pulumi-lang-yaml=\"\"authorizerIdentity\"\" pulumi-lang-java=\"\"authorizerIdentity\"\">\"authorizer_identity\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`identity`\" pulumi-lang-dotnet=\"`Identity`\" pulumi-lang-go=\"`identity`\" pulumi-lang-python=\"`identity`\" pulumi-lang-yaml=\"`identity`\" pulumi-lang-java=\"`identity`\">`identity`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwCustomAuthorizerV2Identity:ApigwCustomAuthorizerV2Identity"},"type":"array"},"isBodySend":{"description":"Specifies whether to send the body.\n","type":"boolean"},"name":{"description":"Specifies the name of the parameter to be verified.\nThe parameter includes front-end and back-end parameters.\n","type":"string"},"ttl":{"description":"Specifies the maximum cache age.\n","type":"number"},"type":{"description":"Specifies the custom authorize type.\nThe valid values are `FRONTEND` and `BACKEND`. Defaults to `FRONTEND`.\nChanging this will create a new custom authorizer resource.\n","type":"string"},"userData":{"description":"Specifies the user data, which can contain a maximum of `2,048` characters.\nThe user data is used by APIGW to invoke the specified authentication function when accessing the backend service.\n\n> **NOTE:** The user data will be displayed in plain text on the console.\n","type":"string"}},"properties":{"apigwCustomAuthorizerV2Id":{"description":"ID of the custom authorizer.\n","type":"string"},"createdAt":{"description":"The creation time of the custom authorizer.\n","type":"string"},"functionUrn":{"description":"Specifies the uniform function URN of the function graph resource.\n","type":"string"},"gatewayId":{"description":"Specifies an ID of the APIGW dedicated instance to which the\ncustom authorizer belongs to.\nChanging this will create a new custom authorizer resource.\n","type":"string"},"identities":{"description":"Specifies an array of one or more parameter identities of the custom authorizer.\nThe object structure is documented below.\n\n<a name=<span pulumi-lang-nodejs=\"\"authorizerIdentity\"\" pulumi-lang-dotnet=\"\"AuthorizerIdentity\"\" pulumi-lang-go=\"\"authorizerIdentity\"\" pulumi-lang-python=\"\"authorizer_identity\"\" pulumi-lang-yaml=\"\"authorizerIdentity\"\" pulumi-lang-java=\"\"authorizerIdentity\"\">\"authorizer_identity\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`identity`\" pulumi-lang-dotnet=\"`Identity`\" pulumi-lang-go=\"`identity`\" pulumi-lang-python=\"`identity`\" pulumi-lang-yaml=\"`identity`\" pulumi-lang-java=\"`identity`\">`identity`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwCustomAuthorizerV2Identity:ApigwCustomAuthorizerV2Identity"},"type":"array"},"isBodySend":{"description":"Specifies whether to send the body.\n","type":"boolean"},"name":{"description":"Specifies the name of the parameter to be verified.\nThe parameter includes front-end and back-end parameters.\n","type":"string"},"region":{"description":"The region in which to create the custom authorizer resource.\n","type":"string"},"ttl":{"description":"Specifies the maximum cache age.\n","type":"number"},"type":{"description":"Specifies the custom authorize type.\nThe valid values are `FRONTEND` and `BACKEND`. Defaults to `FRONTEND`.\nChanging this will create a new custom authorizer resource.\n","type":"string"},"userData":{"description":"Specifies the user data, which can contain a maximum of `2,048` characters.\nThe user data is used by APIGW to invoke the specified authentication function when accessing the backend service.\n\n> **NOTE:** The user data will be displayed in plain text on the console.\n","type":"string"}},"required":["apigwCustomAuthorizerV2Id","createdAt","functionUrn","gatewayId","name","region"],"requiredInputs":["functionUrn","gatewayId"],"stateInputs":{"description":"Input properties used for looking up and filtering ApigwCustomAuthorizerV2 resources.\n","properties":{"apigwCustomAuthorizerV2Id":{"description":"ID of the custom authorizer.\n","type":"string"},"createdAt":{"description":"The creation time of the custom authorizer.\n","type":"string"},"functionUrn":{"description":"Specifies the uniform function URN of the function graph resource.\n","type":"string"},"gatewayId":{"description":"Specifies an ID of the APIGW dedicated instance to which the\ncustom authorizer belongs to.\nChanging this will create a new custom authorizer resource.\n","type":"string"},"identities":{"description":"Specifies an array of one or more parameter identities of the custom authorizer.\nThe object structure is documented below.\n\n<a name=<span pulumi-lang-nodejs=\"\"authorizerIdentity\"\" pulumi-lang-dotnet=\"\"AuthorizerIdentity\"\" pulumi-lang-go=\"\"authorizerIdentity\"\" pulumi-lang-python=\"\"authorizer_identity\"\" pulumi-lang-yaml=\"\"authorizerIdentity\"\" pulumi-lang-java=\"\"authorizerIdentity\"\">\"authorizer_identity\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`identity`\" pulumi-lang-dotnet=\"`Identity`\" pulumi-lang-go=\"`identity`\" pulumi-lang-python=\"`identity`\" pulumi-lang-yaml=\"`identity`\" pulumi-lang-java=\"`identity`\">`identity`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwCustomAuthorizerV2Identity:ApigwCustomAuthorizerV2Identity"},"type":"array"},"isBodySend":{"description":"Specifies whether to send the body.\n","type":"boolean"},"name":{"description":"Specifies the name of the parameter to be verified.\nThe parameter includes front-end and back-end parameters.\n","type":"string"},"region":{"description":"The region in which to create the custom authorizer resource.\n","type":"string"},"ttl":{"description":"Specifies the maximum cache age.\n","type":"number"},"type":{"description":"Specifies the custom authorize type.\nThe valid values are `FRONTEND` and `BACKEND`. Defaults to `FRONTEND`.\nChanging this will create a new custom authorizer resource.\n","type":"string"},"userData":{"description":"Specifies the user data, which can contain a maximum of `2,048` characters.\nThe user data is used by APIGW to invoke the specified authentication function when accessing the backend service.\n\n> **NOTE:** The user data will be displayed in plain text on the console.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/apigwEnvironmentV2:ApigwEnvironmentV2":{"description":"Up-to-date reference of API arguments for API Gateway environment service you can get at\n[documentation portal](https://docs.otc.t-systems.com/api-gateway/api-ref/dedicated_gateway_apis_v2/index.html)\n\nAPI Gateway (APIGW) is a high-performance, high-availability, and high-security API hosting service that helps you build,\nmanage, and deploy APIs at any scale.\nWith just a few clicks, you can integrate internal systems, and selectively expose capabilities with minimal costs and risks.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst environmentName = config.requireObject<any>(\"environmentName\");\nconst description = config.requireObject<any>(\"description\");\nconst test = new opentelekomcloud.ApigwEnvironmentV2(\"test\", {\n    instanceId: instanceId,\n    name: environmentName,\n    description: description,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nenvironment_name = config.require_object(\"environmentName\")\ndescription = config.require_object(\"description\")\ntest = opentelekomcloud.ApigwEnvironmentV2(\"test\",\n    instance_id=instance_id,\n    name=environment_name,\n    description=description)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var environmentName = config.RequireObject<dynamic>(\"environmentName\");\n    var description = config.RequireObject<dynamic>(\"description\");\n    var test = new Opentelekomcloud.ApigwEnvironmentV2(\"test\", new()\n    {\n        InstanceId = instanceId,\n        Name = environmentName,\n        Description = description,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tenvironmentName := cfg.RequireObject(\"environmentName\")\n\t\tdescription := cfg.RequireObject(\"description\")\n\t\t_, err := opentelekomcloud.NewApigwEnvironmentV2(ctx, \"test\", &opentelekomcloud.ApigwEnvironmentV2Args{\n\t\t\tInstanceId:  pulumi.Any(instanceId),\n\t\t\tName:        pulumi.Any(environmentName),\n\t\t\tDescription: pulumi.Any(description),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ApigwEnvironmentV2;\nimport com.pulumi.opentelekomcloud.ApigwEnvironmentV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var environmentName = config.get(\"environmentName\");\n        final var description = config.get(\"description\");\n        var test = new ApigwEnvironmentV2(\"test\", ApigwEnvironmentV2Args.builder()\n            .instanceId(instanceId)\n            .name(environmentName)\n            .description(description)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  environmentName:\n    type: dynamic\n  description:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:ApigwEnvironmentV2\n    properties:\n      instanceId: ${instanceId}\n      name: ${environmentName}\n      description: ${description}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nEnvironments can be imported using their `name` and the ID of the related dedicated instance, separated by a slash, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/apigwEnvironmentV2:ApigwEnvironmentV2 test instance_id/name\n```\n","inputProperties":{"apigwEnvironmentV2Id":{"description":"The ID of the dedicated environment.\n","type":"string"},"description":{"description":"Specifies the environment description.\nThe value can contain a maximum of <span pulumi-lang-nodejs=\"`255`\" pulumi-lang-dotnet=\"`255`\" pulumi-lang-go=\"`255`\" pulumi-lang-python=\"`255`\" pulumi-lang-yaml=\"`255`\" pulumi-lang-java=\"`255`\">`255`</span> characters, and the angle brackets (< and >) are not allowed.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the dedicated instance to which the environment\nbelongs.\nChanging this will create a new resource.\n","type":"string"},"name":{"description":"Specifies the environment name.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, only letters, digits and underscores (_) are allowed.\nThe name must start with a letter.\n","type":"string"},"region":{"description":"Specifies the region where the dedicated instance is located.\nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n","type":"string"}},"properties":{"apigwEnvironmentV2Id":{"description":"The ID of the dedicated environment.\n","type":"string"},"createdAt":{"description":"The time when the environment was created.\n","type":"string"},"description":{"description":"Specifies the environment description.\nThe value can contain a maximum of <span pulumi-lang-nodejs=\"`255`\" pulumi-lang-dotnet=\"`255`\" pulumi-lang-go=\"`255`\" pulumi-lang-python=\"`255`\" pulumi-lang-yaml=\"`255`\" pulumi-lang-java=\"`255`\">`255`</span> characters, and the angle brackets (< and >) are not allowed.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the dedicated instance to which the environment\nbelongs.\nChanging this will create a new resource.\n","type":"string"},"name":{"description":"Specifies the environment name.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, only letters, digits and underscores (_) are allowed.\nThe name must start with a letter.\n","type":"string"},"region":{"description":"Specifies the region where the dedicated instance is located.\nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n","type":"string"}},"required":["apigwEnvironmentV2Id","createdAt","instanceId","name","region"],"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering ApigwEnvironmentV2 resources.\n","properties":{"apigwEnvironmentV2Id":{"description":"The ID of the dedicated environment.\n","type":"string"},"createdAt":{"description":"The time when the environment was created.\n","type":"string"},"description":{"description":"Specifies the environment description.\nThe value can contain a maximum of <span pulumi-lang-nodejs=\"`255`\" pulumi-lang-dotnet=\"`255`\" pulumi-lang-go=\"`255`\" pulumi-lang-python=\"`255`\" pulumi-lang-yaml=\"`255`\" pulumi-lang-java=\"`255`\">`255`</span> characters, and the angle brackets (< and >) are not allowed.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the dedicated instance to which the environment\nbelongs.\nChanging this will create a new resource.\n","type":"string"},"name":{"description":"Specifies the environment name.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, only letters, digits and underscores (_) are allowed.\nThe name must start with a letter.\n","type":"string"},"region":{"description":"Specifies the region where the dedicated instance is located.\nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/apigwEnvironmentVariableV2:ApigwEnvironmentVariableV2":{"description":"Up-to-date reference of API arguments for API Gateway environment variable service you can get at\n[documentation portal](https://docs.otc.t-systems.com/api-gateway/api-ref/dedicated_gateway_apis_v2/environment_variable_management/index.html)\n\nManages an APIGW environment variable resource within OpenTelekomCloud.\n\n> A maximum of <span pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\">`50`</span> variables can be created on the same environment.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst gatewayId = config.requireObject<any>(\"gatewayId\");\nconst environmentId = config.requireObject<any>(\"environmentId\");\nconst groupId = config.requireObject<any>(\"groupId\");\nconst variableName = config.requireObject<any>(\"variableName\");\nconst variableValue = config.requireObject<any>(\"variableValue\");\nconst _var = new opentelekomcloud.ApigwEnvironmentVariableV2(\"var\", {\n    gatewayId: gatewayId,\n    environmentId: environmentId,\n    groupId: groupId,\n    name: variableName,\n    value: variableValue,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ngateway_id = config.require_object(\"gatewayId\")\nenvironment_id = config.require_object(\"environmentId\")\ngroup_id = config.require_object(\"groupId\")\nvariable_name = config.require_object(\"variableName\")\nvariable_value = config.require_object(\"variableValue\")\nvar = opentelekomcloud.ApigwEnvironmentVariableV2(\"var\",\n    gateway_id=gateway_id,\n    environment_id=environment_id,\n    group_id=group_id,\n    name=variable_name,\n    value=variable_value)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var gatewayId = config.RequireObject<dynamic>(\"gatewayId\");\n    var environmentId = config.RequireObject<dynamic>(\"environmentId\");\n    var groupId = config.RequireObject<dynamic>(\"groupId\");\n    var variableName = config.RequireObject<dynamic>(\"variableName\");\n    var variableValue = config.RequireObject<dynamic>(\"variableValue\");\n    var @var = new Opentelekomcloud.ApigwEnvironmentVariableV2(\"var\", new()\n    {\n        GatewayId = gatewayId,\n        EnvironmentId = environmentId,\n        GroupId = groupId,\n        Name = variableName,\n        Value = variableValue,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tgatewayId := cfg.RequireObject(\"gatewayId\")\n\t\tenvironmentId := cfg.RequireObject(\"environmentId\")\n\t\tgroupId := cfg.RequireObject(\"groupId\")\n\t\tvariableName := cfg.RequireObject(\"variableName\")\n\t\tvariableValue := cfg.RequireObject(\"variableValue\")\n\t\t_, err := opentelekomcloud.NewApigwEnvironmentVariableV2(ctx, \"var\", &opentelekomcloud.ApigwEnvironmentVariableV2Args{\n\t\t\tGatewayId:     pulumi.Any(gatewayId),\n\t\t\tEnvironmentId: pulumi.Any(environmentId),\n\t\t\tGroupId:       pulumi.Any(groupId),\n\t\t\tName:          pulumi.Any(variableName),\n\t\t\tValue:         pulumi.Any(variableValue),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ApigwEnvironmentVariableV2;\nimport com.pulumi.opentelekomcloud.ApigwEnvironmentVariableV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var gatewayId = config.get(\"gatewayId\");\n        final var environmentId = config.get(\"environmentId\");\n        final var groupId = config.get(\"groupId\");\n        final var variableName = config.get(\"variableName\");\n        final var variableValue = config.get(\"variableValue\");\n        var var_ = new ApigwEnvironmentVariableV2(\"var\", ApigwEnvironmentVariableV2Args.builder()\n            .gatewayId(gatewayId)\n            .environmentId(environmentId)\n            .groupId(groupId)\n            .name(variableName)\n            .value(variableValue)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  gatewayId:\n    type: dynamic\n  environmentId:\n    type: dynamic\n  groupId:\n    type: dynamic\n  variableName:\n    type: dynamic\n  variableValue:\n    type: dynamic\nresources:\n  var:\n    type: opentelekomcloud:ApigwEnvironmentVariableV2\n    properties:\n      gatewayId: ${gatewayId}\n      environmentId: ${environmentId}\n      groupId: ${groupId}\n      name: ${variableName}\n      value: ${variableValue}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe resource can be imported using `gateway_id`, `group_id` and `name`, separated by slashes (/), e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/apigwEnvironmentVariableV2:ApigwEnvironmentVariableV2 test <gateway_id>/<group_id>/<name>\n```\n\n","inputProperties":{"apigwEnvironmentVariableV2Id":{"description":"The resource ID.\n","type":"string"},"environmentId":{"description":"Specifies the ID of the environment to which the environment variable belongs.\nChanging this creates a new resource.\n","type":"string"},"gatewayId":{"description":"Specifies the ID of the dedicated gateway instance to which the environment\nvariable belongs. Changing this creates a new resource.\n","type":"string"},"groupId":{"description":"Specifies the ID of the group to which the environment variable belongs.\nChanging this creates a new resource.\n","type":"string"},"name":{"description":"Specifies the name of the environment variable.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> characters.\nOnly letters, digits, hyphens `-`, and underscores `_` are allowed, and must start with a letter.\nIn the definition of an API, the <span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span> (`case-sensitive`) indicates a variable, for example, `#Name#`.\nIt is replaced by the actual value when the API is published in an environment. The variable name must be unique.\nChanging this creates a new resource.\n","type":"string"},"value":{"description":"Specifies the value of the environment variable.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`255`\" pulumi-lang-dotnet=\"`255`\" pulumi-lang-go=\"`255`\" pulumi-lang-python=\"`255`\" pulumi-lang-yaml=\"`255`\" pulumi-lang-java=\"`255`\">`255`</span> characters. Only letters, digits and special characters `_-/.:` are allowed.\nChanging this creates a new resource.\n","type":"string"}},"properties":{"apigwEnvironmentVariableV2Id":{"description":"The resource ID.\n","type":"string"},"environmentId":{"description":"Specifies the ID of the environment to which the environment variable belongs.\nChanging this creates a new resource.\n","type":"string"},"gatewayId":{"description":"Specifies the ID of the dedicated gateway instance to which the environment\nvariable belongs. Changing this creates a new resource.\n","type":"string"},"groupId":{"description":"Specifies the ID of the group to which the environment variable belongs.\nChanging this creates a new resource.\n","type":"string"},"name":{"description":"Specifies the name of the environment variable.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> characters.\nOnly letters, digits, hyphens `-`, and underscores `_` are allowed, and must start with a letter.\nIn the definition of an API, the <span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span> (`case-sensitive`) indicates a variable, for example, `#Name#`.\nIt is replaced by the actual value when the API is published in an environment. The variable name must be unique.\nChanging this creates a new resource.\n","type":"string"},"region":{"description":"The region where the dedicated instance is located.\n","type":"string"},"value":{"description":"Specifies the value of the environment variable.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`255`\" pulumi-lang-dotnet=\"`255`\" pulumi-lang-go=\"`255`\" pulumi-lang-python=\"`255`\" pulumi-lang-yaml=\"`255`\" pulumi-lang-java=\"`255`\">`255`</span> characters. Only letters, digits and special characters `_-/.:` are allowed.\nChanging this creates a new resource.\n","type":"string"}},"required":["apigwEnvironmentVariableV2Id","environmentId","gatewayId","groupId","name","region","value"],"requiredInputs":["environmentId","gatewayId","groupId","value"],"stateInputs":{"description":"Input properties used for looking up and filtering ApigwEnvironmentVariableV2 resources.\n","properties":{"apigwEnvironmentVariableV2Id":{"description":"The resource ID.\n","type":"string"},"environmentId":{"description":"Specifies the ID of the environment to which the environment variable belongs.\nChanging this creates a new resource.\n","type":"string"},"gatewayId":{"description":"Specifies the ID of the dedicated gateway instance to which the environment\nvariable belongs. Changing this creates a new resource.\n","type":"string"},"groupId":{"description":"Specifies the ID of the group to which the environment variable belongs.\nChanging this creates a new resource.\n","type":"string"},"name":{"description":"Specifies the name of the environment variable.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> characters.\nOnly letters, digits, hyphens `-`, and underscores `_` are allowed, and must start with a letter.\nIn the definition of an API, the <span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span> (`case-sensitive`) indicates a variable, for example, `#Name#`.\nIt is replaced by the actual value when the API is published in an environment. The variable name must be unique.\nChanging this creates a new resource.\n","type":"string"},"region":{"description":"The region where the dedicated instance is located.\n","type":"string"},"value":{"description":"Specifies the value of the environment variable.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`255`\" pulumi-lang-dotnet=\"`255`\" pulumi-lang-go=\"`255`\" pulumi-lang-python=\"`255`\" pulumi-lang-yaml=\"`255`\" pulumi-lang-java=\"`255`\">`255`</span> characters. Only letters, digits and special characters `_-/.:` are allowed.\nChanging this creates a new resource.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/apigwGatewayFeatureV2:ApigwGatewayFeatureV2":{"description":"Up-to-date reference of API arguments for API Gateway environment variable service you can get at\n[documentation portal](https://docs.otc.t-systems.com/api-gateway/api-ref/dedicated_gateway_apis_v2/gateway_feature_management/configuring_a_feature_for_a_gateway.html)\n\nManages an APIGW gateway feature resource within OpenTelekomCloud.\n\n> For various types of feature parameter configurations, please refer to the\n   [documentation](https://docs.otc.t-systems.com/api-gateway/api-ref/appendix/supported_features.html#apig-api-20200402).\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst gatewayId = config.requireObject<any>(\"gatewayId\");\nconst feat = new opentelekomcloud.ApigwGatewayFeatureV2(\"feat\", {\n    gatewayId: gatewayId,\n    name: \"ratelimit\",\n    enabled: true,\n    config: JSON.stringify({\n        api_limits: 300,\n    }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ngateway_id = config.require_object(\"gatewayId\")\nfeat = opentelekomcloud.ApigwGatewayFeatureV2(\"feat\",\n    gateway_id=gateway_id,\n    name=\"ratelimit\",\n    enabled=True,\n    config=json.dumps({\n        \"api_limits\": 300,\n    }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var gatewayId = config.RequireObject<dynamic>(\"gatewayId\");\n    var feat = new Opentelekomcloud.ApigwGatewayFeatureV2(\"feat\", new()\n    {\n        GatewayId = gatewayId,\n        Name = \"ratelimit\",\n        Enabled = true,\n        Config = JsonSerializer.Serialize(new Dictionary<string, object?>\n        {\n            [\"api_limits\"] = 300,\n        }),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tgatewayId := cfg.RequireObject(\"gatewayId\")\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"api_limits\": 300,\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 = opentelekomcloud.NewApigwGatewayFeatureV2(ctx, \"feat\", &opentelekomcloud.ApigwGatewayFeatureV2Args{\n\t\t\tGatewayId: pulumi.Any(gatewayId),\n\t\t\tName:      pulumi.String(\"ratelimit\"),\n\t\t\tEnabled:   pulumi.Bool(true),\n\t\t\tConfig:    pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ApigwGatewayFeatureV2;\nimport com.pulumi.opentelekomcloud.ApigwGatewayFeatureV2Args;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var gatewayId = config.get(\"gatewayId\");\n        var feat = new ApigwGatewayFeatureV2(\"feat\", ApigwGatewayFeatureV2Args.builder()\n            .gatewayId(gatewayId)\n            .name(\"ratelimit\")\n            .enabled(true)\n            .config(serializeJson(\n                jsonObject(\n                    jsonProperty(\"api_limits\", 300)\n                )))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  gatewayId:\n    type: dynamic\nresources:\n  feat:\n    type: opentelekomcloud:ApigwGatewayFeatureV2\n    properties:\n      gatewayId: ${gatewayId}\n      name: ratelimit\n      enabled: true\n      config:\n        fn::toJSON:\n          api_limits: 300\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe resource can be imported using `gateway_id` and `name`, separated by a slash (/), e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/apigwGatewayFeatureV2:ApigwGatewayFeatureV2 feat <gateway_id>/<name>\n```\n\n","inputProperties":{"apigwGatewayFeatureV2Id":{"description":"The resource ID. The value is the feature name.\n","type":"string"},"config":{"description":"Specified the detailed configuration of the feature.\n","type":"string"},"enabled":{"description":"Specified whether to enable the feature. Default value is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"gatewayId":{"description":"Specified the ID of the dedicated gateway to which the feature belongs.\nChanging this creates a new resource.\n","type":"string"},"name":{"description":"Specified the name of the feature.\nChanging this creates a new resource.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FApigwGatewayFeatureV2Timeouts:ApigwGatewayFeatureV2Timeouts"}},"properties":{"apigwGatewayFeatureV2Id":{"description":"The resource ID. The value is the feature name.\n","type":"string"},"config":{"description":"Specified the detailed configuration of the feature.\n","type":"string"},"enabled":{"description":"Specified whether to enable the feature. Default value is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"gatewayId":{"description":"Specified the ID of the dedicated gateway to which the feature belongs.\nChanging this creates a new resource.\n","type":"string"},"name":{"description":"Specified the name of the feature.\nChanging this creates a new resource.\n","type":"string"},"region":{"description":"The region in which to create the resource.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FApigwGatewayFeatureV2Timeouts:ApigwGatewayFeatureV2Timeouts"}},"required":["apigwGatewayFeatureV2Id","gatewayId","name","region"],"requiredInputs":["gatewayId"],"stateInputs":{"description":"Input properties used for looking up and filtering ApigwGatewayFeatureV2 resources.\n","properties":{"apigwGatewayFeatureV2Id":{"description":"The resource ID. The value is the feature name.\n","type":"string"},"config":{"description":"Specified the detailed configuration of the feature.\n","type":"string"},"enabled":{"description":"Specified whether to enable the feature. Default value is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"gatewayId":{"description":"Specified the ID of the dedicated gateway to which the feature belongs.\nChanging this creates a new resource.\n","type":"string"},"name":{"description":"Specified the name of the feature.\nChanging this creates a new resource.\n","type":"string"},"region":{"description":"The region in which to create the resource.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FApigwGatewayFeatureV2Timeouts:ApigwGatewayFeatureV2Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/apigwGatewayRoutesV2:ApigwGatewayRoutesV2":{"description":"Up-to-date reference of API arguments for API Gateway environment variable service you can get at\n[documentation portal](https://docs.otc.t-systems.com/api-gateway/api-ref/dedicated_gateway_apis_v2/gateway_feature_management/configuring_a_feature_for_a_gateway.html)\n\nManages a APIGW gateway routes resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst gatewayId = config.requireObject<any>(\"gatewayId\");\nconst rt = new opentelekomcloud.ApigwGatewayRoutesV2(\"rt\", {\n    gatewayId: gatewayId,\n    nexthops: [\n        \"172.16.3.0/24\",\n        \"172.16.7.0/24\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ngateway_id = config.require_object(\"gatewayId\")\nrt = opentelekomcloud.ApigwGatewayRoutesV2(\"rt\",\n    gateway_id=gateway_id,\n    nexthops=[\n        \"172.16.3.0/24\",\n        \"172.16.7.0/24\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var gatewayId = config.RequireObject<dynamic>(\"gatewayId\");\n    var rt = new Opentelekomcloud.ApigwGatewayRoutesV2(\"rt\", new()\n    {\n        GatewayId = gatewayId,\n        Nexthops = new[]\n        {\n            \"172.16.3.0/24\",\n            \"172.16.7.0/24\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tgatewayId := cfg.RequireObject(\"gatewayId\")\n\t\t_, err := opentelekomcloud.NewApigwGatewayRoutesV2(ctx, \"rt\", &opentelekomcloud.ApigwGatewayRoutesV2Args{\n\t\t\tGatewayId: pulumi.Any(gatewayId),\n\t\t\tNexthops: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"172.16.3.0/24\"),\n\t\t\t\tpulumi.String(\"172.16.7.0/24\"),\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.opentelekomcloud.ApigwGatewayRoutesV2;\nimport com.pulumi.opentelekomcloud.ApigwGatewayRoutesV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var gatewayId = config.get(\"gatewayId\");\n        var rt = new ApigwGatewayRoutesV2(\"rt\", ApigwGatewayRoutesV2Args.builder()\n            .gatewayId(gatewayId)\n            .nexthops(            \n                \"172.16.3.0/24\",\n                \"172.16.7.0/24\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  gatewayId:\n    type: dynamic\nresources:\n  rt:\n    type: opentelekomcloud:ApigwGatewayRoutesV2\n    properties:\n      gatewayId: ${gatewayId}\n      nexthops:\n        - 172.16.3.0/24\n        - 172.16.7.0/24\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nRoutes can be imported using their related dedicated instance ID (`gateway_id`), e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/apigwGatewayRoutesV2:ApigwGatewayRoutesV2 rt 628001b3c5eg6d3e91a8da530f46427y\n```\n\n","inputProperties":{"apigwGatewayRoutesV2Id":{"description":"The resource ID (gateway ID).\n","type":"string"},"gatewayId":{"description":"Specifies the ID of the dedicated gateway to which the routes belong.\nChanging this will create a new resource.\n","type":"string"},"nexthops":{"description":"Specifies the configuration of the next-hop routes.\n\n> The network segment of the next hop cannot overlap with the network segment of the APIGW gateway.\n","items":{"type":"string"},"type":"array"}},"properties":{"apigwGatewayRoutesV2Id":{"description":"The resource ID (gateway ID).\n","type":"string"},"gatewayId":{"description":"Specifies the ID of the dedicated gateway to which the routes belong.\nChanging this will create a new resource.\n","type":"string"},"nexthops":{"description":"Specifies the configuration of the next-hop routes.\n\n> The network segment of the next hop cannot overlap with the network segment of the APIGW gateway.\n","items":{"type":"string"},"type":"array"},"region":{"description":"The region where the dedicated gateway and routes are located.\n","type":"string"}},"required":["apigwGatewayRoutesV2Id","gatewayId","nexthops","region"],"requiredInputs":["gatewayId","nexthops"],"stateInputs":{"description":"Input properties used for looking up and filtering ApigwGatewayRoutesV2 resources.\n","properties":{"apigwGatewayRoutesV2Id":{"description":"The resource ID (gateway ID).\n","type":"string"},"gatewayId":{"description":"Specifies the ID of the dedicated gateway to which the routes belong.\nChanging this will create a new resource.\n","type":"string"},"nexthops":{"description":"Specifies the configuration of the next-hop routes.\n\n> The network segment of the next hop cannot overlap with the network segment of the APIGW gateway.\n","items":{"type":"string"},"type":"array"},"region":{"description":"The region where the dedicated gateway and routes are located.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/apigwGatewayV2:ApigwGatewayV2":{"description":"Up-to-date reference of API arguments for API Gateway service you can get at\n[documentation portal](https://docs.otc.t-systems.com/api-gateway/api-ref/dedicated_gateway_apis_v2/index.html)\n\nAPI Gateway (APIG) is a high-performance, high-availability, and high-security API hosting service that helps you build,\nmanage, and deploy APIs at any scale.\nWith just a few clicks, you can integrate internal systems, and selectively expose capabilities with minimal costs and risks.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst gateway = new opentelekomcloud.ApigwGatewayV2(\"gateway\", {\n    name: \"test-gateway\",\n    specId: \"BASIC\",\n    vpcId: vpcId,\n    subnetId: networkId,\n    securityGroupId: defaultSecgroup.id,\n    availabilityZones: [\n        \"eu-de-01\",\n        \"eu-de-02\",\n    ],\n    description: \"test gateway\",\n    bandwidthSize: 5,\n    ingressBandwidthSize: 5,\n    ingressBandwidthChargingMode: \"bandwidth\",\n    maintainBegin: \"22:00:00\",\n    tags: {\n        foo: \"bar\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ngateway = opentelekomcloud.ApigwGatewayV2(\"gateway\",\n    name=\"test-gateway\",\n    spec_id=\"BASIC\",\n    vpc_id=vpc_id,\n    subnet_id=network_id,\n    security_group_id=default_secgroup[\"id\"],\n    availability_zones=[\n        \"eu-de-01\",\n        \"eu-de-02\",\n    ],\n    description=\"test gateway\",\n    bandwidth_size=5,\n    ingress_bandwidth_size=5,\n    ingress_bandwidth_charging_mode=\"bandwidth\",\n    maintain_begin=\"22:00:00\",\n    tags={\n        \"foo\": \"bar\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var gateway = new Opentelekomcloud.ApigwGatewayV2(\"gateway\", new()\n    {\n        Name = \"test-gateway\",\n        SpecId = \"BASIC\",\n        VpcId = vpcId,\n        SubnetId = networkId,\n        SecurityGroupId = defaultSecgroup.Id,\n        AvailabilityZones = new[]\n        {\n            \"eu-de-01\",\n            \"eu-de-02\",\n        },\n        Description = \"test gateway\",\n        BandwidthSize = 5,\n        IngressBandwidthSize = 5,\n        IngressBandwidthChargingMode = \"bandwidth\",\n        MaintainBegin = \"22:00:00\",\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewApigwGatewayV2(ctx, \"gateway\", &opentelekomcloud.ApigwGatewayV2Args{\n\t\t\tName:            pulumi.String(\"test-gateway\"),\n\t\t\tSpecId:          pulumi.String(\"BASIC\"),\n\t\t\tVpcId:           pulumi.Any(vpcId),\n\t\t\tSubnetId:        pulumi.Any(networkId),\n\t\t\tSecurityGroupId: pulumi.Any(defaultSecgroup.Id),\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"eu-de-01\"),\n\t\t\t\tpulumi.String(\"eu-de-02\"),\n\t\t\t},\n\t\t\tDescription:                  pulumi.String(\"test gateway\"),\n\t\t\tBandwidthSize:                pulumi.Float64(5),\n\t\t\tIngressBandwidthSize:         pulumi.Float64(5),\n\t\t\tIngressBandwidthChargingMode: pulumi.String(\"bandwidth\"),\n\t\t\tMaintainBegin:                pulumi.String(\"22:00:00\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\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.opentelekomcloud.ApigwGatewayV2;\nimport com.pulumi.opentelekomcloud.ApigwGatewayV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var gateway = new ApigwGatewayV2(\"gateway\", ApigwGatewayV2Args.builder()\n            .name(\"test-gateway\")\n            .specId(\"BASIC\")\n            .vpcId(vpcId)\n            .subnetId(networkId)\n            .securityGroupId(defaultSecgroup.id())\n            .availabilityZones(            \n                \"eu-de-01\",\n                \"eu-de-02\")\n            .description(\"test gateway\")\n            .bandwidthSize(5.0)\n            .ingressBandwidthSize(5.0)\n            .ingressBandwidthChargingMode(\"bandwidth\")\n            .maintainBegin(\"22:00:00\")\n            .tags(Map.of(\"foo\", \"bar\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  gateway:\n    type: opentelekomcloud:ApigwGatewayV2\n    properties:\n      name: test-gateway\n      specId: BASIC\n      vpcId: ${vpcId}\n      subnetId: ${networkId}\n      securityGroupId: ${defaultSecgroup.id}\n      availabilityZones:\n        - eu-de-01\n        - eu-de-02\n      description: test gateway\n      bandwidthSize: 5\n      ingressBandwidthSize: 5\n      ingressBandwidthChargingMode: bandwidth\n      maintainBegin: 22:00:00\n      tags:\n        foo: bar\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAPIG Gateway can be imported using the `gateway_id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/apigwGatewayV2:ApigwGatewayV2 gateway c1881895-cdcb-4d23-96cb-032e6a3ee667\n```\n\nNote that the imported state may not be identical to your resource definition, due to `ingress_bandwidth_size` missing from the\n\nAPI response. It is generally recommended running `pulumi preview` after importing a gateway.\n\nresource \"opentelekomcloud_apigw_gateway_v2\" \"gateway\" {\n\n    ...\n\n  lifecycle {\n\n    ignore_changes = [\n\n      ingress_bandwidth_size,\n\n      ingress_bandwidth_charging_mode,\n\n      bandwidth_charging_mode\n\n    ]\n\n  }\n\n}\n\n","inputProperties":{"apigwGatewayV2Id":{"type":"string"},"availabilityZones":{"description":"Specifies gateway description.\n","items":{"type":"string"},"type":"array"},"bandwidthChargingMode":{"description":"Billing type of the public outbound access bandwidth.\nThe valid values are as follows:\n+ **bandwidth**: Billed by bandwidth.\n+ **traffic**: Billed by traffic.\n","type":"string"},"bandwidthSize":{"description":"Specifies outbound access bandwidth. This parameter is required if public outbound\naccess is enabled for the gateway. After you configure the bandwidth for the gateway,\nusers can access resources on public networks.\n","type":"number"},"description":{"description":"Specifies gateway description.\n","type":"string"},"enterpriseProjectId":{"description":"Specifies the enterprise project ID to which the dedicated\ninstance belongs. This parameter is required for enterprise users.\n","type":"string"},"ingressBandwidthChargingMode":{"description":"Specifies the ingress bandwidth billing type of the dedicated instance.\nThe valid values are as follows:\n+ **bandwidth**: Billed by bandwidth.\n+ **traffic**: Billed by traffic.\n","type":"string"},"ingressBandwidthSize":{"description":"Specifies public inbound access bandwidth. This parameter is required if public\ninbound access is enabled for the gateway and<span pulumi-lang-nodejs=\" loadbalancerProvider \" pulumi-lang-dotnet=\" LoadbalancerProvider \" pulumi-lang-go=\" loadbalancerProvider \" pulumi-lang-python=\" loadbalancer_provider \" pulumi-lang-yaml=\" loadbalancerProvider \" pulumi-lang-java=\" loadbalancerProvider \"> loadbalancer_provider </span>is set to elb.\nAfter you bind an EIP to the gateway, users can access APIs in the gateway from public networks using the EIP.\n","type":"number"},"loadbalancerProvider":{"description":"Specifies type of the load balancer used by the gateway.\nThis resource provides the following timeouts configuration options:\n","type":"string"},"maintainBegin":{"description":"Specifies start time of the maintenance time window.\nIt must be in the format \"xx:00:00\". The value of xx can be 02, 06, 10, 14, 18, or 22.\n","type":"string"},"name":{"description":"Specifies gateway name.\n","type":"string"},"securityGroupId":{"description":"Specifies ID of the security group to which the gateway belongs.\n","type":"string"},"specId":{"description":"Gateway edition. Options:\nThis resource provides the following timeouts configuration options:\n- `BASIC`\n- `PROFESSIONAL`\n- `ENTERPRISE`\n- `PLATINUM`\n","type":"string"},"subnetId":{"description":"Specifies network ID.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value pairs to associate with the dedicated instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FApigwGatewayV2Timeouts:ApigwGatewayV2Timeouts"},"vpcId":{"description":"Specifies VPC ID.\n","type":"string"}},"properties":{"apigwGatewayV2Id":{"type":"string"},"availabilityZones":{"description":"Specifies gateway description.\n","items":{"type":"string"},"type":"array"},"bandwidthChargingMode":{"description":"Billing type of the public outbound access bandwidth.\nThe valid values are as follows:\n+ **bandwidth**: Billed by bandwidth.\n+ **traffic**: Billed by traffic.\n","type":"string"},"bandwidthSize":{"description":"Specifies outbound access bandwidth. This parameter is required if public outbound\naccess is enabled for the gateway. After you configure the bandwidth for the gateway,\nusers can access resources on public networks.\n","type":"number"},"defaultGroupId":{"description":"The ID of `DEFAULT` group.\n","type":"string"},"description":{"description":"Specifies gateway description.\n","type":"string"},"enterpriseProjectId":{"description":"Specifies the enterprise project ID to which the dedicated\ninstance belongs. This parameter is required for enterprise users.\n","type":"string"},"ingressBandwidthChargingMode":{"description":"Specifies the ingress bandwidth billing type of the dedicated instance.\nThe valid values are as follows:\n+ **bandwidth**: Billed by bandwidth.\n+ **traffic**: Billed by traffic.\n","type":"string"},"ingressBandwidthSize":{"description":"Specifies public inbound access bandwidth. This parameter is required if public\ninbound access is enabled for the gateway and<span pulumi-lang-nodejs=\" loadbalancerProvider \" pulumi-lang-dotnet=\" LoadbalancerProvider \" pulumi-lang-go=\" loadbalancerProvider \" pulumi-lang-python=\" loadbalancer_provider \" pulumi-lang-yaml=\" loadbalancerProvider \" pulumi-lang-java=\" loadbalancerProvider \"> loadbalancer_provider </span>is set to elb.\nAfter you bind an EIP to the gateway, users can access APIs in the gateway from public networks using the EIP.\n","type":"number"},"loadbalancerProvider":{"description":"Specifies type of the load balancer used by the gateway.\nThis resource provides the following timeouts configuration options:\n","type":"string"},"maintainBegin":{"description":"Specifies start time of the maintenance time window.\nIt must be in the format \"xx:00:00\". The value of xx can be 02, 06, 10, 14, 18, or 22.\n","type":"string"},"maintainEnd":{"description":"End time of the maintenance time window. It must be in the format \"xx:00:00\".\nThere is a 4-hour difference between the start time and end time.\n","type":"string"},"name":{"description":"Specifies gateway name.\n","type":"string"},"privateEgressAddresses":{"description":"List of private egress addresses.\n*\n","items":{"type":"string"},"type":"array"},"projectId":{"description":"Instance project id.\n","type":"string"},"publicEgressAddress":{"description":"IP address for public outbound access.\n","type":"string"},"region":{"description":"Instance region.\n","type":"string"},"securityGroupId":{"description":"Specifies ID of the security group to which the gateway belongs.\n","type":"string"},"specId":{"description":"Gateway edition. Options:\nThis resource provides the following timeouts configuration options:\n- `BASIC`\n- `PROFESSIONAL`\n- `ENTERPRISE`\n- `PLATINUM`\n","type":"string"},"status":{"description":"Instance status.\n","type":"string"},"subnetId":{"description":"Specifies network ID.\n","type":"string"},"supportedFeatures":{"description":"Supported features.\n","items":{"type":"string"},"type":"array"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value pairs to associate with the dedicated instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FApigwGatewayV2Timeouts:ApigwGatewayV2Timeouts"},"vpcId":{"description":"Specifies VPC ID.\n","type":"string"},"vpcIngressAddress":{"description":"VPC ingress address.\n","type":"string"},"vpcepServiceName":{"description":"Name of a VPC endpoint service.\n","type":"string"}},"required":["apigwGatewayV2Id","availabilityZones","bandwidthSize","defaultGroupId","enterpriseProjectId","maintainBegin","maintainEnd","name","privateEgressAddresses","projectId","publicEgressAddress","region","securityGroupId","specId","status","subnetId","supportedFeatures","vpcId","vpcIngressAddress","vpcepServiceName"],"requiredInputs":["availabilityZones","securityGroupId","specId","subnetId","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering ApigwGatewayV2 resources.\n","properties":{"apigwGatewayV2Id":{"type":"string"},"availabilityZones":{"description":"Specifies gateway description.\n","items":{"type":"string"},"type":"array"},"bandwidthChargingMode":{"description":"Billing type of the public outbound access bandwidth.\nThe valid values are as follows:\n+ **bandwidth**: Billed by bandwidth.\n+ **traffic**: Billed by traffic.\n","type":"string"},"bandwidthSize":{"description":"Specifies outbound access bandwidth. This parameter is required if public outbound\naccess is enabled for the gateway. After you configure the bandwidth for the gateway,\nusers can access resources on public networks.\n","type":"number"},"defaultGroupId":{"description":"The ID of `DEFAULT` group.\n","type":"string"},"description":{"description":"Specifies gateway description.\n","type":"string"},"enterpriseProjectId":{"description":"Specifies the enterprise project ID to which the dedicated\ninstance belongs. This parameter is required for enterprise users.\n","type":"string"},"ingressBandwidthChargingMode":{"description":"Specifies the ingress bandwidth billing type of the dedicated instance.\nThe valid values are as follows:\n+ **bandwidth**: Billed by bandwidth.\n+ **traffic**: Billed by traffic.\n","type":"string"},"ingressBandwidthSize":{"description":"Specifies public inbound access bandwidth. This parameter is required if public\ninbound access is enabled for the gateway and<span pulumi-lang-nodejs=\" loadbalancerProvider \" pulumi-lang-dotnet=\" LoadbalancerProvider \" pulumi-lang-go=\" loadbalancerProvider \" pulumi-lang-python=\" loadbalancer_provider \" pulumi-lang-yaml=\" loadbalancerProvider \" pulumi-lang-java=\" loadbalancerProvider \"> loadbalancer_provider </span>is set to elb.\nAfter you bind an EIP to the gateway, users can access APIs in the gateway from public networks using the EIP.\n","type":"number"},"loadbalancerProvider":{"description":"Specifies type of the load balancer used by the gateway.\nThis resource provides the following timeouts configuration options:\n","type":"string"},"maintainBegin":{"description":"Specifies start time of the maintenance time window.\nIt must be in the format \"xx:00:00\". The value of xx can be 02, 06, 10, 14, 18, or 22.\n","type":"string"},"maintainEnd":{"description":"End time of the maintenance time window. It must be in the format \"xx:00:00\".\nThere is a 4-hour difference between the start time and end time.\n","type":"string"},"name":{"description":"Specifies gateway name.\n","type":"string"},"privateEgressAddresses":{"description":"List of private egress addresses.\n*\n","items":{"type":"string"},"type":"array"},"projectId":{"description":"Instance project id.\n","type":"string"},"publicEgressAddress":{"description":"IP address for public outbound access.\n","type":"string"},"region":{"description":"Instance region.\n","type":"string"},"securityGroupId":{"description":"Specifies ID of the security group to which the gateway belongs.\n","type":"string"},"specId":{"description":"Gateway edition. Options:\nThis resource provides the following timeouts configuration options:\n- `BASIC`\n- `PROFESSIONAL`\n- `ENTERPRISE`\n- `PLATINUM`\n","type":"string"},"status":{"description":"Instance status.\n","type":"string"},"subnetId":{"description":"Specifies network ID.\n","type":"string"},"supportedFeatures":{"description":"Supported features.\n","items":{"type":"string"},"type":"array"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value pairs to associate with the dedicated instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FApigwGatewayV2Timeouts:ApigwGatewayV2Timeouts"},"vpcId":{"description":"Specifies VPC ID.\n","type":"string"},"vpcIngressAddress":{"description":"VPC ingress address.\n","type":"string"},"vpcepServiceName":{"description":"Name of a VPC endpoint service.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/apigwGroupV2:ApigwGroupV2":{"description":"Up-to-date reference of API arguments for API Gateway group service you can get at\n[documentation portal](https://docs.otc.t-systems.com/api-gateway/api-ref/dedicated_gateway_apis_v2/index.html)\n\nAPI Gateway (APIG) is a high-performance, high-availability, and high-security API hosting service that helps you build,\nmanage, and deploy APIs at any scale.\nWith just a few clicks, you can integrate internal systems, and selectively expose capabilities with minimal costs and risks.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst group = new opentelekomcloud.ApigwGroupV2(\"group\", {\n    instanceId: gatewayId,\n    name: \"group-name\",\n    description: \"test description\",\n    environments: [{\n        variables: [{\n            name: \"test-name\",\n            value: \"test-value\",\n        }],\n        environmentId: envId,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ngroup = opentelekomcloud.ApigwGroupV2(\"group\",\n    instance_id=gateway_id,\n    name=\"group-name\",\n    description=\"test description\",\n    environments=[{\n        \"variables\": [{\n            \"name\": \"test-name\",\n            \"value\": \"test-value\",\n        }],\n        \"environment_id\": env_id,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var @group = new Opentelekomcloud.ApigwGroupV2(\"group\", new()\n    {\n        InstanceId = gatewayId,\n        Name = \"group-name\",\n        Description = \"test description\",\n        Environments = new[]\n        {\n            new Opentelekomcloud.Inputs.ApigwGroupV2EnvironmentArgs\n            {\n                Variables = new[]\n                {\n                    new Opentelekomcloud.Inputs.ApigwGroupV2EnvironmentVariableArgs\n                    {\n                        Name = \"test-name\",\n                        Value = \"test-value\",\n                    },\n                },\n                EnvironmentId = envId,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewApigwGroupV2(ctx, \"group\", &opentelekomcloud.ApigwGroupV2Args{\n\t\t\tInstanceId:  pulumi.Any(gatewayId),\n\t\t\tName:        pulumi.String(\"group-name\"),\n\t\t\tDescription: pulumi.String(\"test description\"),\n\t\t\tEnvironments: opentelekomcloud.ApigwGroupV2EnvironmentArray{\n\t\t\t\t&opentelekomcloud.ApigwGroupV2EnvironmentArgs{\n\t\t\t\t\tVariables: opentelekomcloud.ApigwGroupV2EnvironmentVariableArray{\n\t\t\t\t\t\t&opentelekomcloud.ApigwGroupV2EnvironmentVariableArgs{\n\t\t\t\t\t\t\tName:  pulumi.String(\"test-name\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"test-value\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tEnvironmentId: pulumi.Any(envId),\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.opentelekomcloud.ApigwGroupV2;\nimport com.pulumi.opentelekomcloud.ApigwGroupV2Args;\nimport com.pulumi.opentelekomcloud.inputs.ApigwGroupV2EnvironmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var group = new ApigwGroupV2(\"group\", ApigwGroupV2Args.builder()\n            .instanceId(gatewayId)\n            .name(\"group-name\")\n            .description(\"test description\")\n            .environments(ApigwGroupV2EnvironmentArgs.builder()\n                .variables(ApigwGroupV2EnvironmentVariableArgs.builder()\n                    .name(\"test-name\")\n                    .value(\"test-value\")\n                    .build())\n                .environmentId(envId)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  group:\n    type: opentelekomcloud:ApigwGroupV2\n    properties:\n      instanceId: ${gatewayId}\n      name: group-name\n      description: test description\n      environments:\n        - variables:\n            - name: test-name\n              value: test-value\n          environmentId: ${envId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAPI groups can be imported using their `id` and the ID of the related dedicated instance, separated by a slash, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/apigwGroupV2:ApigwGroupV2 test <instance_id>/<id>\n```\n\n","inputProperties":{"apigwGroupV2Id":{"description":"The variable ID.\n","type":"string"},"description":{"description":"Specifies the group description.\n","type":"string"},"environments":{"description":"Specifies an array of one or more environments of the associated group.\nThe <span pulumi-lang-nodejs=\"`environment`\" pulumi-lang-dotnet=\"`Environment`\" pulumi-lang-go=\"`environment`\" pulumi-lang-python=\"`environment`\" pulumi-lang-yaml=\"`environment`\" pulumi-lang-java=\"`environment`\">`environment`</span> structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwGroupV2Environment:ApigwGroupV2Environment"},"type":"array"},"instanceId":{"description":"Specifies the ID of the dedicated instance to which the group belongs.\nChanging this will create a new resource.\n","type":"string"},"name":{"description":"Specifies the group name.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, only letters, digits and hyphens (-) are\nallowed.\n","type":"string"},"region":{"description":"Specifies the region where the APIGW group is located.\nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n","type":"string"}},"properties":{"apigwGroupV2Id":{"description":"The variable ID.\n","type":"string"},"description":{"description":"Specifies the group description.\n","type":"string"},"environments":{"description":"Specifies an array of one or more environments of the associated group.\nThe <span pulumi-lang-nodejs=\"`environment`\" pulumi-lang-dotnet=\"`Environment`\" pulumi-lang-go=\"`environment`\" pulumi-lang-python=\"`environment`\" pulumi-lang-yaml=\"`environment`\" pulumi-lang-java=\"`environment`\">`environment`</span> structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwGroupV2Environment:ApigwGroupV2Environment"},"type":"array"},"instanceId":{"description":"Specifies the ID of the dedicated instance to which the group belongs.\nChanging this will create a new resource.\n","type":"string"},"name":{"description":"Specifies the group name.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, only letters, digits and hyphens (-) are\nallowed.\n","type":"string"},"region":{"description":"Specifies the region where the APIGW group is located.\nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n","type":"string"},"registrationTime":{"description":"The registration time, in RFC-3339 format.\n","type":"string"},"updatedAt":{"description":"The time when the API group was last modified, in RFC-3339 format.\n","type":"string"}},"required":["apigwGroupV2Id","instanceId","name","region","registrationTime","updatedAt"],"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering ApigwGroupV2 resources.\n","properties":{"apigwGroupV2Id":{"description":"The variable ID.\n","type":"string"},"description":{"description":"Specifies the group description.\n","type":"string"},"environments":{"description":"Specifies an array of one or more environments of the associated group.\nThe <span pulumi-lang-nodejs=\"`environment`\" pulumi-lang-dotnet=\"`Environment`\" pulumi-lang-go=\"`environment`\" pulumi-lang-python=\"`environment`\" pulumi-lang-yaml=\"`environment`\" pulumi-lang-java=\"`environment`\">`environment`</span> structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwGroupV2Environment:ApigwGroupV2Environment"},"type":"array"},"instanceId":{"description":"Specifies the ID of the dedicated instance to which the group belongs.\nChanging this will create a new resource.\n","type":"string"},"name":{"description":"Specifies the group name.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, only letters, digits and hyphens (-) are\nallowed.\n","type":"string"},"region":{"description":"Specifies the region where the APIGW group is located.\nIf omitted, the provider-level region will be used. Changing this will create a new resource.\n","type":"string"},"registrationTime":{"description":"The registration time, in RFC-3339 format.\n","type":"string"},"updatedAt":{"description":"The time when the API group was last modified, in RFC-3339 format.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/apigwResponseV2:ApigwResponseV2":{"description":"Up-to-date reference of API arguments for API Gateway group service you can get at\n[documentation portal](https://docs.otc.t-systems.com/api-gateway/api-ref/dedicated_gateway_apis_v2/group_response_management/index.html)\n\nManages an APIGW (API) custom response resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst gatewayId = config.requireObject<any>(\"gatewayId\");\nconst groupId = config.requireObject<any>(\"groupId\");\nconst responseName = config.requireObject<any>(\"responseName\");\nconst test = new opentelekomcloud.ApigwResponseV2(\"test\", {\n    gatewayId: gatewayId,\n    groupId: groupId,\n    name: responseName,\n    rules: [{\n        errorType: \"AUTHORIZER_FAILURE\",\n        body: \"{\\\"code\\\":\\\"$context.authorizer.frontend.code\\\",\\\"message\\\":\\\"$context.authorizer.frontend.message\\\"}\",\n        statusCode: 401,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ngateway_id = config.require_object(\"gatewayId\")\ngroup_id = config.require_object(\"groupId\")\nresponse_name = config.require_object(\"responseName\")\ntest = opentelekomcloud.ApigwResponseV2(\"test\",\n    gateway_id=gateway_id,\n    group_id=group_id,\n    name=response_name,\n    rules=[{\n        \"error_type\": \"AUTHORIZER_FAILURE\",\n        \"body\": \"{\\\"code\\\":\\\"$context.authorizer.frontend.code\\\",\\\"message\\\":\\\"$context.authorizer.frontend.message\\\"}\",\n        \"status_code\": 401,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var gatewayId = config.RequireObject<dynamic>(\"gatewayId\");\n    var groupId = config.RequireObject<dynamic>(\"groupId\");\n    var responseName = config.RequireObject<dynamic>(\"responseName\");\n    var test = new Opentelekomcloud.ApigwResponseV2(\"test\", new()\n    {\n        GatewayId = gatewayId,\n        GroupId = groupId,\n        Name = responseName,\n        Rules = new[]\n        {\n            new Opentelekomcloud.Inputs.ApigwResponseV2RuleArgs\n            {\n                ErrorType = \"AUTHORIZER_FAILURE\",\n                Body = \"{\\\"code\\\":\\\"$context.authorizer.frontend.code\\\",\\\"message\\\":\\\"$context.authorizer.frontend.message\\\"}\",\n                StatusCode = 401,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tgatewayId := cfg.RequireObject(\"gatewayId\")\n\t\tgroupId := cfg.RequireObject(\"groupId\")\n\t\tresponseName := cfg.RequireObject(\"responseName\")\n\t\t_, err := opentelekomcloud.NewApigwResponseV2(ctx, \"test\", &opentelekomcloud.ApigwResponseV2Args{\n\t\t\tGatewayId: pulumi.Any(gatewayId),\n\t\t\tGroupId:   pulumi.Any(groupId),\n\t\t\tName:      pulumi.Any(responseName),\n\t\t\tRules: opentelekomcloud.ApigwResponseV2RuleArray{\n\t\t\t\t&opentelekomcloud.ApigwResponseV2RuleArgs{\n\t\t\t\t\tErrorType:  pulumi.String(\"AUTHORIZER_FAILURE\"),\n\t\t\t\t\tBody:       pulumi.String(\"{\\\"code\\\":\\\"$context.authorizer.frontend.code\\\",\\\"message\\\":\\\"$context.authorizer.frontend.message\\\"}\"),\n\t\t\t\t\tStatusCode: pulumi.Float64(401),\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.opentelekomcloud.ApigwResponseV2;\nimport com.pulumi.opentelekomcloud.ApigwResponseV2Args;\nimport com.pulumi.opentelekomcloud.inputs.ApigwResponseV2RuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var gatewayId = config.get(\"gatewayId\");\n        final var groupId = config.get(\"groupId\");\n        final var responseName = config.get(\"responseName\");\n        var test = new ApigwResponseV2(\"test\", ApigwResponseV2Args.builder()\n            .gatewayId(gatewayId)\n            .groupId(groupId)\n            .name(responseName)\n            .rules(ApigwResponseV2RuleArgs.builder()\n                .errorType(\"AUTHORIZER_FAILURE\")\n                .body(\"{\\\"code\\\":\\\"$context.authorizer.frontend.code\\\",\\\"message\\\":\\\"$context.authorizer.frontend.message\\\"}\")\n                .statusCode(401.0)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  gatewayId:\n    type: dynamic\n  groupId:\n    type: dynamic\n  responseName:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:ApigwResponseV2\n    properties:\n      gatewayId: ${gatewayId}\n      groupId: ${groupId}\n      name: ${responseName}\n      rules:\n        - errorType: AUTHORIZER_FAILURE\n          body: '{\"code\":\"$context.authorizer.frontend.code\",\"message\":\"$context.authorizer.frontend.message\"}'\n          statusCode: 401\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAPI Responses can be imported using their `name` and IDs of the APIGW dedicated instances and API groups to which the API\n\nresponse belongs, separated by slashes, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/apigwResponseV2:ApigwResponseV2 test <gateway_id>/<group_id>/<name>\n```\n\n","inputProperties":{"apigwResponseV2Id":{"description":"ID of the API custom response.\n","type":"string"},"gatewayId":{"description":"Specifies the ID of the dedicated instance to which the API group and the\nAPI custom response belong.\nChanging this will create a new resource.\n","type":"string"},"groupId":{"description":"Specifies the ID of the API group to which the API custom response\nbelongs.\nChanging this will create a new resource.\n","type":"string"},"name":{"description":"Specifies the name of the API custom response.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, letters, digits, hyphens (-) and underscores (_) are allowed.\n","type":"string"},"rules":{"description":"Specifies the API custom response rules definition.\nThe object structure is documented below.\n\n<a name=<span pulumi-lang-nodejs=\"\"customResponseRule\"\" pulumi-lang-dotnet=\"\"CustomResponseRule\"\" pulumi-lang-go=\"\"customResponseRule\"\" pulumi-lang-python=\"\"custom_response_rule\"\" pulumi-lang-yaml=\"\"customResponseRule\"\" pulumi-lang-java=\"\"customResponseRule\"\">\"custom_response_rule\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`rule`\" pulumi-lang-dotnet=\"`Rule`\" pulumi-lang-go=\"`rule`\" pulumi-lang-python=\"`rule`\" pulumi-lang-yaml=\"`rule`\" pulumi-lang-java=\"`rule`\">`rule`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwResponseV2Rule:ApigwResponseV2Rule"},"type":"array"}},"properties":{"apigwResponseV2Id":{"description":"ID of the API custom response.\n","type":"string"},"createdAt":{"description":"The creation time of the API custom response.\n","type":"string"},"gatewayId":{"description":"Specifies the ID of the dedicated instance to which the API group and the\nAPI custom response belong.\nChanging this will create a new resource.\n","type":"string"},"groupId":{"description":"Specifies the ID of the API group to which the API custom response\nbelongs.\nChanging this will create a new resource.\n","type":"string"},"name":{"description":"Specifies the name of the API custom response.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, letters, digits, hyphens (-) and underscores (_) are allowed.\n","type":"string"},"region":{"description":"The region where the API custom response is located.\n","type":"string"},"rules":{"description":"Specifies the API custom response rules definition.\nThe object structure is documented below.\n\n<a name=<span pulumi-lang-nodejs=\"\"customResponseRule\"\" pulumi-lang-dotnet=\"\"CustomResponseRule\"\" pulumi-lang-go=\"\"customResponseRule\"\" pulumi-lang-python=\"\"custom_response_rule\"\" pulumi-lang-yaml=\"\"customResponseRule\"\" pulumi-lang-java=\"\"customResponseRule\"\">\"custom_response_rule\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`rule`\" pulumi-lang-dotnet=\"`Rule`\" pulumi-lang-go=\"`rule`\" pulumi-lang-python=\"`rule`\" pulumi-lang-yaml=\"`rule`\" pulumi-lang-java=\"`rule`\">`rule`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwResponseV2Rule:ApigwResponseV2Rule"},"type":"array"},"updatedAt":{"description":"The latest update time of the API custom response.\n","type":"string"}},"required":["apigwResponseV2Id","createdAt","gatewayId","groupId","name","region","updatedAt"],"requiredInputs":["gatewayId","groupId"],"stateInputs":{"description":"Input properties used for looking up and filtering ApigwResponseV2 resources.\n","properties":{"apigwResponseV2Id":{"description":"ID of the API custom response.\n","type":"string"},"createdAt":{"description":"The creation time of the API custom response.\n","type":"string"},"gatewayId":{"description":"Specifies the ID of the dedicated instance to which the API group and the\nAPI custom response belong.\nChanging this will create a new resource.\n","type":"string"},"groupId":{"description":"Specifies the ID of the API group to which the API custom response\nbelongs.\nChanging this will create a new resource.\n","type":"string"},"name":{"description":"Specifies the name of the API custom response.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, letters, digits, hyphens (-) and underscores (_) are allowed.\n","type":"string"},"region":{"description":"The region where the API custom response is located.\n","type":"string"},"rules":{"description":"Specifies the API custom response rules definition.\nThe object structure is documented below.\n\n<a name=<span pulumi-lang-nodejs=\"\"customResponseRule\"\" pulumi-lang-dotnet=\"\"CustomResponseRule\"\" pulumi-lang-go=\"\"customResponseRule\"\" pulumi-lang-python=\"\"custom_response_rule\"\" pulumi-lang-yaml=\"\"customResponseRule\"\" pulumi-lang-java=\"\"customResponseRule\"\">\"custom_response_rule\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`rule`\" pulumi-lang-dotnet=\"`Rule`\" pulumi-lang-go=\"`rule`\" pulumi-lang-python=\"`rule`\" pulumi-lang-yaml=\"`rule`\" pulumi-lang-java=\"`rule`\">`rule`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwResponseV2Rule:ApigwResponseV2Rule"},"type":"array"},"updatedAt":{"description":"The latest update time of the API custom response.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/apigwSignatureAssociateV2:ApigwSignatureAssociateV2":{"description":"Up-to-date reference of API arguments for API Gateway signature associate service you can get at\n[documentation portal](https://docs.otc.t-systems.com/api-gateway/api-ref/dedicated_gateway_apis_v2/binding_unbinding_signature_keys/index.html)\n\nUse this resource to bind the APIs to the signature within OpenTelekomCloud.\n\n> A signature can only create one <span pulumi-lang-nodejs=\"`opentelekomcloud.ApigwSignatureAssociateV2`\" pulumi-lang-dotnet=\"`opentelekomcloud.ApigwSignatureAssociateV2`\" pulumi-lang-go=\"`ApigwSignatureAssociateV2`\" pulumi-lang-python=\"`ApigwSignatureAssociateV2`\" pulumi-lang-yaml=\"`opentelekomcloud.ApigwSignatureAssociateV2`\" pulumi-lang-java=\"`opentelekomcloud.ApigwSignatureAssociateV2`\">`opentelekomcloud.ApigwSignatureAssociateV2`</span> resource.\n   And a published ID for API can only bind a signature.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```yaml\nconfiguration:\n  gatewayId:\n    type: dynamic\n  signatureId:\n    type: dynamic\n  apiPublishIds:\n    type: list(string)\nresources:\n  test:\n    type: opentelekomcloud:ApigwSignatureAssociateV2\n    properties:\n      instanceId: ${gatewayId}\n      signatureId: ${signatureId}\n      publishIds: ${apiPublishIds}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAssociate resources can be imported using their `signature_id` and the APIGW dedicated gateway ID to which the signature\n\nbelongs, separated by a slash, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/apigwSignatureAssociateV2:ApigwSignatureAssociateV2 test <gateway_id>/<signature_id>\n```\n\n","inputProperties":{"apigwSignatureAssociateV2Id":{"description":"Resource ID. The format is `<gateway_id>/<signature_id>`.\n","type":"string"},"gatewayId":{"description":"Specifies the ID of the dedicated instance to which the APIs and the\nsignature belong.\nChanging this will create a new resource.\n","type":"string"},"publishIds":{"description":"Specifies the publish IDs corresponding to the APIs bound by the signature.\n","items":{"type":"string"},"type":"array"},"signatureId":{"description":"Specifies the signature ID for APIs binding.\nChanging this will create a new resource.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FApigwSignatureAssociateV2Timeouts:ApigwSignatureAssociateV2Timeouts"}},"properties":{"apigwSignatureAssociateV2Id":{"description":"Resource ID. The format is `<gateway_id>/<signature_id>`.\n","type":"string"},"gatewayId":{"description":"Specifies the ID of the dedicated instance to which the APIs and the\nsignature belong.\nChanging this will create a new resource.\n","type":"string"},"publishIds":{"description":"Specifies the publish IDs corresponding to the APIs bound by the signature.\n","items":{"type":"string"},"type":"array"},"region":{"description":"Region where the signature and the APIs are located.\n","type":"string"},"signatureId":{"description":"Specifies the signature ID for APIs binding.\nChanging this will create a new resource.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FApigwSignatureAssociateV2Timeouts:ApigwSignatureAssociateV2Timeouts"}},"required":["apigwSignatureAssociateV2Id","gatewayId","publishIds","region","signatureId"],"requiredInputs":["gatewayId","publishIds","signatureId"],"stateInputs":{"description":"Input properties used for looking up and filtering ApigwSignatureAssociateV2 resources.\n","properties":{"apigwSignatureAssociateV2Id":{"description":"Resource ID. The format is `<gateway_id>/<signature_id>`.\n","type":"string"},"gatewayId":{"description":"Specifies the ID of the dedicated instance to which the APIs and the\nsignature belong.\nChanging this will create a new resource.\n","type":"string"},"publishIds":{"description":"Specifies the publish IDs corresponding to the APIs bound by the signature.\n","items":{"type":"string"},"type":"array"},"region":{"description":"Region where the signature and the APIs are located.\n","type":"string"},"signatureId":{"description":"Specifies the signature ID for APIs binding.\nChanging this will create a new resource.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FApigwSignatureAssociateV2Timeouts:ApigwSignatureAssociateV2Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/apigwSignatureV2:ApigwSignatureV2":{"description":"Up-to-date reference of API arguments for API Gateway signature service you can get at\n[documentation portal](https://docs.otc.t-systems.com/api-gateway/api-ref/dedicated_gateway_apis_v2/signature_key_management/index.html)\n\nManages a signature resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Create a signature of the HMAC type\n\n<!--Start PulumiCodeChooser -->\n```yaml\nconfiguration:\n  gatewayId:\n    type: dynamic\n  signatureName:\n    type: dynamic\n  signatureKey:\n    type: dynamic\n  signatureSecret:\n    type: dynamic\nresources:\n  hmac:\n    type: opentelekomcloud:ApigwSignatureV2\n    properties:\n      instanceId: ${gatewayId}\n      name: ${signatureName}\n      type: hmac\n      key: ${signatureKey}\n      secret: ${signatureSecret}\n```\n<!--End PulumiCodeChooser -->\n\n### Create a signature and automatically generate key and secret\n\n<!--Start PulumiCodeChooser -->\n```yaml\nconfiguration:\n  gatewayId:\n    type: dynamic\n  signatureName:\n    type: dynamic\nresources:\n  hmac:\n    type: opentelekomcloud:ApigwSignatureV2\n    properties:\n      instanceId: ${gatewayId}\n      name: ${signatureName}\n      type: hmac\n```\n<!--End PulumiCodeChooser -->\n\n### Create a signature of the AES type\n\n<!--Start PulumiCodeChooser -->\n```yaml\nconfiguration:\n  gatewayId:\n    type: dynamic\n  signatureName:\n    type: dynamic\n  signatureKey:\n    type: dynamic\n  signatureSecret:\n    type: dynamic\nresources:\n  aes:\n    type: opentelekomcloud:ApigwSignatureV2\n    properties:\n      instanceId: ${gatewayId}\n      name: ${signatureName}\n      type: aes\n      algorithm: aes-128-cfb\n      key: ${signatureKey}\n      secret: ${signatureSecret}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nSignatures can be imported using their `id` and related dedicated gateway ID, separated by a slash, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/apigwSignatureV2:ApigwSignatureV2 sig <gateway_id>/<id>\n```\n\n","inputProperties":{"algorithm":{"description":"Specifies the signature algorithm.\nThis parameter is required and only available when signature <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is <span pulumi-lang-nodejs=\"`aes`\" pulumi-lang-dotnet=\"`Aes`\" pulumi-lang-go=\"`aes`\" pulumi-lang-python=\"`aes`\" pulumi-lang-yaml=\"`aes`\" pulumi-lang-java=\"`aes`\">`aes`</span>.\nThe valid values are as follows:\n+ `aes-128-cfb`\n+ `aes-256-cfb`\nChanging this will create a new resource.\n","type":"string"},"apigwSignatureV2Id":{"description":"The ID of the signature.\n","type":"string"},"gatewayId":{"description":"Specifies the ID of the dedicated gateway to which the signature\nbelongs. Changing this will create a new resource.\n","type":"string"},"key":{"description":"Specifies the signature key.\n+ For <span pulumi-lang-nodejs=\"`basic`\" pulumi-lang-dotnet=\"`Basic`\" pulumi-lang-go=\"`basic`\" pulumi-lang-python=\"`basic`\" pulumi-lang-yaml=\"`basic`\" pulumi-lang-java=\"`basic`\">`basic`</span> type: The value contains <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> characters, including letters, digits, underscores `_` and\nhyphens `-`. It must start with a letter.\n+ For <span pulumi-lang-nodejs=\"`hmac`\" pulumi-lang-dotnet=\"`Hmac`\" pulumi-lang-go=\"`hmac`\" pulumi-lang-python=\"`hmac`\" pulumi-lang-yaml=\"`hmac`\" pulumi-lang-java=\"`hmac`\">`hmac`</span> type: The value contains <span pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\">`8`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> characters, including letters, digits, underscores `_` and\nhyphens `-`. It must start with a letter or digit.\n+ For <span pulumi-lang-nodejs=\"`aes`\" pulumi-lang-dotnet=\"`Aes`\" pulumi-lang-go=\"`aes`\" pulumi-lang-python=\"`aes`\" pulumi-lang-yaml=\"`aes`\" pulumi-lang-java=\"`aes`\">`aes`</span> type: The value contains <span pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\">`16`</span> characters if the `aes-128-cfb` algorithm is used, or <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> characters if the\n`aes-256-cfb` algorithm is used. Only letters, digits, and special characters `_-!@#$%+/=` are allowed.\nIt must start with a letter, digit, plus sign `+`, or slash `/`.\nIf not specified, the key will automatically generated. The auto-generation is only supported on first creation.\nChanging this will create a new resource.\n","type":"string"},"name":{"description":"Specifies the signature name.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, only English letters, Chinese characters, digits and underscores `_` are\nallowed. The name must start with an English letter or Chinese character.\n","type":"string"},"secret":{"description":"Specifies the signature secret.\nIf not specified, the secret will automatically generated. The auto-generation is only supported on first creation.\nChanging this will create a new resource.\n+ For <span pulumi-lang-nodejs=\"`basic`\" pulumi-lang-dotnet=\"`Basic`\" pulumi-lang-go=\"`basic`\" pulumi-lang-python=\"`basic`\" pulumi-lang-yaml=\"`basic`\" pulumi-lang-java=\"`basic`\">`basic`</span> type: The value contains <span pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\">`8`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span> characters. Letters, digits, and special characters `_-!@#$%` are\nallowed. It must start with a letter or digit. If not specified, a value is automatically generated.\n+ For <span pulumi-lang-nodejs=\"`hmac`\" pulumi-lang-dotnet=\"`Hmac`\" pulumi-lang-go=\"`hmac`\" pulumi-lang-python=\"`hmac`\" pulumi-lang-yaml=\"`hmac`\" pulumi-lang-java=\"`hmac`\">`hmac`</span> type: The value contains <span pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\">`16`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span> characters. Letters, digits, and special characters `_-!@#$%` are\nallowed. It must start with a letter or digit. If not specified, a value is automatically generated.\n+ For <span pulumi-lang-nodejs=\"`aes`\" pulumi-lang-dotnet=\"`Aes`\" pulumi-lang-go=\"`aes`\" pulumi-lang-python=\"`aes`\" pulumi-lang-yaml=\"`aes`\" pulumi-lang-java=\"`aes`\">`aes`</span> type: The value contains <span pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\">`16`</span> characters, including letters, digits, and special\ncharacters `_-!@#$%+/=`. It must start with a letter, digit, plus sign `+`, or slash `/`. If not specified, a\nvalue is automatically generated.\n","secret":true,"type":"string"},"type":{"description":"Specifies the type of signature.\nThe valid values are as follows:\n","type":"string"}},"properties":{"algorithm":{"description":"Specifies the signature algorithm.\nThis parameter is required and only available when signature <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is <span pulumi-lang-nodejs=\"`aes`\" pulumi-lang-dotnet=\"`Aes`\" pulumi-lang-go=\"`aes`\" pulumi-lang-python=\"`aes`\" pulumi-lang-yaml=\"`aes`\" pulumi-lang-java=\"`aes`\">`aes`</span>.\nThe valid values are as follows:\n+ `aes-128-cfb`\n+ `aes-256-cfb`\nChanging this will create a new resource.\n","type":"string"},"apigwSignatureV2Id":{"description":"The ID of the signature.\n","type":"string"},"createdAt":{"description":"The creation time of the signature.\n","type":"string"},"gatewayId":{"description":"Specifies the ID of the dedicated gateway to which the signature\nbelongs. Changing this will create a new resource.\n","type":"string"},"key":{"description":"Specifies the signature key.\n+ For <span pulumi-lang-nodejs=\"`basic`\" pulumi-lang-dotnet=\"`Basic`\" pulumi-lang-go=\"`basic`\" pulumi-lang-python=\"`basic`\" pulumi-lang-yaml=\"`basic`\" pulumi-lang-java=\"`basic`\">`basic`</span> type: The value contains <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> characters, including letters, digits, underscores `_` and\nhyphens `-`. It must start with a letter.\n+ For <span pulumi-lang-nodejs=\"`hmac`\" pulumi-lang-dotnet=\"`Hmac`\" pulumi-lang-go=\"`hmac`\" pulumi-lang-python=\"`hmac`\" pulumi-lang-yaml=\"`hmac`\" pulumi-lang-java=\"`hmac`\">`hmac`</span> type: The value contains <span pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\">`8`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> characters, including letters, digits, underscores `_` and\nhyphens `-`. It must start with a letter or digit.\n+ For <span pulumi-lang-nodejs=\"`aes`\" pulumi-lang-dotnet=\"`Aes`\" pulumi-lang-go=\"`aes`\" pulumi-lang-python=\"`aes`\" pulumi-lang-yaml=\"`aes`\" pulumi-lang-java=\"`aes`\">`aes`</span> type: The value contains <span pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\">`16`</span> characters if the `aes-128-cfb` algorithm is used, or <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> characters if the\n`aes-256-cfb` algorithm is used. Only letters, digits, and special characters `_-!@#$%+/=` are allowed.\nIt must start with a letter, digit, plus sign `+`, or slash `/`.\nIf not specified, the key will automatically generated. The auto-generation is only supported on first creation.\nChanging this will create a new resource.\n","type":"string"},"name":{"description":"Specifies the signature name.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, only English letters, Chinese characters, digits and underscores `_` are\nallowed. The name must start with an English letter or Chinese character.\n","type":"string"},"region":{"description":"Region where the signature is located.\n","type":"string"},"secret":{"description":"Specifies the signature secret.\nIf not specified, the secret will automatically generated. The auto-generation is only supported on first creation.\nChanging this will create a new resource.\n+ For <span pulumi-lang-nodejs=\"`basic`\" pulumi-lang-dotnet=\"`Basic`\" pulumi-lang-go=\"`basic`\" pulumi-lang-python=\"`basic`\" pulumi-lang-yaml=\"`basic`\" pulumi-lang-java=\"`basic`\">`basic`</span> type: The value contains <span pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\">`8`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span> characters. Letters, digits, and special characters `_-!@#$%` are\nallowed. It must start with a letter or digit. If not specified, a value is automatically generated.\n+ For <span pulumi-lang-nodejs=\"`hmac`\" pulumi-lang-dotnet=\"`Hmac`\" pulumi-lang-go=\"`hmac`\" pulumi-lang-python=\"`hmac`\" pulumi-lang-yaml=\"`hmac`\" pulumi-lang-java=\"`hmac`\">`hmac`</span> type: The value contains <span pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\">`16`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span> characters. Letters, digits, and special characters `_-!@#$%` are\nallowed. It must start with a letter or digit. If not specified, a value is automatically generated.\n+ For <span pulumi-lang-nodejs=\"`aes`\" pulumi-lang-dotnet=\"`Aes`\" pulumi-lang-go=\"`aes`\" pulumi-lang-python=\"`aes`\" pulumi-lang-yaml=\"`aes`\" pulumi-lang-java=\"`aes`\">`aes`</span> type: The value contains <span pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\">`16`</span> characters, including letters, digits, and special\ncharacters `_-!@#$%+/=`. It must start with a letter, digit, plus sign `+`, or slash `/`. If not specified, a\nvalue is automatically generated.\n","secret":true,"type":"string"},"type":{"description":"Specifies the type of signature.\nThe valid values are as follows:\n","type":"string"},"updatedAt":{"description":"The latest update time of the signature.\n","type":"string"}},"required":["algorithm","apigwSignatureV2Id","createdAt","gatewayId","key","name","region","secret","type","updatedAt"],"requiredInputs":["gatewayId","type"],"stateInputs":{"description":"Input properties used for looking up and filtering ApigwSignatureV2 resources.\n","properties":{"algorithm":{"description":"Specifies the signature algorithm.\nThis parameter is required and only available when signature <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is <span pulumi-lang-nodejs=\"`aes`\" pulumi-lang-dotnet=\"`Aes`\" pulumi-lang-go=\"`aes`\" pulumi-lang-python=\"`aes`\" pulumi-lang-yaml=\"`aes`\" pulumi-lang-java=\"`aes`\">`aes`</span>.\nThe valid values are as follows:\n+ `aes-128-cfb`\n+ `aes-256-cfb`\nChanging this will create a new resource.\n","type":"string"},"apigwSignatureV2Id":{"description":"The ID of the signature.\n","type":"string"},"createdAt":{"description":"The creation time of the signature.\n","type":"string"},"gatewayId":{"description":"Specifies the ID of the dedicated gateway to which the signature\nbelongs. Changing this will create a new resource.\n","type":"string"},"key":{"description":"Specifies the signature key.\n+ For <span pulumi-lang-nodejs=\"`basic`\" pulumi-lang-dotnet=\"`Basic`\" pulumi-lang-go=\"`basic`\" pulumi-lang-python=\"`basic`\" pulumi-lang-yaml=\"`basic`\" pulumi-lang-java=\"`basic`\">`basic`</span> type: The value contains <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> characters, including letters, digits, underscores `_` and\nhyphens `-`. It must start with a letter.\n+ For <span pulumi-lang-nodejs=\"`hmac`\" pulumi-lang-dotnet=\"`Hmac`\" pulumi-lang-go=\"`hmac`\" pulumi-lang-python=\"`hmac`\" pulumi-lang-yaml=\"`hmac`\" pulumi-lang-java=\"`hmac`\">`hmac`</span> type: The value contains <span pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\">`8`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> characters, including letters, digits, underscores `_` and\nhyphens `-`. It must start with a letter or digit.\n+ For <span pulumi-lang-nodejs=\"`aes`\" pulumi-lang-dotnet=\"`Aes`\" pulumi-lang-go=\"`aes`\" pulumi-lang-python=\"`aes`\" pulumi-lang-yaml=\"`aes`\" pulumi-lang-java=\"`aes`\">`aes`</span> type: The value contains <span pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\">`16`</span> characters if the `aes-128-cfb` algorithm is used, or <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> characters if the\n`aes-256-cfb` algorithm is used. Only letters, digits, and special characters `_-!@#$%+/=` are allowed.\nIt must start with a letter, digit, plus sign `+`, or slash `/`.\nIf not specified, the key will automatically generated. The auto-generation is only supported on first creation.\nChanging this will create a new resource.\n","type":"string"},"name":{"description":"Specifies the signature name.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, only English letters, Chinese characters, digits and underscores `_` are\nallowed. The name must start with an English letter or Chinese character.\n","type":"string"},"region":{"description":"Region where the signature is located.\n","type":"string"},"secret":{"description":"Specifies the signature secret.\nIf not specified, the secret will automatically generated. The auto-generation is only supported on first creation.\nChanging this will create a new resource.\n+ For <span pulumi-lang-nodejs=\"`basic`\" pulumi-lang-dotnet=\"`Basic`\" pulumi-lang-go=\"`basic`\" pulumi-lang-python=\"`basic`\" pulumi-lang-yaml=\"`basic`\" pulumi-lang-java=\"`basic`\">`basic`</span> type: The value contains <span pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\">`8`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span> characters. Letters, digits, and special characters `_-!@#$%` are\nallowed. It must start with a letter or digit. If not specified, a value is automatically generated.\n+ For <span pulumi-lang-nodejs=\"`hmac`\" pulumi-lang-dotnet=\"`Hmac`\" pulumi-lang-go=\"`hmac`\" pulumi-lang-python=\"`hmac`\" pulumi-lang-yaml=\"`hmac`\" pulumi-lang-java=\"`hmac`\">`hmac`</span> type: The value contains <span pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\">`16`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span> characters. Letters, digits, and special characters `_-!@#$%` are\nallowed. It must start with a letter or digit. If not specified, a value is automatically generated.\n+ For <span pulumi-lang-nodejs=\"`aes`\" pulumi-lang-dotnet=\"`Aes`\" pulumi-lang-go=\"`aes`\" pulumi-lang-python=\"`aes`\" pulumi-lang-yaml=\"`aes`\" pulumi-lang-java=\"`aes`\">`aes`</span> type: The value contains <span pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\">`16`</span> characters, including letters, digits, and special\ncharacters `_-!@#$%+/=`. It must start with a letter, digit, plus sign `+`, or slash `/`. If not specified, a\nvalue is automatically generated.\n","secret":true,"type":"string"},"type":{"description":"Specifies the type of signature.\nThe valid values are as follows:\n","type":"string"},"updatedAt":{"description":"The latest update time of the signature.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/apigwThrottlingPolicyAssociateV2:ApigwThrottlingPolicyAssociateV2":{"description":"Up-to-date reference of API arguments for API Gateway throttling policy associate service you can get at\n[documentation portal](https://docs.otc.t-systems.com/api-gateway/api-ref/dedicated_gateway_apis_v2/binding_unbinding_request_throttling_policies/index.html)\n\nThis API is used to bind a request throttling policy to an API that has been published in an environment within OpenTelekomCloud.\nYou can bind different request throttling policies to an API in different environments,\nbut can bind only one request throttling policy to the API in each environment.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst gatewayId = config.requireObject<any>(\"gatewayId\");\nconst policyId = config.requireObject<any>(\"policyId\");\nconst publishIds = config.requireObject<Array<string>>(\"publishIds\");\nconst tpa = new opentelekomcloud.ApigwThrottlingPolicyAssociateV2(\"tpa\", {\n    gatewayId: gatewayId,\n    policyId: policyId,\n    publishIds: publishIds,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ngateway_id = config.require_object(\"gatewayId\")\npolicy_id = config.require_object(\"policyId\")\npublish_ids = config.require_object(\"publishIds\")\ntpa = opentelekomcloud.ApigwThrottlingPolicyAssociateV2(\"tpa\",\n    gateway_id=gateway_id,\n    policy_id=policy_id,\n    publish_ids=publish_ids)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var gatewayId = config.RequireObject<dynamic>(\"gatewayId\");\n    var policyId = config.RequireObject<dynamic>(\"policyId\");\n    var publishIds = config.RequireObject<string[]>(\"publishIds\");\n    var tpa = new Opentelekomcloud.ApigwThrottlingPolicyAssociateV2(\"tpa\", new()\n    {\n        GatewayId = gatewayId,\n        PolicyId = policyId,\n        PublishIds = publishIds,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tgatewayId := cfg.RequireObject(\"gatewayId\")\n\t\tpolicyId := cfg.RequireObject(\"policyId\")\n\t\tpublishIds := cfg.Require(\"publishIds\")\n\t\t_, err := opentelekomcloud.NewApigwThrottlingPolicyAssociateV2(ctx, \"tpa\", &opentelekomcloud.ApigwThrottlingPolicyAssociateV2Args{\n\t\t\tGatewayId:  pulumi.Any(gatewayId),\n\t\t\tPolicyId:   pulumi.Any(policyId),\n\t\t\tPublishIds: publishIds,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ApigwThrottlingPolicyAssociateV2;\nimport com.pulumi.opentelekomcloud.ApigwThrottlingPolicyAssociateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var gatewayId = config.get(\"gatewayId\");\n        final var policyId = config.get(\"policyId\");\n        final var publishIds = config.get(\"publishIds\");\n        var tpa = new ApigwThrottlingPolicyAssociateV2(\"tpa\", ApigwThrottlingPolicyAssociateV2Args.builder()\n            .gatewayId(gatewayId)\n            .policyId(policyId)\n            .publishIds(publishIds)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  gatewayId:\n    type: dynamic\n  policyId:\n    type: dynamic\n  publishIds:\n    type: list(string)\nresources:\n  tpa:\n    type: opentelekomcloud:ApigwThrottlingPolicyAssociateV2\n    properties:\n      gatewayId: ${gatewayId}\n      policyId: ${policyId}\n      publishIds: ${publishIds}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nResources can be imported using their `policy_id` and the APIGW dedicated gateway ID to which the policy\n\nbelongs, separated by a slash, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/apigwThrottlingPolicyAssociateV2:ApigwThrottlingPolicyAssociateV2 tpa <gateway_id>/<policy_id>\n```\n\n","inputProperties":{"apigwThrottlingPolicyAssociateV2Id":{"description":"Resource ID. The format is `<gateway_id>/<policy_id>`.\n","type":"string"},"gatewayId":{"description":"Specifies the ID of the dedicated gateway to which the APIs and the\nthrottling policy belongs.\nChanging this will create a new resource.\n","type":"string"},"policyId":{"description":"Specifies the ID of the throttling policy.\nChanging this will create a new resource.\n","type":"string"},"publishIds":{"description":"Specifies the publishing IDs corresponding to the APIs bound by the throttling policy.\n","items":{"type":"string"},"type":"array"}},"properties":{"apigwThrottlingPolicyAssociateV2Id":{"description":"Resource ID. The format is `<gateway_id>/<policy_id>`.\n","type":"string"},"gatewayId":{"description":"Specifies the ID of the dedicated gateway to which the APIs and the\nthrottling policy belongs.\nChanging this will create a new resource.\n","type":"string"},"policyId":{"description":"Specifies the ID of the throttling policy.\nChanging this will create a new resource.\n","type":"string"},"publishIds":{"description":"Specifies the publishing IDs corresponding to the APIs bound by the throttling policy.\n","items":{"type":"string"},"type":"array"},"region":{"description":"Specifies the region where the dedicated instance and the throttling policy are located.\n","type":"string"}},"required":["apigwThrottlingPolicyAssociateV2Id","gatewayId","policyId","publishIds","region"],"requiredInputs":["gatewayId","policyId","publishIds"],"stateInputs":{"description":"Input properties used for looking up and filtering ApigwThrottlingPolicyAssociateV2 resources.\n","properties":{"apigwThrottlingPolicyAssociateV2Id":{"description":"Resource ID. The format is `<gateway_id>/<policy_id>`.\n","type":"string"},"gatewayId":{"description":"Specifies the ID of the dedicated gateway to which the APIs and the\nthrottling policy belongs.\nChanging this will create a new resource.\n","type":"string"},"policyId":{"description":"Specifies the ID of the throttling policy.\nChanging this will create a new resource.\n","type":"string"},"publishIds":{"description":"Specifies the publishing IDs corresponding to the APIs bound by the throttling policy.\n","items":{"type":"string"},"type":"array"},"region":{"description":"Specifies the region where the dedicated instance and the throttling policy are located.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/apigwThrottlingPolicyV2:ApigwThrottlingPolicyV2":{"description":"Up-to-date reference of API arguments for API Gateway throttling policy service you can get at\n[documentation portal](https://docs.otc.t-systems.com/api-gateway/api-ref/dedicated_gateway_apis_v2/index.html)\n\nAPI Gateway (APIG) is a high-performance, high-availability, and high-security API hosting service that helps you build,\nmanage, and deploy APIs at any scale.\nWith just a few clicks, you can integrate internal systems, and selectively expose capabilities with minimal costs and risks.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst policy = new opentelekomcloud.ApigwThrottlingPolicyV2(\"policy\", {\n    instanceId: gateway.id,\n    name: \"throttling policy\",\n    type: \"API-shared\",\n    period: 10,\n    periodUnit: \"MINUTE\",\n    maxApiRequests: 70,\n    maxUserRequests: 45,\n    maxAppRequests: 45,\n    maxIpRequests: 45,\n    description: \"Created by tf\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\npolicy = opentelekomcloud.ApigwThrottlingPolicyV2(\"policy\",\n    instance_id=gateway[\"id\"],\n    name=\"throttling policy\",\n    type=\"API-shared\",\n    period=10,\n    period_unit=\"MINUTE\",\n    max_api_requests=70,\n    max_user_requests=45,\n    max_app_requests=45,\n    max_ip_requests=45,\n    description=\"Created by tf\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var policy = new Opentelekomcloud.ApigwThrottlingPolicyV2(\"policy\", new()\n    {\n        InstanceId = gateway.Id,\n        Name = \"throttling policy\",\n        Type = \"API-shared\",\n        Period = 10,\n        PeriodUnit = \"MINUTE\",\n        MaxApiRequests = 70,\n        MaxUserRequests = 45,\n        MaxAppRequests = 45,\n        MaxIpRequests = 45,\n        Description = \"Created by tf\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewApigwThrottlingPolicyV2(ctx, \"policy\", &opentelekomcloud.ApigwThrottlingPolicyV2Args{\n\t\t\tInstanceId:      pulumi.Any(gateway.Id),\n\t\t\tName:            pulumi.String(\"throttling policy\"),\n\t\t\tType:            pulumi.String(\"API-shared\"),\n\t\t\tPeriod:          pulumi.Float64(10),\n\t\t\tPeriodUnit:      pulumi.String(\"MINUTE\"),\n\t\t\tMaxApiRequests:  pulumi.Float64(70),\n\t\t\tMaxUserRequests: pulumi.Float64(45),\n\t\t\tMaxAppRequests:  pulumi.Float64(45),\n\t\t\tMaxIpRequests:   pulumi.Float64(45),\n\t\t\tDescription:     pulumi.String(\"Created by tf\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ApigwThrottlingPolicyV2;\nimport com.pulumi.opentelekomcloud.ApigwThrottlingPolicyV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var policy = new ApigwThrottlingPolicyV2(\"policy\", ApigwThrottlingPolicyV2Args.builder()\n            .instanceId(gateway.id())\n            .name(\"throttling policy\")\n            .type(\"API-shared\")\n            .period(10.0)\n            .periodUnit(\"MINUTE\")\n            .maxApiRequests(70.0)\n            .maxUserRequests(45.0)\n            .maxAppRequests(45.0)\n            .maxIpRequests(45.0)\n            .description(\"Created by tf\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  policy:\n    type: opentelekomcloud:ApigwThrottlingPolicyV2\n    properties:\n      instanceId: ${gateway.id}\n      name: throttling policy\n      type: API-shared\n      period: 10\n      periodUnit: MINUTE\n      maxApiRequests: 70\n      maxUserRequests: 45\n      maxAppRequests: 45\n      maxIpRequests: 45\n      description: Created by tf\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAPI Throttling Policies can be imported using their `name` and related dedicated instance ID, separated by a slash, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/apigwThrottlingPolicyV2:ApigwThrottlingPolicyV2 test <instance_id>/<name>\n```\n\n","inputProperties":{"apigwThrottlingPolicyV2Id":{"description":"ID of the special user/application throttling policy.\n","type":"string"},"appThrottles":{"description":"Specifies the array of one or more special throttling policies for APP limit.\nThe <span pulumi-lang-nodejs=\"`appThrottles`\" pulumi-lang-dotnet=\"`AppThrottles`\" pulumi-lang-go=\"`appThrottles`\" pulumi-lang-python=\"`app_throttles`\" pulumi-lang-yaml=\"`appThrottles`\" pulumi-lang-java=\"`appThrottles`\">`app_throttles`</span> object structure is documented below.\n\nThe <span pulumi-lang-nodejs=\"`userThrottles`\" pulumi-lang-dotnet=\"`UserThrottles`\" pulumi-lang-go=\"`userThrottles`\" pulumi-lang-python=\"`user_throttles`\" pulumi-lang-yaml=\"`userThrottles`\" pulumi-lang-java=\"`userThrottles`\">`user_throttles`</span> and <span pulumi-lang-nodejs=\"`userThrottles`\" pulumi-lang-dotnet=\"`UserThrottles`\" pulumi-lang-go=\"`userThrottles`\" pulumi-lang-python=\"`user_throttles`\" pulumi-lang-yaml=\"`userThrottles`\" pulumi-lang-java=\"`userThrottles`\">`user_throttles`</span> blocks support:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwThrottlingPolicyV2AppThrottle:ApigwThrottlingPolicyV2AppThrottle"},"type":"array"},"description":{"description":"Specifies the description about the API throttling policy.\nThe description contain a maximum of <span pulumi-lang-nodejs=\"`255`\" pulumi-lang-dotnet=\"`255`\" pulumi-lang-go=\"`255`\" pulumi-lang-python=\"`255`\" pulumi-lang-yaml=\"`255`\" pulumi-lang-java=\"`255`\">`255`</span> characters and the angle brackets (< and >) are not allowed.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the dedicated instance to which the throttling\npolicy belongs.\n","type":"string"},"maxApiRequests":{"description":"Specifies the maximum number of times an API can be accessed within a specified\nperiod.\n","type":"number"},"maxAppRequests":{"description":"Specifies the maximum number of times the API can be accessed by an app within\nthe same period.\nThe value of this parameter must be less than or equal to the value of <span pulumi-lang-nodejs=\"`maxUserRequests`\" pulumi-lang-dotnet=\"`MaxUserRequests`\" pulumi-lang-go=\"`maxUserRequests`\" pulumi-lang-python=\"`max_user_requests`\" pulumi-lang-yaml=\"`maxUserRequests`\" pulumi-lang-java=\"`maxUserRequests`\">`max_user_requests`</span>.\n","type":"number"},"maxIpRequests":{"description":"Specifies the maximum number of times the API can be accessed by an IP address\nwithin the same period.\nThe value of this parameter must be less than or equal to the value of <span pulumi-lang-nodejs=\"`maxApiRequests`\" pulumi-lang-dotnet=\"`MaxApiRequests`\" pulumi-lang-go=\"`maxApiRequests`\" pulumi-lang-python=\"`max_api_requests`\" pulumi-lang-yaml=\"`maxApiRequests`\" pulumi-lang-java=\"`maxApiRequests`\">`max_api_requests`</span>.\n","type":"number"},"maxUserRequests":{"description":"Specifies the maximum number of times the API can be accessed by a user within\nthe same period.\nThe value of this parameter must be less than or equal to the value of <span pulumi-lang-nodejs=\"`maxApiRequests`\" pulumi-lang-dotnet=\"`MaxApiRequests`\" pulumi-lang-go=\"`maxApiRequests`\" pulumi-lang-python=\"`max_api_requests`\" pulumi-lang-yaml=\"`maxApiRequests`\" pulumi-lang-java=\"`maxApiRequests`\">`max_api_requests`</span>.\n","type":"number"},"name":{"description":"Specifies the name of the throttling policy.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, only English letters, digits and underscores (_) are\nallowed.\n","type":"string"},"period":{"description":"Specifies the period of time for limiting the number of API calls.\nThis parameter applies with each of the API call limits: <span pulumi-lang-nodejs=\"`maxApiRequests`\" pulumi-lang-dotnet=\"`MaxApiRequests`\" pulumi-lang-go=\"`maxApiRequests`\" pulumi-lang-python=\"`max_api_requests`\" pulumi-lang-yaml=\"`maxApiRequests`\" pulumi-lang-java=\"`maxApiRequests`\">`max_api_requests`</span>, <span pulumi-lang-nodejs=\"`maxAppRequests`\" pulumi-lang-dotnet=\"`MaxAppRequests`\" pulumi-lang-go=\"`maxAppRequests`\" pulumi-lang-python=\"`max_app_requests`\" pulumi-lang-yaml=\"`maxAppRequests`\" pulumi-lang-java=\"`maxAppRequests`\">`max_app_requests`</span>, <span pulumi-lang-nodejs=\"`maxIpRequests`\" pulumi-lang-dotnet=\"`MaxIpRequests`\" pulumi-lang-go=\"`maxIpRequests`\" pulumi-lang-python=\"`max_ip_requests`\" pulumi-lang-yaml=\"`maxIpRequests`\" pulumi-lang-java=\"`maxIpRequests`\">`max_ip_requests`</span>\nand <span pulumi-lang-nodejs=\"`maxUserRequests`\" pulumi-lang-dotnet=\"`MaxUserRequests`\" pulumi-lang-go=\"`maxUserRequests`\" pulumi-lang-python=\"`max_user_requests`\" pulumi-lang-yaml=\"`maxUserRequests`\" pulumi-lang-java=\"`maxUserRequests`\">`max_user_requests`</span>.\n","type":"number"},"periodUnit":{"description":"Specifies the time unit for limiting the number of API calls.\nThe valid values are **SECOND**, **MINUTE**, **HOUR** and **DAY**, defaults to **MINUTE**.\n","type":"string"},"type":{"description":"Specifies the type of the request throttling policy.\nThe valid values are as follows:\n+ **API-based**: limiting the maximum number of times a single API bound to the policy can be called within the\nspecified period.\n+ **API-shared**: limiting the maximum number of times all APIs bound to the policy can be called within the specified\nperiod.\n","type":"string"},"userThrottles":{"description":"Specifies the array of one or more special throttling policies for IAM user limit.\nThe <span pulumi-lang-nodejs=\"`userThrottles`\" pulumi-lang-dotnet=\"`UserThrottles`\" pulumi-lang-go=\"`userThrottles`\" pulumi-lang-python=\"`user_throttles`\" pulumi-lang-yaml=\"`userThrottles`\" pulumi-lang-java=\"`userThrottles`\">`user_throttles`</span> object structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwThrottlingPolicyV2UserThrottle:ApigwThrottlingPolicyV2UserThrottle"},"type":"array"}},"properties":{"apigwThrottlingPolicyV2Id":{"description":"ID of the special user/application throttling policy.\n","type":"string"},"appThrottles":{"description":"Specifies the array of one or more special throttling policies for APP limit.\nThe <span pulumi-lang-nodejs=\"`appThrottles`\" pulumi-lang-dotnet=\"`AppThrottles`\" pulumi-lang-go=\"`appThrottles`\" pulumi-lang-python=\"`app_throttles`\" pulumi-lang-yaml=\"`appThrottles`\" pulumi-lang-java=\"`appThrottles`\">`app_throttles`</span> object structure is documented below.\n\nThe <span pulumi-lang-nodejs=\"`userThrottles`\" pulumi-lang-dotnet=\"`UserThrottles`\" pulumi-lang-go=\"`userThrottles`\" pulumi-lang-python=\"`user_throttles`\" pulumi-lang-yaml=\"`userThrottles`\" pulumi-lang-java=\"`userThrottles`\">`user_throttles`</span> and <span pulumi-lang-nodejs=\"`userThrottles`\" pulumi-lang-dotnet=\"`UserThrottles`\" pulumi-lang-go=\"`userThrottles`\" pulumi-lang-python=\"`user_throttles`\" pulumi-lang-yaml=\"`userThrottles`\" pulumi-lang-java=\"`userThrottles`\">`user_throttles`</span> blocks support:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwThrottlingPolicyV2AppThrottle:ApigwThrottlingPolicyV2AppThrottle"},"type":"array"},"createdAt":{"description":"The creation time of the throttling policy.\n","type":"string"},"description":{"description":"Specifies the description about the API throttling policy.\nThe description contain a maximum of <span pulumi-lang-nodejs=\"`255`\" pulumi-lang-dotnet=\"`255`\" pulumi-lang-go=\"`255`\" pulumi-lang-python=\"`255`\" pulumi-lang-yaml=\"`255`\" pulumi-lang-java=\"`255`\">`255`</span> characters and the angle brackets (< and >) are not allowed.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the dedicated instance to which the throttling\npolicy belongs.\n","type":"string"},"maxApiRequests":{"description":"Specifies the maximum number of times an API can be accessed within a specified\nperiod.\n","type":"number"},"maxAppRequests":{"description":"Specifies the maximum number of times the API can be accessed by an app within\nthe same period.\nThe value of this parameter must be less than or equal to the value of <span pulumi-lang-nodejs=\"`maxUserRequests`\" pulumi-lang-dotnet=\"`MaxUserRequests`\" pulumi-lang-go=\"`maxUserRequests`\" pulumi-lang-python=\"`max_user_requests`\" pulumi-lang-yaml=\"`maxUserRequests`\" pulumi-lang-java=\"`maxUserRequests`\">`max_user_requests`</span>.\n","type":"number"},"maxIpRequests":{"description":"Specifies the maximum number of times the API can be accessed by an IP address\nwithin the same period.\nThe value of this parameter must be less than or equal to the value of <span pulumi-lang-nodejs=\"`maxApiRequests`\" pulumi-lang-dotnet=\"`MaxApiRequests`\" pulumi-lang-go=\"`maxApiRequests`\" pulumi-lang-python=\"`max_api_requests`\" pulumi-lang-yaml=\"`maxApiRequests`\" pulumi-lang-java=\"`maxApiRequests`\">`max_api_requests`</span>.\n","type":"number"},"maxUserRequests":{"description":"Specifies the maximum number of times the API can be accessed by a user within\nthe same period.\nThe value of this parameter must be less than or equal to the value of <span pulumi-lang-nodejs=\"`maxApiRequests`\" pulumi-lang-dotnet=\"`MaxApiRequests`\" pulumi-lang-go=\"`maxApiRequests`\" pulumi-lang-python=\"`max_api_requests`\" pulumi-lang-yaml=\"`maxApiRequests`\" pulumi-lang-java=\"`maxApiRequests`\">`max_api_requests`</span>.\n","type":"number"},"name":{"description":"Specifies the name of the throttling policy.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, only English letters, digits and underscores (_) are\nallowed.\n","type":"string"},"period":{"description":"Specifies the period of time for limiting the number of API calls.\nThis parameter applies with each of the API call limits: <span pulumi-lang-nodejs=\"`maxApiRequests`\" pulumi-lang-dotnet=\"`MaxApiRequests`\" pulumi-lang-go=\"`maxApiRequests`\" pulumi-lang-python=\"`max_api_requests`\" pulumi-lang-yaml=\"`maxApiRequests`\" pulumi-lang-java=\"`maxApiRequests`\">`max_api_requests`</span>, <span pulumi-lang-nodejs=\"`maxAppRequests`\" pulumi-lang-dotnet=\"`MaxAppRequests`\" pulumi-lang-go=\"`maxAppRequests`\" pulumi-lang-python=\"`max_app_requests`\" pulumi-lang-yaml=\"`maxAppRequests`\" pulumi-lang-java=\"`maxAppRequests`\">`max_app_requests`</span>, <span pulumi-lang-nodejs=\"`maxIpRequests`\" pulumi-lang-dotnet=\"`MaxIpRequests`\" pulumi-lang-go=\"`maxIpRequests`\" pulumi-lang-python=\"`max_ip_requests`\" pulumi-lang-yaml=\"`maxIpRequests`\" pulumi-lang-java=\"`maxIpRequests`\">`max_ip_requests`</span>\nand <span pulumi-lang-nodejs=\"`maxUserRequests`\" pulumi-lang-dotnet=\"`MaxUserRequests`\" pulumi-lang-go=\"`maxUserRequests`\" pulumi-lang-python=\"`max_user_requests`\" pulumi-lang-yaml=\"`maxUserRequests`\" pulumi-lang-java=\"`maxUserRequests`\">`max_user_requests`</span>.\n","type":"number"},"periodUnit":{"description":"Specifies the time unit for limiting the number of API calls.\nThe valid values are **SECOND**, **MINUTE**, **HOUR** and **DAY**, defaults to **MINUTE**.\n","type":"string"},"region":{"description":"The region where the throttling policy is located.\n","type":"string"},"type":{"description":"Specifies the type of the request throttling policy.\nThe valid values are as follows:\n+ **API-based**: limiting the maximum number of times a single API bound to the policy can be called within the\nspecified period.\n+ **API-shared**: limiting the maximum number of times all APIs bound to the policy can be called within the specified\nperiod.\n","type":"string"},"userThrottles":{"description":"Specifies the array of one or more special throttling policies for IAM user limit.\nThe <span pulumi-lang-nodejs=\"`userThrottles`\" pulumi-lang-dotnet=\"`UserThrottles`\" pulumi-lang-go=\"`userThrottles`\" pulumi-lang-python=\"`user_throttles`\" pulumi-lang-yaml=\"`userThrottles`\" pulumi-lang-java=\"`userThrottles`\">`user_throttles`</span> object structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwThrottlingPolicyV2UserThrottle:ApigwThrottlingPolicyV2UserThrottle"},"type":"array"}},"required":["apigwThrottlingPolicyV2Id","createdAt","instanceId","maxApiRequests","name","period","region"],"requiredInputs":["instanceId","maxApiRequests","period"],"stateInputs":{"description":"Input properties used for looking up and filtering ApigwThrottlingPolicyV2 resources.\n","properties":{"apigwThrottlingPolicyV2Id":{"description":"ID of the special user/application throttling policy.\n","type":"string"},"appThrottles":{"description":"Specifies the array of one or more special throttling policies for APP limit.\nThe <span pulumi-lang-nodejs=\"`appThrottles`\" pulumi-lang-dotnet=\"`AppThrottles`\" pulumi-lang-go=\"`appThrottles`\" pulumi-lang-python=\"`app_throttles`\" pulumi-lang-yaml=\"`appThrottles`\" pulumi-lang-java=\"`appThrottles`\">`app_throttles`</span> object structure is documented below.\n\nThe <span pulumi-lang-nodejs=\"`userThrottles`\" pulumi-lang-dotnet=\"`UserThrottles`\" pulumi-lang-go=\"`userThrottles`\" pulumi-lang-python=\"`user_throttles`\" pulumi-lang-yaml=\"`userThrottles`\" pulumi-lang-java=\"`userThrottles`\">`user_throttles`</span> and <span pulumi-lang-nodejs=\"`userThrottles`\" pulumi-lang-dotnet=\"`UserThrottles`\" pulumi-lang-go=\"`userThrottles`\" pulumi-lang-python=\"`user_throttles`\" pulumi-lang-yaml=\"`userThrottles`\" pulumi-lang-java=\"`userThrottles`\">`user_throttles`</span> blocks support:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwThrottlingPolicyV2AppThrottle:ApigwThrottlingPolicyV2AppThrottle"},"type":"array"},"createdAt":{"description":"The creation time of the throttling policy.\n","type":"string"},"description":{"description":"Specifies the description about the API throttling policy.\nThe description contain a maximum of <span pulumi-lang-nodejs=\"`255`\" pulumi-lang-dotnet=\"`255`\" pulumi-lang-go=\"`255`\" pulumi-lang-python=\"`255`\" pulumi-lang-yaml=\"`255`\" pulumi-lang-java=\"`255`\">`255`</span> characters and the angle brackets (< and >) are not allowed.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the dedicated instance to which the throttling\npolicy belongs.\n","type":"string"},"maxApiRequests":{"description":"Specifies the maximum number of times an API can be accessed within a specified\nperiod.\n","type":"number"},"maxAppRequests":{"description":"Specifies the maximum number of times the API can be accessed by an app within\nthe same period.\nThe value of this parameter must be less than or equal to the value of <span pulumi-lang-nodejs=\"`maxUserRequests`\" pulumi-lang-dotnet=\"`MaxUserRequests`\" pulumi-lang-go=\"`maxUserRequests`\" pulumi-lang-python=\"`max_user_requests`\" pulumi-lang-yaml=\"`maxUserRequests`\" pulumi-lang-java=\"`maxUserRequests`\">`max_user_requests`</span>.\n","type":"number"},"maxIpRequests":{"description":"Specifies the maximum number of times the API can be accessed by an IP address\nwithin the same period.\nThe value of this parameter must be less than or equal to the value of <span pulumi-lang-nodejs=\"`maxApiRequests`\" pulumi-lang-dotnet=\"`MaxApiRequests`\" pulumi-lang-go=\"`maxApiRequests`\" pulumi-lang-python=\"`max_api_requests`\" pulumi-lang-yaml=\"`maxApiRequests`\" pulumi-lang-java=\"`maxApiRequests`\">`max_api_requests`</span>.\n","type":"number"},"maxUserRequests":{"description":"Specifies the maximum number of times the API can be accessed by a user within\nthe same period.\nThe value of this parameter must be less than or equal to the value of <span pulumi-lang-nodejs=\"`maxApiRequests`\" pulumi-lang-dotnet=\"`MaxApiRequests`\" pulumi-lang-go=\"`maxApiRequests`\" pulumi-lang-python=\"`max_api_requests`\" pulumi-lang-yaml=\"`maxApiRequests`\" pulumi-lang-java=\"`maxApiRequests`\">`max_api_requests`</span>.\n","type":"number"},"name":{"description":"Specifies the name of the throttling policy.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, only English letters, digits and underscores (_) are\nallowed.\n","type":"string"},"period":{"description":"Specifies the period of time for limiting the number of API calls.\nThis parameter applies with each of the API call limits: <span pulumi-lang-nodejs=\"`maxApiRequests`\" pulumi-lang-dotnet=\"`MaxApiRequests`\" pulumi-lang-go=\"`maxApiRequests`\" pulumi-lang-python=\"`max_api_requests`\" pulumi-lang-yaml=\"`maxApiRequests`\" pulumi-lang-java=\"`maxApiRequests`\">`max_api_requests`</span>, <span pulumi-lang-nodejs=\"`maxAppRequests`\" pulumi-lang-dotnet=\"`MaxAppRequests`\" pulumi-lang-go=\"`maxAppRequests`\" pulumi-lang-python=\"`max_app_requests`\" pulumi-lang-yaml=\"`maxAppRequests`\" pulumi-lang-java=\"`maxAppRequests`\">`max_app_requests`</span>, <span pulumi-lang-nodejs=\"`maxIpRequests`\" pulumi-lang-dotnet=\"`MaxIpRequests`\" pulumi-lang-go=\"`maxIpRequests`\" pulumi-lang-python=\"`max_ip_requests`\" pulumi-lang-yaml=\"`maxIpRequests`\" pulumi-lang-java=\"`maxIpRequests`\">`max_ip_requests`</span>\nand <span pulumi-lang-nodejs=\"`maxUserRequests`\" pulumi-lang-dotnet=\"`MaxUserRequests`\" pulumi-lang-go=\"`maxUserRequests`\" pulumi-lang-python=\"`max_user_requests`\" pulumi-lang-yaml=\"`maxUserRequests`\" pulumi-lang-java=\"`maxUserRequests`\">`max_user_requests`</span>.\n","type":"number"},"periodUnit":{"description":"Specifies the time unit for limiting the number of API calls.\nThe valid values are **SECOND**, **MINUTE**, **HOUR** and **DAY**, defaults to **MINUTE**.\n","type":"string"},"region":{"description":"The region where the throttling policy is located.\n","type":"string"},"type":{"description":"Specifies the type of the request throttling policy.\nThe valid values are as follows:\n+ **API-based**: limiting the maximum number of times a single API bound to the policy can be called within the\nspecified period.\n+ **API-shared**: limiting the maximum number of times all APIs bound to the policy can be called within the specified\nperiod.\n","type":"string"},"userThrottles":{"description":"Specifies the array of one or more special throttling policies for IAM user limit.\nThe <span pulumi-lang-nodejs=\"`userThrottles`\" pulumi-lang-dotnet=\"`UserThrottles`\" pulumi-lang-go=\"`userThrottles`\" pulumi-lang-python=\"`user_throttles`\" pulumi-lang-yaml=\"`userThrottles`\" pulumi-lang-java=\"`userThrottles`\">`user_throttles`</span> object structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwThrottlingPolicyV2UserThrottle:ApigwThrottlingPolicyV2UserThrottle"},"type":"array"}},"type":"object"},"type":"object"},"opentelekomcloud:index/apigwVpcChannelV2:ApigwVpcChannelV2":{"description":"Up-to-date reference of API arguments for API Gateway VPC Channel service you can get at\n[documentation portal](https://docs.otc.t-systems.com/api-gateway/api-ref/dedicated_gateway_apis_v2/vpc_channel_management/index.html)\n\nManages a channel resource within OpenTelekomCloud.\n\n> After creating a channel of type server, you can configure it for an API of an HTTP/HTTPS backend service.\n\n## Example Usage\n\n### Create a channel of type server and use the default group to manage servers\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst gatewayId = config.requireObject<any>(\"gatewayId\");\nconst channelName = config.requireObject<any>(\"channelName\");\nconst backendServers = config.requireObject<Array<{groupName?: string, id?: string, weight?: number}>>(\"backendServers\");\nconst test = new opentelekomcloud.ApigwVpcChannelV2(\"test\", {\n    members: backendServers.map((v, k) => ({key: k, value: v})).map(entry => ({\n        id: entry.value.id,\n        weight: entry.value.weight,\n    })),\n    gatewayId: gatewayId,\n    name: channelName,\n    port: 8080,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ngateway_id = config.require_object(\"gatewayId\")\nchannel_name = config.require_object(\"channelName\")\nbackend_servers = config.require_object(\"backendServers\")\ntest = opentelekomcloud.ApigwVpcChannelV2(\"test\",\n    members=[{\n        \"id\": entry[\"value\"][\"id\"],\n        \"weight\": entry[\"value\"][\"weight\"],\n    } for entry in [{\"key\": k, \"value\": v} for k, v in backend_servers]],\n    gateway_id=gateway_id,\n    name=channel_name,\n    port=8080)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var gatewayId = config.RequireObject<dynamic>(\"gatewayId\");\n    var channelName = config.RequireObject<dynamic>(\"channelName\");\n    var backendServers = config.RequireObject<BackendServers[]>(\"backendServers\");\n    var test = new Opentelekomcloud.ApigwVpcChannelV2(\"test\", new()\n    {\n        Members = backendServers.Select((v, k) => new { Key = k, Value = v }).Select(entry => \n        {\n            return new Opentelekomcloud.Inputs.ApigwVpcChannelV2MemberArgs\n            {\n                Id = entry.Value.Id,\n                Weight = entry.Value.Weight,\n            };\n        }).ToList(),\n        GatewayId = gatewayId,\n        Name = channelName,\n        Port = 8080,\n    });\n\n});\n\npublic class BackendServers\n{\n    public string groupName { get; set; }\n    public string id { get; set; }\n    public double weight { get; set; }\n}\n```\n<!--End PulumiCodeChooser -->\n\n### Create a channel of type server and use the custom group to manage servers\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst gatewayId = config.requireObject<any>(\"gatewayId\");\nconst channelName = config.requireObject<any>(\"channelName\");\nconst backendServerGroups = config.requireObject<Array<{description?: string, name?: string, weight?: number}>>(\"backendServerGroups\");\nconst backendServers = config.requireObject<Array<{groupName?: string, id?: string, weight?: number}>>(\"backendServers\");\nconst test = new opentelekomcloud.ApigwVpcChannelV2(\"test\", {\n    memberGroups: backendServerGroups.map((v, k) => ({key: k, value: v})).map(entry => ({\n        name: value.name,\n        description: value.description,\n        weight: value.weight,\n    })),\n    members: backendServers.map((v, k) => ({key: k, value: v})).map(entry2 => ({\n        groupName: value.group_name,\n        id: value.id,\n        weight: value.weight,\n    })),\n    gatewayId: gatewayId,\n    name: channelName,\n    port: 8080,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ngateway_id = config.require_object(\"gatewayId\")\nchannel_name = config.require_object(\"channelName\")\nbackend_server_groups = config.require_object(\"backendServerGroups\")\nbackend_servers = config.require_object(\"backendServers\")\ntest = opentelekomcloud.ApigwVpcChannelV2(\"test\",\n    member_groups=[{\n        \"name\": value[\"name\"],\n        \"description\": value[\"description\"],\n        \"weight\": value[\"weight\"],\n    } for entry in [{\"key\": k, \"value\": v} for k, v in backend_server_groups]],\n    members=[{\n        \"group_name\": value[\"group_name\"],\n        \"id\": value[\"id\"],\n        \"weight\": value[\"weight\"],\n    } for entry2 in [{\"key\": k, \"value\": v} for k, v in backend_servers]],\n    gateway_id=gateway_id,\n    name=channel_name,\n    port=8080)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var gatewayId = config.RequireObject<dynamic>(\"gatewayId\");\n    var channelName = config.RequireObject<dynamic>(\"channelName\");\n    var backendServerGroups = config.RequireObject<BackendServerGroups[]>(\"backendServerGroups\");\n    var backendServers = config.RequireObject<BackendServers[]>(\"backendServers\");\n    var test = new Opentelekomcloud.ApigwVpcChannelV2(\"test\", new()\n    {\n        MemberGroups = backendServerGroups.Select((v, k) => new { Key = k, Value = v }).Select(entry => \n        {\n            return new Opentelekomcloud.Inputs.ApigwVpcChannelV2MemberGroupArgs\n            {\n                Name = @value.Name,\n                Description = @value.Description,\n                Weight = @value.Weight,\n            };\n        }).ToList(),\n        Members = backendServers.Select((v, k) => new { Key = k, Value = v }).Select(entry2 => \n        {\n            return new Opentelekomcloud.Inputs.ApigwVpcChannelV2MemberArgs\n            {\n                GroupName = @value.Group_name,\n                Id = @value.Id,\n                Weight = @value.Weight,\n            };\n        }).ToList(),\n        GatewayId = gatewayId,\n        Name = channelName,\n        Port = 8080,\n    });\n\n});\n\npublic class BackendServerGroups\n{\n    public string description { get; set; }\n    public string name { get; set; }\n    public double weight { get; set; }\n}\n\npublic class BackendServers\n{\n    public string groupName { get; set; }\n    public string id { get; set; }\n    public double weight { get; set; }\n}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nChannels can be imported using their `id` and the ID of the related API gateway instance, separated by a slash, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/apigwVpcChannelV2:ApigwVpcChannelV2 test <gateway_id>/<id>\n```\n\n","inputProperties":{"apigwVpcChannelV2Id":{"description":"Specifies the ECS ID for each backend servers.\n\n> One of the parameter `member.host` and `member.id` must be set if <span pulumi-lang-nodejs=\"`memberType`\" pulumi-lang-dotnet=\"`MemberType`\" pulumi-lang-go=\"`memberType`\" pulumi-lang-python=\"`member_type`\" pulumi-lang-yaml=\"`memberType`\" pulumi-lang-java=\"`memberType`\">`member_type`</span> is **ecs**.\nThe parameter `member.host` and `member.id` are alternative.\n","type":"string"},"gatewayId":{"description":"Specifies the ID of the dedicated API gateway to which the channel\nbelongs.\nChanging this will create a new resource.\n","type":"string"},"healthCheck":{"$ref":"#/types/opentelekomcloud:index%2FApigwVpcChannelV2HealthCheck:ApigwVpcChannelV2HealthCheck","description":"Specifies the health configuration of cloud servers associated with the load balance\nchannel for APIG regularly check.\nThe object structure is documented below.\n"},"lbAlgorithm":{"description":"Specifies the distribution algorithm.\nThe valid values are as follows:\n","type":"number"},"memberGroups":{"description":"Specifies the backend (server) groups of the channel.\nThe object structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwVpcChannelV2MemberGroup:ApigwVpcChannelV2MemberGroup"},"type":"array"},"memberType":{"description":"Specifies the member type of the channel.\nThe valid values are as follows:\n","type":"string"},"members":{"description":"Specifies the backend servers of the channel.\nThis parameter is required and only available if the <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span>.\nThe object structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwVpcChannelV2Member:ApigwVpcChannelV2Member"},"type":"array"},"microservice":{"$ref":"#/types/opentelekomcloud:index%2FApigwVpcChannelV2Microservice:ApigwVpcChannelV2Microservice","description":"Specifies the configuration of the microservice.\nThe object structure is documented below.\n\n<a name=<span pulumi-lang-nodejs=\"\"channelMemberGroup\"\" pulumi-lang-dotnet=\"\"ChannelMemberGroup\"\" pulumi-lang-go=\"\"channelMemberGroup\"\" pulumi-lang-python=\"\"channel_member_group\"\" pulumi-lang-yaml=\"\"channelMemberGroup\"\" pulumi-lang-java=\"\"channelMemberGroup\"\">\"channel_member_group\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`memberGroup`\" pulumi-lang-dotnet=\"`MemberGroup`\" pulumi-lang-go=\"`memberGroup`\" pulumi-lang-python=\"`member_group`\" pulumi-lang-yaml=\"`memberGroup`\" pulumi-lang-java=\"`memberGroup`\">`member_group`</span> block supports:\n"},"name":{"description":"Specifies the name of the backend server.\nRequired if the parameter `member.id` is set.\n","type":"string"},"port":{"description":"Specifies the destination host port for health check.\nThe valid value ranges from <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> to `65,535`.\n","type":"number"},"type":{"description":"Specifies the type of the channel.\nThe valid values are as follows:\n","type":"number"}},"properties":{"apigwVpcChannelV2Id":{"description":"Specifies the ECS ID for each backend servers.\n\n> One of the parameter `member.host` and `member.id` must be set if <span pulumi-lang-nodejs=\"`memberType`\" pulumi-lang-dotnet=\"`MemberType`\" pulumi-lang-go=\"`memberType`\" pulumi-lang-python=\"`member_type`\" pulumi-lang-yaml=\"`memberType`\" pulumi-lang-java=\"`memberType`\">`member_type`</span> is **ecs**.\nThe parameter `member.host` and `member.id` are alternative.\n","type":"string"},"createdAt":{"description":"The time when the channel was created.\n","type":"string"},"gatewayId":{"description":"Specifies the ID of the dedicated API gateway to which the channel\nbelongs.\nChanging this will create a new resource.\n","type":"string"},"healthCheck":{"$ref":"#/types/opentelekomcloud:index%2FApigwVpcChannelV2HealthCheck:ApigwVpcChannelV2HealthCheck","description":"Specifies the health configuration of cloud servers associated with the load balance\nchannel for APIG regularly check.\nThe object structure is documented below.\n"},"lbAlgorithm":{"description":"Specifies the distribution algorithm.\nThe valid values are as follows:\n","type":"number"},"memberGroups":{"description":"Specifies the backend (server) groups of the channel.\nThe object structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwVpcChannelV2MemberGroup:ApigwVpcChannelV2MemberGroup"},"type":"array"},"memberType":{"description":"Specifies the member type of the channel.\nThe valid values are as follows:\n","type":"string"},"members":{"description":"Specifies the backend servers of the channel.\nThis parameter is required and only available if the <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span>.\nThe object structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwVpcChannelV2Member:ApigwVpcChannelV2Member"},"type":"array"},"microservice":{"$ref":"#/types/opentelekomcloud:index%2FApigwVpcChannelV2Microservice:ApigwVpcChannelV2Microservice","description":"Specifies the configuration of the microservice.\nThe object structure is documented below.\n\n<a name=<span pulumi-lang-nodejs=\"\"channelMemberGroup\"\" pulumi-lang-dotnet=\"\"ChannelMemberGroup\"\" pulumi-lang-go=\"\"channelMemberGroup\"\" pulumi-lang-python=\"\"channel_member_group\"\" pulumi-lang-yaml=\"\"channelMemberGroup\"\" pulumi-lang-java=\"\"channelMemberGroup\"\">\"channel_member_group\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`memberGroup`\" pulumi-lang-dotnet=\"`MemberGroup`\" pulumi-lang-go=\"`memberGroup`\" pulumi-lang-python=\"`member_group`\" pulumi-lang-yaml=\"`memberGroup`\" pulumi-lang-java=\"`memberGroup`\">`member_group`</span> block supports:\n"},"name":{"description":"Specifies the name of the backend server.\nRequired if the parameter `member.id` is set.\n","type":"string"},"port":{"description":"Specifies the destination host port for health check.\nThe valid value ranges from <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> to `65,535`.\n","type":"number"},"region":{"description":"The region where the channel is located.\n","type":"string"},"status":{"description":"Specifies the status of health check.\nThe valid values are as follows:\n","type":"number"},"type":{"description":"Specifies the type of the channel.\nThe valid values are as follows:\n","type":"number"}},"required":["apigwVpcChannelV2Id","createdAt","gatewayId","lbAlgorithm","memberType","name","port","region","status","type"],"requiredInputs":["gatewayId","lbAlgorithm","port"],"stateInputs":{"description":"Input properties used for looking up and filtering ApigwVpcChannelV2 resources.\n","properties":{"apigwVpcChannelV2Id":{"description":"Specifies the ECS ID for each backend servers.\n\n> One of the parameter `member.host` and `member.id` must be set if <span pulumi-lang-nodejs=\"`memberType`\" pulumi-lang-dotnet=\"`MemberType`\" pulumi-lang-go=\"`memberType`\" pulumi-lang-python=\"`member_type`\" pulumi-lang-yaml=\"`memberType`\" pulumi-lang-java=\"`memberType`\">`member_type`</span> is **ecs**.\nThe parameter `member.host` and `member.id` are alternative.\n","type":"string"},"createdAt":{"description":"The time when the channel was created.\n","type":"string"},"gatewayId":{"description":"Specifies the ID of the dedicated API gateway to which the channel\nbelongs.\nChanging this will create a new resource.\n","type":"string"},"healthCheck":{"$ref":"#/types/opentelekomcloud:index%2FApigwVpcChannelV2HealthCheck:ApigwVpcChannelV2HealthCheck","description":"Specifies the health configuration of cloud servers associated with the load balance\nchannel for APIG regularly check.\nThe object structure is documented below.\n"},"lbAlgorithm":{"description":"Specifies the distribution algorithm.\nThe valid values are as follows:\n","type":"number"},"memberGroups":{"description":"Specifies the backend (server) groups of the channel.\nThe object structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwVpcChannelV2MemberGroup:ApigwVpcChannelV2MemberGroup"},"type":"array"},"memberType":{"description":"Specifies the member type of the channel.\nThe valid values are as follows:\n","type":"string"},"members":{"description":"Specifies the backend servers of the channel.\nThis parameter is required and only available if the <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span>.\nThe object structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FApigwVpcChannelV2Member:ApigwVpcChannelV2Member"},"type":"array"},"microservice":{"$ref":"#/types/opentelekomcloud:index%2FApigwVpcChannelV2Microservice:ApigwVpcChannelV2Microservice","description":"Specifies the configuration of the microservice.\nThe object structure is documented below.\n\n<a name=<span pulumi-lang-nodejs=\"\"channelMemberGroup\"\" pulumi-lang-dotnet=\"\"ChannelMemberGroup\"\" pulumi-lang-go=\"\"channelMemberGroup\"\" pulumi-lang-python=\"\"channel_member_group\"\" pulumi-lang-yaml=\"\"channelMemberGroup\"\" pulumi-lang-java=\"\"channelMemberGroup\"\">\"channel_member_group\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`memberGroup`\" pulumi-lang-dotnet=\"`MemberGroup`\" pulumi-lang-go=\"`memberGroup`\" pulumi-lang-python=\"`member_group`\" pulumi-lang-yaml=\"`memberGroup`\" pulumi-lang-java=\"`memberGroup`\">`member_group`</span> block supports:\n"},"name":{"description":"Specifies the name of the backend server.\nRequired if the parameter `member.id` is set.\n","type":"string"},"port":{"description":"Specifies the destination host port for health check.\nThe valid value ranges from <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> to `65,535`.\n","type":"number"},"region":{"description":"The region where the channel is located.\n","type":"string"},"status":{"description":"Specifies the status of health check.\nThe valid values are as follows:\n","type":"number"},"type":{"description":"Specifies the type of the channel.\nThe valid values are as follows:\n","type":"number"}},"type":"object"},"type":"object"},"opentelekomcloud:index/asConfigurationV1:AsConfigurationV1":{"description":"Up-to-date reference of API arguments for AS configuration you can get at\n[documentation portal](https://docs.otc.t-systems.com/auto-scaling/api-ref/apis/as_configurations)\n\nManages a V1 AS Configuration resource within OpenTelekomCloud.\n\n## Example Usage\n\n","inputProperties":{"asConfigurationV1Id":{"description":"Specifies the AS configuration ID.\n","type":"string"},"instanceConfig":{"$ref":"#/types/opentelekomcloud:index%2FAsConfigurationV1InstanceConfig:AsConfigurationV1InstanceConfig","description":"The information about instance configurations. The<span pulumi-lang-nodejs=\" instanceConfig\n\" pulumi-lang-dotnet=\" InstanceConfig\n\" pulumi-lang-go=\" instanceConfig\n\" pulumi-lang-python=\" instance_config\n\" pulumi-lang-yaml=\" instanceConfig\n\" pulumi-lang-java=\" instanceConfig\n\"> instance_config\n</span>dictionary data structure is documented below.\n"},"region":{"description":"The region in which to obtain the V1 AutoScaling client. If omitted, the\n<span pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\">`region`</span> argument of the provider is used. Changing this creates a new group.\n","type":"string"},"scalingConfigurationName":{"description":"The name of the AS configuration. The name can contain letters,\ndigits, underscores(_), and hyphens(-), and cannot exceed 64 characters.\n","type":"string"}},"properties":{"asConfigurationV1Id":{"description":"Specifies the AS configuration ID.\n","type":"string"},"instanceConfig":{"$ref":"#/types/opentelekomcloud:index%2FAsConfigurationV1InstanceConfig:AsConfigurationV1InstanceConfig","description":"The information about instance configurations. The<span pulumi-lang-nodejs=\" instanceConfig\n\" pulumi-lang-dotnet=\" InstanceConfig\n\" pulumi-lang-go=\" instanceConfig\n\" pulumi-lang-python=\" instance_config\n\" pulumi-lang-yaml=\" instanceConfig\n\" pulumi-lang-java=\" instanceConfig\n\"> instance_config\n</span>dictionary data structure is documented below.\n"},"region":{"description":"The region in which to obtain the V1 AutoScaling client. If omitted, the\n<span pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\">`region`</span> argument of the provider is used. Changing this creates a new group.\n","type":"string"},"scalingConfigurationName":{"description":"The name of the AS configuration. The name can contain letters,\ndigits, underscores(_), and hyphens(-), and cannot exceed 64 characters.\n","type":"string"}},"required":["asConfigurationV1Id","instanceConfig","region","scalingConfigurationName"],"requiredInputs":["instanceConfig","scalingConfigurationName"],"stateInputs":{"description":"Input properties used for looking up and filtering AsConfigurationV1 resources.\n","properties":{"asConfigurationV1Id":{"description":"Specifies the AS configuration ID.\n","type":"string"},"instanceConfig":{"$ref":"#/types/opentelekomcloud:index%2FAsConfigurationV1InstanceConfig:AsConfigurationV1InstanceConfig","description":"The information about instance configurations. The<span pulumi-lang-nodejs=\" instanceConfig\n\" pulumi-lang-dotnet=\" InstanceConfig\n\" pulumi-lang-go=\" instanceConfig\n\" pulumi-lang-python=\" instance_config\n\" pulumi-lang-yaml=\" instanceConfig\n\" pulumi-lang-java=\" instanceConfig\n\"> instance_config\n</span>dictionary data structure is documented below.\n"},"region":{"description":"The region in which to obtain the V1 AutoScaling client. If omitted, the\n<span pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\">`region`</span> argument of the provider is used. Changing this creates a new group.\n","type":"string"},"scalingConfigurationName":{"description":"The name of the AS configuration. The name can contain letters,\ndigits, underscores(_), and hyphens(-), and cannot exceed 64 characters.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/asGroupV1:AsGroupV1":{"description":"Up-to-date reference of API arguments for AS group you can get at\n[documentation portal](https://docs.otc.t-systems.com/auto-scaling/api-ref/apis/as_groups)\n\nManages a V1 Autoscaling Group resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Basic Autoscaling Group\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst asGroup = new opentelekomcloud.AsGroupV1(\"as_group\", {\n    scalingGroupName: \"as_group\",\n    scalingConfigurationId: \"37e310f5-db9d-446e-9135-c625f9c2bbfc\",\n    desireInstanceNumber: 2,\n    minInstanceNumber: 0,\n    maxInstanceNumber: 10,\n    networks: [{\n        id: \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    }],\n    securityGroups: {\n        id: \"45e4c6de-6bf0-4843-8953-2babde3d4810\",\n    },\n    vpcId: \"1d8f7e7c-fe04-4cf5-85ac-08b478c290e9\",\n    deletePublicip: true,\n    deleteInstances: \"yes\",\n    tags: {\n        muh: \"kuh\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nas_group = opentelekomcloud.AsGroupV1(\"as_group\",\n    scaling_group_name=\"as_group\",\n    scaling_configuration_id=\"37e310f5-db9d-446e-9135-c625f9c2bbfc\",\n    desire_instance_number=2,\n    min_instance_number=0,\n    max_instance_number=10,\n    networks=[{\n        \"id\": \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    }],\n    security_groups={\n        \"id\": \"45e4c6de-6bf0-4843-8953-2babde3d4810\",\n    },\n    vpc_id=\"1d8f7e7c-fe04-4cf5-85ac-08b478c290e9\",\n    delete_publicip=True,\n    delete_instances=\"yes\",\n    tags={\n        \"muh\": \"kuh\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var asGroup = new Opentelekomcloud.AsGroupV1(\"as_group\", new()\n    {\n        ScalingGroupName = \"as_group\",\n        ScalingConfigurationId = \"37e310f5-db9d-446e-9135-c625f9c2bbfc\",\n        DesireInstanceNumber = 2,\n        MinInstanceNumber = 0,\n        MaxInstanceNumber = 10,\n        Networks = new[]\n        {\n            new Opentelekomcloud.Inputs.AsGroupV1NetworkArgs\n            {\n                Id = \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n            },\n        },\n        SecurityGroups = new Opentelekomcloud.Inputs.AsGroupV1SecurityGroupsArgs\n        {\n            Id = \"45e4c6de-6bf0-4843-8953-2babde3d4810\",\n        },\n        VpcId = \"1d8f7e7c-fe04-4cf5-85ac-08b478c290e9\",\n        DeletePublicip = true,\n        DeleteInstances = \"yes\",\n        Tags = \n        {\n            { \"muh\", \"kuh\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewAsGroupV1(ctx, \"as_group\", &opentelekomcloud.AsGroupV1Args{\n\t\t\tScalingGroupName:       pulumi.String(\"as_group\"),\n\t\t\tScalingConfigurationId: pulumi.String(\"37e310f5-db9d-446e-9135-c625f9c2bbfc\"),\n\t\t\tDesireInstanceNumber:   pulumi.Float64(2),\n\t\t\tMinInstanceNumber:      pulumi.Float64(0),\n\t\t\tMaxInstanceNumber:      pulumi.Float64(10),\n\t\t\tNetworks: opentelekomcloud.AsGroupV1NetworkArray{\n\t\t\t\t&opentelekomcloud.AsGroupV1NetworkArgs{\n\t\t\t\t\tId: pulumi.String(\"ad091b52-742f-469e-8f3c-fd81cadf0743\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSecurityGroups: &opentelekomcloud.AsGroupV1SecurityGroupsArgs{\n\t\t\t\tId: pulumi.String(\"45e4c6de-6bf0-4843-8953-2babde3d4810\"),\n\t\t\t},\n\t\t\tVpcId:           pulumi.String(\"1d8f7e7c-fe04-4cf5-85ac-08b478c290e9\"),\n\t\t\tDeletePublicip:  pulumi.Bool(true),\n\t\t\tDeleteInstances: pulumi.String(\"yes\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"muh\": pulumi.String(\"kuh\"),\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.opentelekomcloud.AsGroupV1;\nimport com.pulumi.opentelekomcloud.AsGroupV1Args;\nimport com.pulumi.opentelekomcloud.inputs.AsGroupV1NetworkArgs;\nimport com.pulumi.opentelekomcloud.inputs.AsGroupV1SecurityGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var asGroup = new AsGroupV1(\"asGroup\", AsGroupV1Args.builder()\n            .scalingGroupName(\"as_group\")\n            .scalingConfigurationId(\"37e310f5-db9d-446e-9135-c625f9c2bbfc\")\n            .desireInstanceNumber(2.0)\n            .minInstanceNumber(0.0)\n            .maxInstanceNumber(10.0)\n            .networks(AsGroupV1NetworkArgs.builder()\n                .id(\"ad091b52-742f-469e-8f3c-fd81cadf0743\")\n                .build())\n            .securityGroups(AsGroupV1SecurityGroupsArgs.builder()\n                .id(\"45e4c6de-6bf0-4843-8953-2babde3d4810\")\n                .build())\n            .vpcId(\"1d8f7e7c-fe04-4cf5-85ac-08b478c290e9\")\n            .deletePublicip(true)\n            .deleteInstances(\"yes\")\n            .tags(Map.of(\"muh\", \"kuh\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  asGroup:\n    type: opentelekomcloud:AsGroupV1\n    name: as_group\n    properties:\n      scalingGroupName: as_group\n      scalingConfigurationId: 37e310f5-db9d-446e-9135-c625f9c2bbfc\n      desireInstanceNumber: 2\n      minInstanceNumber: 0\n      maxInstanceNumber: 10\n      networks:\n        - id: ad091b52-742f-469e-8f3c-fd81cadf0743\n      securityGroups:\n        id: 45e4c6de-6bf0-4843-8953-2babde3d4810\n      vpcId: 1d8f7e7c-fe04-4cf5-85ac-08b478c290e9\n      deletePublicip: true\n      deleteInstances: yes\n      tags:\n        muh: kuh\n```\n<!--End PulumiCodeChooser -->\n\n### Autoscaling Group Only Remove Members When Scaling Down\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst asGroupOnlyRemoveMembers = new opentelekomcloud.AsGroupV1(\"as_group_only_remove_members\", {\n    scalingGroupName: \"as_group_only_remove_members\",\n    scalingConfigurationId: \"37e310f5-db9d-446e-9135-c625f9c2bbfc\",\n    desireInstanceNumber: 2,\n    minInstanceNumber: 0,\n    maxInstanceNumber: 10,\n    networks: [{\n        id: \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    }],\n    securityGroups: {\n        id: \"45e4c6de-6bf0-4843-8953-2babde3d4810\",\n    },\n    vpcId: \"1d8f7e7c-fe04-4cf5-85ac-08b478c290e9\",\n    deletePublicip: true,\n    deleteInstances: \"no\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nas_group_only_remove_members = opentelekomcloud.AsGroupV1(\"as_group_only_remove_members\",\n    scaling_group_name=\"as_group_only_remove_members\",\n    scaling_configuration_id=\"37e310f5-db9d-446e-9135-c625f9c2bbfc\",\n    desire_instance_number=2,\n    min_instance_number=0,\n    max_instance_number=10,\n    networks=[{\n        \"id\": \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    }],\n    security_groups={\n        \"id\": \"45e4c6de-6bf0-4843-8953-2babde3d4810\",\n    },\n    vpc_id=\"1d8f7e7c-fe04-4cf5-85ac-08b478c290e9\",\n    delete_publicip=True,\n    delete_instances=\"no\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var asGroupOnlyRemoveMembers = new Opentelekomcloud.AsGroupV1(\"as_group_only_remove_members\", new()\n    {\n        ScalingGroupName = \"as_group_only_remove_members\",\n        ScalingConfigurationId = \"37e310f5-db9d-446e-9135-c625f9c2bbfc\",\n        DesireInstanceNumber = 2,\n        MinInstanceNumber = 0,\n        MaxInstanceNumber = 10,\n        Networks = new[]\n        {\n            new Opentelekomcloud.Inputs.AsGroupV1NetworkArgs\n            {\n                Id = \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n            },\n        },\n        SecurityGroups = new Opentelekomcloud.Inputs.AsGroupV1SecurityGroupsArgs\n        {\n            Id = \"45e4c6de-6bf0-4843-8953-2babde3d4810\",\n        },\n        VpcId = \"1d8f7e7c-fe04-4cf5-85ac-08b478c290e9\",\n        DeletePublicip = true,\n        DeleteInstances = \"no\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewAsGroupV1(ctx, \"as_group_only_remove_members\", &opentelekomcloud.AsGroupV1Args{\n\t\t\tScalingGroupName:       pulumi.String(\"as_group_only_remove_members\"),\n\t\t\tScalingConfigurationId: pulumi.String(\"37e310f5-db9d-446e-9135-c625f9c2bbfc\"),\n\t\t\tDesireInstanceNumber:   pulumi.Float64(2),\n\t\t\tMinInstanceNumber:      pulumi.Float64(0),\n\t\t\tMaxInstanceNumber:      pulumi.Float64(10),\n\t\t\tNetworks: opentelekomcloud.AsGroupV1NetworkArray{\n\t\t\t\t&opentelekomcloud.AsGroupV1NetworkArgs{\n\t\t\t\t\tId: pulumi.String(\"ad091b52-742f-469e-8f3c-fd81cadf0743\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSecurityGroups: &opentelekomcloud.AsGroupV1SecurityGroupsArgs{\n\t\t\t\tId: pulumi.String(\"45e4c6de-6bf0-4843-8953-2babde3d4810\"),\n\t\t\t},\n\t\t\tVpcId:           pulumi.String(\"1d8f7e7c-fe04-4cf5-85ac-08b478c290e9\"),\n\t\t\tDeletePublicip:  pulumi.Bool(true),\n\t\t\tDeleteInstances: pulumi.String(\"no\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.AsGroupV1;\nimport com.pulumi.opentelekomcloud.AsGroupV1Args;\nimport com.pulumi.opentelekomcloud.inputs.AsGroupV1NetworkArgs;\nimport com.pulumi.opentelekomcloud.inputs.AsGroupV1SecurityGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var asGroupOnlyRemoveMembers = new AsGroupV1(\"asGroupOnlyRemoveMembers\", AsGroupV1Args.builder()\n            .scalingGroupName(\"as_group_only_remove_members\")\n            .scalingConfigurationId(\"37e310f5-db9d-446e-9135-c625f9c2bbfc\")\n            .desireInstanceNumber(2.0)\n            .minInstanceNumber(0.0)\n            .maxInstanceNumber(10.0)\n            .networks(AsGroupV1NetworkArgs.builder()\n                .id(\"ad091b52-742f-469e-8f3c-fd81cadf0743\")\n                .build())\n            .securityGroups(AsGroupV1SecurityGroupsArgs.builder()\n                .id(\"45e4c6de-6bf0-4843-8953-2babde3d4810\")\n                .build())\n            .vpcId(\"1d8f7e7c-fe04-4cf5-85ac-08b478c290e9\")\n            .deletePublicip(true)\n            .deleteInstances(\"no\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  asGroupOnlyRemoveMembers:\n    type: opentelekomcloud:AsGroupV1\n    name: as_group_only_remove_members\n    properties:\n      scalingGroupName: as_group_only_remove_members\n      scalingConfigurationId: 37e310f5-db9d-446e-9135-c625f9c2bbfc\n      desireInstanceNumber: 2\n      minInstanceNumber: 0\n      maxInstanceNumber: 10\n      networks:\n        - id: ad091b52-742f-469e-8f3c-fd81cadf0743\n      securityGroups:\n        id: 45e4c6de-6bf0-4843-8953-2babde3d4810\n      vpcId: 1d8f7e7c-fe04-4cf5-85ac-08b478c290e9\n      deletePublicip: true\n      deleteInstances: no\n```\n<!--End PulumiCodeChooser -->\n\n### Autoscaling Group With ELB Listener\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst asListener = new opentelekomcloud.LbListenerV2(\"as_listener\", {\n    name: \"as_listener\",\n    description: \"as test listener\",\n    protocol: \"TCP\",\n    protocolPort: 80,\n    loadbalancerId: \"cba48790-baf5-4446-adb3-02069a916e97\",\n});\nconst pool1 = new opentelekomcloud.LbPoolV2(\"pool_1\", {\n    name: \"pool_1\",\n    protocol: \"HTTP\",\n    lbMethod: \"ROUND_ROBIN\",\n    listenerId: asListener.lbListenerV2Id,\n});\nconst asGroupWithElb = new opentelekomcloud.AsGroupV1(\"as_group_with_elb\", {\n    scalingGroupName: \"as_group_with_elb\",\n    scalingConfigurationId: \"37e310f5-db9d-446e-9135-c625f9c2bbfc\",\n    desireInstanceNumber: 2,\n    minInstanceNumber: 0,\n    maxInstanceNumber: 10,\n    networks: [{\n        id: \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    }],\n    securityGroups: {\n        id: \"45e4c6de-6bf0-4843-8953-2babde3d4810\",\n    },\n    vpcId: \"1d8f7e7c-fe04-4cf5-85ac-08b478c290e9\",\n    deletePublicip: true,\n    deleteInstances: \"yes\",\n    lbaasListeners: [{\n        poolId: pool1.lbPoolV2Id,\n        protocolPort: asListener.protocolPort,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nas_listener = opentelekomcloud.LbListenerV2(\"as_listener\",\n    name=\"as_listener\",\n    description=\"as test listener\",\n    protocol=\"TCP\",\n    protocol_port=80,\n    loadbalancer_id=\"cba48790-baf5-4446-adb3-02069a916e97\")\npool1 = opentelekomcloud.LbPoolV2(\"pool_1\",\n    name=\"pool_1\",\n    protocol=\"HTTP\",\n    lb_method=\"ROUND_ROBIN\",\n    listener_id=as_listener.lb_listener_v2_id)\nas_group_with_elb = opentelekomcloud.AsGroupV1(\"as_group_with_elb\",\n    scaling_group_name=\"as_group_with_elb\",\n    scaling_configuration_id=\"37e310f5-db9d-446e-9135-c625f9c2bbfc\",\n    desire_instance_number=2,\n    min_instance_number=0,\n    max_instance_number=10,\n    networks=[{\n        \"id\": \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    }],\n    security_groups={\n        \"id\": \"45e4c6de-6bf0-4843-8953-2babde3d4810\",\n    },\n    vpc_id=\"1d8f7e7c-fe04-4cf5-85ac-08b478c290e9\",\n    delete_publicip=True,\n    delete_instances=\"yes\",\n    lbaas_listeners=[{\n        \"pool_id\": pool1.lb_pool_v2_id,\n        \"protocol_port\": as_listener.protocol_port,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var asListener = new Opentelekomcloud.LbListenerV2(\"as_listener\", new()\n    {\n        Name = \"as_listener\",\n        Description = \"as test listener\",\n        Protocol = \"TCP\",\n        ProtocolPort = 80,\n        LoadbalancerId = \"cba48790-baf5-4446-adb3-02069a916e97\",\n    });\n\n    var pool1 = new Opentelekomcloud.LbPoolV2(\"pool_1\", new()\n    {\n        Name = \"pool_1\",\n        Protocol = \"HTTP\",\n        LbMethod = \"ROUND_ROBIN\",\n        ListenerId = asListener.LbListenerV2Id,\n    });\n\n    var asGroupWithElb = new Opentelekomcloud.AsGroupV1(\"as_group_with_elb\", new()\n    {\n        ScalingGroupName = \"as_group_with_elb\",\n        ScalingConfigurationId = \"37e310f5-db9d-446e-9135-c625f9c2bbfc\",\n        DesireInstanceNumber = 2,\n        MinInstanceNumber = 0,\n        MaxInstanceNumber = 10,\n        Networks = new[]\n        {\n            new Opentelekomcloud.Inputs.AsGroupV1NetworkArgs\n            {\n                Id = \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n            },\n        },\n        SecurityGroups = new Opentelekomcloud.Inputs.AsGroupV1SecurityGroupsArgs\n        {\n            Id = \"45e4c6de-6bf0-4843-8953-2babde3d4810\",\n        },\n        VpcId = \"1d8f7e7c-fe04-4cf5-85ac-08b478c290e9\",\n        DeletePublicip = true,\n        DeleteInstances = \"yes\",\n        LbaasListeners = new[]\n        {\n            new Opentelekomcloud.Inputs.AsGroupV1LbaasListenerArgs\n            {\n                PoolId = pool1.LbPoolV2Id,\n                ProtocolPort = asListener.ProtocolPort,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tasListener, err := opentelekomcloud.NewLbListenerV2(ctx, \"as_listener\", &opentelekomcloud.LbListenerV2Args{\n\t\t\tName:           pulumi.String(\"as_listener\"),\n\t\t\tDescription:    pulumi.String(\"as test listener\"),\n\t\t\tProtocol:       pulumi.String(\"TCP\"),\n\t\t\tProtocolPort:   pulumi.Float64(80),\n\t\t\tLoadbalancerId: pulumi.String(\"cba48790-baf5-4446-adb3-02069a916e97\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpool1, err := opentelekomcloud.NewLbPoolV2(ctx, \"pool_1\", &opentelekomcloud.LbPoolV2Args{\n\t\t\tName:       pulumi.String(\"pool_1\"),\n\t\t\tProtocol:   pulumi.String(\"HTTP\"),\n\t\t\tLbMethod:   pulumi.String(\"ROUND_ROBIN\"),\n\t\t\tListenerId: asListener.LbListenerV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewAsGroupV1(ctx, \"as_group_with_elb\", &opentelekomcloud.AsGroupV1Args{\n\t\t\tScalingGroupName:       pulumi.String(\"as_group_with_elb\"),\n\t\t\tScalingConfigurationId: pulumi.String(\"37e310f5-db9d-446e-9135-c625f9c2bbfc\"),\n\t\t\tDesireInstanceNumber:   pulumi.Float64(2),\n\t\t\tMinInstanceNumber:      pulumi.Float64(0),\n\t\t\tMaxInstanceNumber:      pulumi.Float64(10),\n\t\t\tNetworks: opentelekomcloud.AsGroupV1NetworkArray{\n\t\t\t\t&opentelekomcloud.AsGroupV1NetworkArgs{\n\t\t\t\t\tId: pulumi.String(\"ad091b52-742f-469e-8f3c-fd81cadf0743\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSecurityGroups: &opentelekomcloud.AsGroupV1SecurityGroupsArgs{\n\t\t\t\tId: pulumi.String(\"45e4c6de-6bf0-4843-8953-2babde3d4810\"),\n\t\t\t},\n\t\t\tVpcId:           pulumi.String(\"1d8f7e7c-fe04-4cf5-85ac-08b478c290e9\"),\n\t\t\tDeletePublicip:  pulumi.Bool(true),\n\t\t\tDeleteInstances: pulumi.String(\"yes\"),\n\t\t\tLbaasListeners: opentelekomcloud.AsGroupV1LbaasListenerArray{\n\t\t\t\t&opentelekomcloud.AsGroupV1LbaasListenerArgs{\n\t\t\t\t\tPoolId:       pool1.LbPoolV2Id,\n\t\t\t\t\tProtocolPort: asListener.ProtocolPort,\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.opentelekomcloud.LbListenerV2;\nimport com.pulumi.opentelekomcloud.LbListenerV2Args;\nimport com.pulumi.opentelekomcloud.LbPoolV2;\nimport com.pulumi.opentelekomcloud.LbPoolV2Args;\nimport com.pulumi.opentelekomcloud.AsGroupV1;\nimport com.pulumi.opentelekomcloud.AsGroupV1Args;\nimport com.pulumi.opentelekomcloud.inputs.AsGroupV1NetworkArgs;\nimport com.pulumi.opentelekomcloud.inputs.AsGroupV1SecurityGroupsArgs;\nimport com.pulumi.opentelekomcloud.inputs.AsGroupV1LbaasListenerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var asListener = new LbListenerV2(\"asListener\", LbListenerV2Args.builder()\n            .name(\"as_listener\")\n            .description(\"as test listener\")\n            .protocol(\"TCP\")\n            .protocolPort(80.0)\n            .loadbalancerId(\"cba48790-baf5-4446-adb3-02069a916e97\")\n            .build());\n\n        var pool1 = new LbPoolV2(\"pool1\", LbPoolV2Args.builder()\n            .name(\"pool_1\")\n            .protocol(\"HTTP\")\n            .lbMethod(\"ROUND_ROBIN\")\n            .listenerId(asListener.lbListenerV2Id())\n            .build());\n\n        var asGroupWithElb = new AsGroupV1(\"asGroupWithElb\", AsGroupV1Args.builder()\n            .scalingGroupName(\"as_group_with_elb\")\n            .scalingConfigurationId(\"37e310f5-db9d-446e-9135-c625f9c2bbfc\")\n            .desireInstanceNumber(2.0)\n            .minInstanceNumber(0.0)\n            .maxInstanceNumber(10.0)\n            .networks(AsGroupV1NetworkArgs.builder()\n                .id(\"ad091b52-742f-469e-8f3c-fd81cadf0743\")\n                .build())\n            .securityGroups(AsGroupV1SecurityGroupsArgs.builder()\n                .id(\"45e4c6de-6bf0-4843-8953-2babde3d4810\")\n                .build())\n            .vpcId(\"1d8f7e7c-fe04-4cf5-85ac-08b478c290e9\")\n            .deletePublicip(true)\n            .deleteInstances(\"yes\")\n            .lbaasListeners(AsGroupV1LbaasListenerArgs.builder()\n                .poolId(pool1.lbPoolV2Id())\n                .protocolPort(asListener.protocolPort())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  asGroupWithElb:\n    type: opentelekomcloud:AsGroupV1\n    name: as_group_with_elb\n    properties:\n      scalingGroupName: as_group_with_elb\n      scalingConfigurationId: 37e310f5-db9d-446e-9135-c625f9c2bbfc\n      desireInstanceNumber: 2\n      minInstanceNumber: 0\n      maxInstanceNumber: 10\n      networks:\n        - id: ad091b52-742f-469e-8f3c-fd81cadf0743\n      securityGroups:\n        id: 45e4c6de-6bf0-4843-8953-2babde3d4810\n      vpcId: 1d8f7e7c-fe04-4cf5-85ac-08b478c290e9\n      deletePublicip: true\n      deleteInstances: yes\n      lbaasListeners:\n        - poolId: ${pool1.lbPoolV2Id}\n          protocolPort: ${asListener.protocolPort}\n  asListener:\n    type: opentelekomcloud:LbListenerV2\n    name: as_listener\n    properties:\n      name: as_listener\n      description: as test listener\n      protocol: TCP\n      protocolPort: 80\n      loadbalancerId: cba48790-baf5-4446-adb3-02069a916e97\n  pool1:\n    type: opentelekomcloud:LbPoolV2\n    name: pool_1\n    properties:\n      name: pool_1\n      protocol: HTTP\n      lbMethod: ROUND_ROBIN\n      listenerId: ${asListener.lbListenerV2Id}\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"asGroupV1Id":{"type":"string"},"availableZones":{"description":"Specifies the AZ information. The ECS\nassociated with a scaling action will be created in a specified AZ.\nIf you do not specify an AZ, the system automatically specifies one.\n","items":{"type":"string"},"type":"array"},"coolDownTime":{"description":"The cooling duration (in seconds). The value ranges\nfrom 0 to 86400, and is 900 by default.\n","type":"number"},"deleteInstances":{"description":"Whether to delete the instances in the AS group\nwhen deleting the AS group. The options are <span pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\">`yes`</span> and <span pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\">`no`</span>.\n","type":"string"},"deletePublicip":{"description":"Whether to delete the elastic IP address bound to the\ninstances of AS group when deleting the instances. The options are <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> and <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"desireInstanceNumber":{"description":"The expected number of instances. The default\nvalue is the minimum number of instances. The value ranges from the minimum number of\ninstances to the maximum number of instances.\n","type":"number"},"enable":{"description":"It specifies whether to enable or disable the AS group. Supported values: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>, <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\nDefault value: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"healthPeriodicAuditGracePeriod":{"description":"The grace period for instance health check.\nThe unit is second and value range is 0-86400. The default value is 600. The health check grace\nperiod starts after an instance is added to an AS group and is enabled. The AS group will start\nchecking the instance status only after the grace period ends. This parameter is valid only when\nthe instance health check method of the AS group is ELB_AUDIT.\n","type":"number"},"healthPeriodicAuditMethod":{"description":"The health check method for instances\nin the AS group. The health check methods include `ELB_AUDIT` and `NOVA_AUDIT`.\nIf load balancing is configured, the default value of this parameter is `ELB_AUDIT`.\nOtherwise, the default value is `NOVA_AUDIT`.\n","type":"string"},"healthPeriodicAuditTime":{"description":"The health check period for instances.\nThe value can be 1, 5, 15, 60, or 180 in the unit of minutes. If this parameter\nis not specified, the default value is 5. If the value is set to 0, health check\nis performed every 10 seconds.\n","type":"number"},"instanceTerminatePolicy":{"description":"The instance removal policy. The policy has\nfour options: `OLD_CONFIG_OLD_INSTANCE` (default), `OLD_CONFIG_NEW_INSTANCE`,\n`OLD_INSTANCE`, and `NEW_INSTANCE`.\n","type":"string"},"lbListenerId":{"deprecationMessage":"Deprecated","description":"**DEPRECATED** - (Optional) The Classic LB listener IDs. The system\nsupports up to six Classic LB listeners, the IDs of which are separated using a comma (,).\nThis parameter is alternative to <span pulumi-lang-nodejs=\"`lbaasListeners`\" pulumi-lang-dotnet=\"`LbaasListeners`\" pulumi-lang-go=\"`lbaasListeners`\" pulumi-lang-python=\"`lbaas_listeners`\" pulumi-lang-yaml=\"`lbaasListeners`\" pulumi-lang-java=\"`lbaasListeners`\">`lbaas_listeners`</span>.\n","type":"string"},"lbaasListeners":{"description":"An array of one or more Enhanced Load Balancer.\nThe system supports the binding of up to six Enhanced Load Balancers. The field is\nalternative to <span pulumi-lang-nodejs=\"`lbListenerId`\" pulumi-lang-dotnet=\"`LbListenerId`\" pulumi-lang-go=\"`lbListenerId`\" pulumi-lang-python=\"`lb_listener_id`\" pulumi-lang-yaml=\"`lbListenerId`\" pulumi-lang-java=\"`lbListenerId`\">`lb_listener_id`</span>. The <span pulumi-lang-nodejs=\"`lbaasListeners`\" pulumi-lang-dotnet=\"`LbaasListeners`\" pulumi-lang-go=\"`lbaasListeners`\" pulumi-lang-python=\"`lbaas_listeners`\" pulumi-lang-yaml=\"`lbaasListeners`\" pulumi-lang-java=\"`lbaasListeners`\">`lbaas_listeners`</span> object structure is\ndocumented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FAsGroupV1LbaasListener:AsGroupV1LbaasListener"},"type":"array"},"maxInstanceNumber":{"description":"The maximum number of instances.\nThe default value is 0.\n","type":"number"},"minInstanceNumber":{"description":"The minimum number of instances.\nThe default value is 0.\n","type":"number"},"networks":{"description":"An array of one or more network IDs.\nThe system supports up to five networks. The networks object structure\nis documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FAsGroupV1Network:AsGroupV1Network"},"type":"array"},"notifications":{"description":"The notification mode. The system only supports `EMAIL`\nmode which refers to notification by email.\n","items":{"type":"string"},"type":"array"},"region":{"type":"string"},"scalingConfigurationId":{"description":"The configuration ID which defines\nconfigurations of instances in the AS group.\n","type":"string"},"scalingGroupName":{"description":"The name of the scaling group. The name can contain letters,\ndigits, underscores(_), and hyphens(-),and cannot exceed 64 characters.\n","type":"string"},"securityGroups":{"$ref":"#/types/opentelekomcloud:index%2FAsGroupV1SecurityGroups:AsGroupV1SecurityGroups","description":"An array of security group IDs to associate with the group.\nA maximum of one security group can be selected. The <span pulumi-lang-nodejs=\"`securityGroups`\" pulumi-lang-dotnet=\"`SecurityGroups`\" pulumi-lang-go=\"`securityGroups`\" pulumi-lang-python=\"`security_groups`\" pulumi-lang-yaml=\"`securityGroups`\" pulumi-lang-java=\"`securityGroups`\">`security_groups`</span> object structure is\ndocumented below.\n"},"tags":{"additionalProperties":{"type":"string"},"description":"See Argument Reference above.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FAsGroupV1Timeouts:AsGroupV1Timeouts"},"vpcId":{"description":"The VPC ID. Changing this creates a new group.\n","type":"string"}},"properties":{"asGroupV1Id":{"type":"string"},"availableZones":{"description":"Specifies the AZ information. The ECS\nassociated with a scaling action will be created in a specified AZ.\nIf you do not specify an AZ, the system automatically specifies one.\n","items":{"type":"string"},"type":"array"},"coolDownTime":{"description":"The cooling duration (in seconds). The value ranges\nfrom 0 to 86400, and is 900 by default.\n","type":"number"},"currentInstanceNumber":{"description":"Indicates the number of current instances in the AS group.\n","type":"number"},"deleteInstances":{"description":"Whether to delete the instances in the AS group\nwhen deleting the AS group. The options are <span pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\">`yes`</span> and <span pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\">`no`</span>.\n","type":"string"},"deletePublicip":{"description":"Whether to delete the elastic IP address bound to the\ninstances of AS group when deleting the instances. The options are <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> and <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"desireInstanceNumber":{"description":"The expected number of instances. The default\nvalue is the minimum number of instances. The value ranges from the minimum number of\ninstances to the maximum number of instances.\n","type":"number"},"enable":{"description":"It specifies whether to enable or disable the AS group. Supported values: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>, <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\nDefault value: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"healthPeriodicAuditGracePeriod":{"description":"The grace period for instance health check.\nThe unit is second and value range is 0-86400. The default value is 600. The health check grace\nperiod starts after an instance is added to an AS group and is enabled. The AS group will start\nchecking the instance status only after the grace period ends. This parameter is valid only when\nthe instance health check method of the AS group is ELB_AUDIT.\n","type":"number"},"healthPeriodicAuditMethod":{"description":"The health check method for instances\nin the AS group. The health check methods include `ELB_AUDIT` and `NOVA_AUDIT`.\nIf load balancing is configured, the default value of this parameter is `ELB_AUDIT`.\nOtherwise, the default value is `NOVA_AUDIT`.\n","type":"string"},"healthPeriodicAuditTime":{"description":"The health check period for instances.\nThe value can be 1, 5, 15, 60, or 180 in the unit of minutes. If this parameter\nis not specified, the default value is 5. If the value is set to 0, health check\nis performed every 10 seconds.\n","type":"number"},"instanceTerminatePolicy":{"description":"The instance removal policy. The policy has\nfour options: `OLD_CONFIG_OLD_INSTANCE` (default), `OLD_CONFIG_NEW_INSTANCE`,\n`OLD_INSTANCE`, and `NEW_INSTANCE`.\n","type":"string"},"instances":{"description":"The instances IDs of the AS group.\n","items":{"type":"string"},"type":"array"},"lbListenerId":{"deprecationMessage":"Deprecated","description":"**DEPRECATED** - (Optional) The Classic LB listener IDs. The system\nsupports up to six Classic LB listeners, the IDs of which are separated using a comma (,).\nThis parameter is alternative to <span pulumi-lang-nodejs=\"`lbaasListeners`\" pulumi-lang-dotnet=\"`LbaasListeners`\" pulumi-lang-go=\"`lbaasListeners`\" pulumi-lang-python=\"`lbaas_listeners`\" pulumi-lang-yaml=\"`lbaasListeners`\" pulumi-lang-java=\"`lbaasListeners`\">`lbaas_listeners`</span>.\n","type":"string"},"lbaasListeners":{"description":"An array of one or more Enhanced Load Balancer.\nThe system supports the binding of up to six Enhanced Load Balancers. The field is\nalternative to <span pulumi-lang-nodejs=\"`lbListenerId`\" pulumi-lang-dotnet=\"`LbListenerId`\" pulumi-lang-go=\"`lbListenerId`\" pulumi-lang-python=\"`lb_listener_id`\" pulumi-lang-yaml=\"`lbListenerId`\" pulumi-lang-java=\"`lbListenerId`\">`lb_listener_id`</span>. The <span pulumi-lang-nodejs=\"`lbaasListeners`\" pulumi-lang-dotnet=\"`LbaasListeners`\" pulumi-lang-go=\"`lbaasListeners`\" pulumi-lang-python=\"`lbaas_listeners`\" pulumi-lang-yaml=\"`lbaasListeners`\" pulumi-lang-java=\"`lbaasListeners`\">`lbaas_listeners`</span> object structure is\ndocumented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FAsGroupV1LbaasListener:AsGroupV1LbaasListener"},"type":"array"},"maxInstanceNumber":{"description":"The maximum number of instances.\nThe default value is 0.\n","type":"number"},"minInstanceNumber":{"description":"The minimum number of instances.\nThe default value is 0.\n","type":"number"},"networks":{"description":"An array of one or more network IDs.\nThe system supports up to five networks. The networks object structure\nis documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FAsGroupV1Network:AsGroupV1Network"},"type":"array"},"notifications":{"description":"The notification mode. The system only supports `EMAIL`\nmode which refers to notification by email.\n","items":{"type":"string"},"type":"array"},"region":{"type":"string"},"scalingConfigurationId":{"description":"The configuration ID which defines\nconfigurations of instances in the AS group.\n","type":"string"},"scalingGroupName":{"description":"The name of the scaling group. The name can contain letters,\ndigits, underscores(_), and hyphens(-),and cannot exceed 64 characters.\n","type":"string"},"securityGroups":{"$ref":"#/types/opentelekomcloud:index%2FAsGroupV1SecurityGroups:AsGroupV1SecurityGroups","description":"An array of security group IDs to associate with the group.\nA maximum of one security group can be selected. The <span pulumi-lang-nodejs=\"`securityGroups`\" pulumi-lang-dotnet=\"`SecurityGroups`\" pulumi-lang-go=\"`securityGroups`\" pulumi-lang-python=\"`security_groups`\" pulumi-lang-yaml=\"`securityGroups`\" pulumi-lang-java=\"`securityGroups`\">`security_groups`</span> object structure is\ndocumented below.\n"},"status":{"description":"Indicates the status of the AS group.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"See Argument Reference above.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FAsGroupV1Timeouts:AsGroupV1Timeouts"},"vpcId":{"description":"The VPC ID. Changing this creates a new group.\n","type":"string"}},"required":["asGroupV1Id","currentInstanceNumber","deleteInstances","deletePublicip","instances","networks","region","scalingConfigurationId","scalingGroupName","status","vpcId"],"requiredInputs":["deleteInstances","deletePublicip","networks","scalingGroupName","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering AsGroupV1 resources.\n","properties":{"asGroupV1Id":{"type":"string"},"availableZones":{"description":"Specifies the AZ information. The ECS\nassociated with a scaling action will be created in a specified AZ.\nIf you do not specify an AZ, the system automatically specifies one.\n","items":{"type":"string"},"type":"array"},"coolDownTime":{"description":"The cooling duration (in seconds). The value ranges\nfrom 0 to 86400, and is 900 by default.\n","type":"number"},"currentInstanceNumber":{"description":"Indicates the number of current instances in the AS group.\n","type":"number"},"deleteInstances":{"description":"Whether to delete the instances in the AS group\nwhen deleting the AS group. The options are <span pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\">`yes`</span> and <span pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\">`no`</span>.\n","type":"string"},"deletePublicip":{"description":"Whether to delete the elastic IP address bound to the\ninstances of AS group when deleting the instances. The options are <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> and <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"desireInstanceNumber":{"description":"The expected number of instances. The default\nvalue is the minimum number of instances. The value ranges from the minimum number of\ninstances to the maximum number of instances.\n","type":"number"},"enable":{"description":"It specifies whether to enable or disable the AS group. Supported values: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>, <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\nDefault value: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"healthPeriodicAuditGracePeriod":{"description":"The grace period for instance health check.\nThe unit is second and value range is 0-86400. The default value is 600. The health check grace\nperiod starts after an instance is added to an AS group and is enabled. The AS group will start\nchecking the instance status only after the grace period ends. This parameter is valid only when\nthe instance health check method of the AS group is ELB_AUDIT.\n","type":"number"},"healthPeriodicAuditMethod":{"description":"The health check method for instances\nin the AS group. The health check methods include `ELB_AUDIT` and `NOVA_AUDIT`.\nIf load balancing is configured, the default value of this parameter is `ELB_AUDIT`.\nOtherwise, the default value is `NOVA_AUDIT`.\n","type":"string"},"healthPeriodicAuditTime":{"description":"The health check period for instances.\nThe value can be 1, 5, 15, 60, or 180 in the unit of minutes. If this parameter\nis not specified, the default value is 5. If the value is set to 0, health check\nis performed every 10 seconds.\n","type":"number"},"instanceTerminatePolicy":{"description":"The instance removal policy. The policy has\nfour options: `OLD_CONFIG_OLD_INSTANCE` (default), `OLD_CONFIG_NEW_INSTANCE`,\n`OLD_INSTANCE`, and `NEW_INSTANCE`.\n","type":"string"},"instances":{"description":"The instances IDs of the AS group.\n","items":{"type":"string"},"type":"array"},"lbListenerId":{"deprecationMessage":"Deprecated","description":"**DEPRECATED** - (Optional) The Classic LB listener IDs. The system\nsupports up to six Classic LB listeners, the IDs of which are separated using a comma (,).\nThis parameter is alternative to <span pulumi-lang-nodejs=\"`lbaasListeners`\" pulumi-lang-dotnet=\"`LbaasListeners`\" pulumi-lang-go=\"`lbaasListeners`\" pulumi-lang-python=\"`lbaas_listeners`\" pulumi-lang-yaml=\"`lbaasListeners`\" pulumi-lang-java=\"`lbaasListeners`\">`lbaas_listeners`</span>.\n","type":"string"},"lbaasListeners":{"description":"An array of one or more Enhanced Load Balancer.\nThe system supports the binding of up to six Enhanced Load Balancers. The field is\nalternative to <span pulumi-lang-nodejs=\"`lbListenerId`\" pulumi-lang-dotnet=\"`LbListenerId`\" pulumi-lang-go=\"`lbListenerId`\" pulumi-lang-python=\"`lb_listener_id`\" pulumi-lang-yaml=\"`lbListenerId`\" pulumi-lang-java=\"`lbListenerId`\">`lb_listener_id`</span>. The <span pulumi-lang-nodejs=\"`lbaasListeners`\" pulumi-lang-dotnet=\"`LbaasListeners`\" pulumi-lang-go=\"`lbaasListeners`\" pulumi-lang-python=\"`lbaas_listeners`\" pulumi-lang-yaml=\"`lbaasListeners`\" pulumi-lang-java=\"`lbaasListeners`\">`lbaas_listeners`</span> object structure is\ndocumented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FAsGroupV1LbaasListener:AsGroupV1LbaasListener"},"type":"array"},"maxInstanceNumber":{"description":"The maximum number of instances.\nThe default value is 0.\n","type":"number"},"minInstanceNumber":{"description":"The minimum number of instances.\nThe default value is 0.\n","type":"number"},"networks":{"description":"An array of one or more network IDs.\nThe system supports up to five networks. The networks object structure\nis documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FAsGroupV1Network:AsGroupV1Network"},"type":"array"},"notifications":{"description":"The notification mode. The system only supports `EMAIL`\nmode which refers to notification by email.\n","items":{"type":"string"},"type":"array"},"region":{"type":"string"},"scalingConfigurationId":{"description":"The configuration ID which defines\nconfigurations of instances in the AS group.\n","type":"string"},"scalingGroupName":{"description":"The name of the scaling group. The name can contain letters,\ndigits, underscores(_), and hyphens(-),and cannot exceed 64 characters.\n","type":"string"},"securityGroups":{"$ref":"#/types/opentelekomcloud:index%2FAsGroupV1SecurityGroups:AsGroupV1SecurityGroups","description":"An array of security group IDs to associate with the group.\nA maximum of one security group can be selected. The <span pulumi-lang-nodejs=\"`securityGroups`\" pulumi-lang-dotnet=\"`SecurityGroups`\" pulumi-lang-go=\"`securityGroups`\" pulumi-lang-python=\"`security_groups`\" pulumi-lang-yaml=\"`securityGroups`\" pulumi-lang-java=\"`securityGroups`\">`security_groups`</span> object structure is\ndocumented below.\n"},"status":{"description":"Indicates the status of the AS group.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"See Argument Reference above.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FAsGroupV1Timeouts:AsGroupV1Timeouts"},"vpcId":{"description":"The VPC ID. Changing this creates a new group.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/asLifecycleHookV1:AsLifecycleHookV1":{"description":"Up-to-date reference of API arguments for AS lifecycle hook you can get at\n[documentation portal](https://docs.otc.t-systems.com/auto-scaling/api-ref/apis/lifecycle_hooks)\n\nManages a V1 AS Lifecycle Hook resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Autoscaling Lifecycle Hook\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst hthAslifecyclehook = new opentelekomcloud.AsLifecycleHookV1(\"hth_aslifecyclehook\", {\n    scalingLifecycleHookName: \"hth_aslifecyclehook\",\n    scalingGroupId: \"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\",\n    scalingLifecycleHookType: \"INSTANCE_TERMINATING\",\n    defaultResult: \"ABANDON\",\n    defaultTimeout: 3600,\n    notificationTopicUrn: \"urn:smn:regionId:b53e5554fad0494d96206fb84296510b:gsh\",\n    notificationMetadata: \"Some customized notification\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nhth_aslifecyclehook = opentelekomcloud.AsLifecycleHookV1(\"hth_aslifecyclehook\",\n    scaling_lifecycle_hook_name=\"hth_aslifecyclehook\",\n    scaling_group_id=\"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\",\n    scaling_lifecycle_hook_type=\"INSTANCE_TERMINATING\",\n    default_result=\"ABANDON\",\n    default_timeout=3600,\n    notification_topic_urn=\"urn:smn:regionId:b53e5554fad0494d96206fb84296510b:gsh\",\n    notification_metadata=\"Some customized notification\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var hthAslifecyclehook = new Opentelekomcloud.AsLifecycleHookV1(\"hth_aslifecyclehook\", new()\n    {\n        ScalingLifecycleHookName = \"hth_aslifecyclehook\",\n        ScalingGroupId = \"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\",\n        ScalingLifecycleHookType = \"INSTANCE_TERMINATING\",\n        DefaultResult = \"ABANDON\",\n        DefaultTimeout = 3600,\n        NotificationTopicUrn = \"urn:smn:regionId:b53e5554fad0494d96206fb84296510b:gsh\",\n        NotificationMetadata = \"Some customized notification\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewAsLifecycleHookV1(ctx, \"hth_aslifecyclehook\", &opentelekomcloud.AsLifecycleHookV1Args{\n\t\t\tScalingLifecycleHookName: pulumi.String(\"hth_aslifecyclehook\"),\n\t\t\tScalingGroupId:           pulumi.String(\"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\"),\n\t\t\tScalingLifecycleHookType: pulumi.String(\"INSTANCE_TERMINATING\"),\n\t\t\tDefaultResult:            pulumi.String(\"ABANDON\"),\n\t\t\tDefaultTimeout:           pulumi.Float64(3600),\n\t\t\tNotificationTopicUrn:     pulumi.String(\"urn:smn:regionId:b53e5554fad0494d96206fb84296510b:gsh\"),\n\t\t\tNotificationMetadata:     pulumi.String(\"Some customized notification\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.AsLifecycleHookV1;\nimport com.pulumi.opentelekomcloud.AsLifecycleHookV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var hthAslifecyclehook = new AsLifecycleHookV1(\"hthAslifecyclehook\", AsLifecycleHookV1Args.builder()\n            .scalingLifecycleHookName(\"hth_aslifecyclehook\")\n            .scalingGroupId(\"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\")\n            .scalingLifecycleHookType(\"INSTANCE_TERMINATING\")\n            .defaultResult(\"ABANDON\")\n            .defaultTimeout(3600.0)\n            .notificationTopicUrn(\"urn:smn:regionId:b53e5554fad0494d96206fb84296510b:gsh\")\n            .notificationMetadata(\"Some customized notification\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  hthAslifecyclehook:\n    type: opentelekomcloud:AsLifecycleHookV1\n    name: hth_aslifecyclehook\n    properties:\n      scalingLifecycleHookName: hth_aslifecyclehook\n      scalingGroupId: 4579f2f5-cbe8-425a-8f32-53dcb9d9053a\n      scalingLifecycleHookType: INSTANCE_TERMINATING\n      defaultResult: ABANDON\n      defaultTimeout: 3600\n      notificationTopicUrn: urn:smn:regionId:b53e5554fad0494d96206fb84296510b:gsh\n      notificationMetadata: Some customized notification\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAS lifecycle hooks can be imported using their `scaling_lifecycle_hook_name` and related AS group ID, separated by a slash, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/asLifecycleHookV1:AsLifecycleHookV1 test <scaling_group_id>/<scaling_lifecycle_hook_name>\n```\n\n","inputProperties":{"asLifecycleHookV1Id":{"type":"string"},"defaultResult":{"description":"The default lifecycle hook callback operation.  This operation is performed when the timeout duration expires. The values\ncan be `ABANDON` (default value), and `CONTINUE`.\n- ABANDON:\nIf an instance is starting, ABANDON indicates that your customized operations failed, and the instance will be terminated.\nIn such a case, the scaling action fails, and you must create a new instance.\nIf an instance is stopping, ABANDON allows instance termination BUT stops other lifecycle hooks.\n- CONTINUE:\nIf an instance is starting, CONTINUE indicates that your customized operations are successful and the instance can be used.\nIf an instance is stopping, CONTINUE allows instance termination AND the completion of other lifecycle hooks.\n","type":"string"},"defaultTimeout":{"description":"the lifecycle hook timeout duration, which ranges from 60 to 86400 seconds. The default value is 3600.\n","type":"number"},"notificationMetadata":{"description":"A customized notification, which contains no more than 256 characters. The message cannot contain the following characters: <>&'(){}.\n","type":"string"},"notificationTopicUrn":{"description":"The URN of an SMN topic. This parameter specifies a notification object for a lifecycle hook. When an instance is suspended by the lifecycle hook, the SMN service sends a notification to the object. This notification contains the basic instance information, your customized notification content, and the token for controlling lifecycle operations.\n","type":"string"},"scalingGroupId":{"description":"The AS group ID. Changing this creates a new AS lifecycle hook.\n","type":"string"},"scalingLifecycleHookName":{"description":"The name of the AS Lifecycle Hook. The name can contain letters, digits, underscores(_), and hyphens(-),and cannot exceed 32 characters.\n","type":"string"},"scalingLifecycleHookType":{"description":"The lifecycle hook type. The values can be `INSTANCE_TERMINATING`, and `INSTANCE_LAUNCHING`. \n- INSTANCE_TERMINATING: The hook suspends the instance when it is terminated.\n- INSTANCE_LAUNCHING: The hook suspends the instance when it is started.\n","type":"string"}},"properties":{"asLifecycleHookV1Id":{"type":"string"},"createTime":{"description":"(String) Time of creation of the autoscaling lifecycle hook.\n","type":"string"},"defaultResult":{"description":"The default lifecycle hook callback operation.  This operation is performed when the timeout duration expires. The values\ncan be `ABANDON` (default value), and `CONTINUE`.\n- ABANDON:\nIf an instance is starting, ABANDON indicates that your customized operations failed, and the instance will be terminated.\nIn such a case, the scaling action fails, and you must create a new instance.\nIf an instance is stopping, ABANDON allows instance termination BUT stops other lifecycle hooks.\n- CONTINUE:\nIf an instance is starting, CONTINUE indicates that your customized operations are successful and the instance can be used.\nIf an instance is stopping, CONTINUE allows instance termination AND the completion of other lifecycle hooks.\n","type":"string"},"defaultTimeout":{"description":"the lifecycle hook timeout duration, which ranges from 60 to 86400 seconds. The default value is 3600.\n","type":"number"},"notificationMetadata":{"description":"A customized notification, which contains no more than 256 characters. The message cannot contain the following characters: <>&'(){}.\n","type":"string"},"notificationTopicName":{"description":"(String) Name of the associated topic in SMN..\n","type":"string"},"notificationTopicUrn":{"description":"The URN of an SMN topic. This parameter specifies a notification object for a lifecycle hook. When an instance is suspended by the lifecycle hook, the SMN service sends a notification to the object. This notification contains the basic instance information, your customized notification content, and the token for controlling lifecycle operations.\n","type":"string"},"region":{"type":"string"},"scalingGroupId":{"description":"The AS group ID. Changing this creates a new AS lifecycle hook.\n","type":"string"},"scalingLifecycleHookName":{"description":"The name of the AS Lifecycle Hook. The name can contain letters, digits, underscores(_), and hyphens(-),and cannot exceed 32 characters.\n","type":"string"},"scalingLifecycleHookType":{"description":"The lifecycle hook type. The values can be `INSTANCE_TERMINATING`, and `INSTANCE_LAUNCHING`. \n- INSTANCE_TERMINATING: The hook suspends the instance when it is terminated.\n- INSTANCE_LAUNCHING: The hook suspends the instance when it is started.\n","type":"string"}},"required":["asLifecycleHookV1Id","createTime","notificationTopicName","notificationTopicUrn","region","scalingGroupId","scalingLifecycleHookName","scalingLifecycleHookType"],"requiredInputs":["notificationTopicUrn","scalingGroupId","scalingLifecycleHookName","scalingLifecycleHookType"],"stateInputs":{"description":"Input properties used for looking up and filtering AsLifecycleHookV1 resources.\n","properties":{"asLifecycleHookV1Id":{"type":"string"},"createTime":{"description":"(String) Time of creation of the autoscaling lifecycle hook.\n","type":"string"},"defaultResult":{"description":"The default lifecycle hook callback operation.  This operation is performed when the timeout duration expires. The values\ncan be `ABANDON` (default value), and `CONTINUE`.\n- ABANDON:\nIf an instance is starting, ABANDON indicates that your customized operations failed, and the instance will be terminated.\nIn such a case, the scaling action fails, and you must create a new instance.\nIf an instance is stopping, ABANDON allows instance termination BUT stops other lifecycle hooks.\n- CONTINUE:\nIf an instance is starting, CONTINUE indicates that your customized operations are successful and the instance can be used.\nIf an instance is stopping, CONTINUE allows instance termination AND the completion of other lifecycle hooks.\n","type":"string"},"defaultTimeout":{"description":"the lifecycle hook timeout duration, which ranges from 60 to 86400 seconds. The default value is 3600.\n","type":"number"},"notificationMetadata":{"description":"A customized notification, which contains no more than 256 characters. The message cannot contain the following characters: <>&'(){}.\n","type":"string"},"notificationTopicName":{"description":"(String) Name of the associated topic in SMN..\n","type":"string"},"notificationTopicUrn":{"description":"The URN of an SMN topic. This parameter specifies a notification object for a lifecycle hook. When an instance is suspended by the lifecycle hook, the SMN service sends a notification to the object. This notification contains the basic instance information, your customized notification content, and the token for controlling lifecycle operations.\n","type":"string"},"region":{"type":"string"},"scalingGroupId":{"description":"The AS group ID. Changing this creates a new AS lifecycle hook.\n","type":"string"},"scalingLifecycleHookName":{"description":"The name of the AS Lifecycle Hook. The name can contain letters, digits, underscores(_), and hyphens(-),and cannot exceed 32 characters.\n","type":"string"},"scalingLifecycleHookType":{"description":"The lifecycle hook type. The values can be `INSTANCE_TERMINATING`, and `INSTANCE_LAUNCHING`. \n- INSTANCE_TERMINATING: The hook suspends the instance when it is terminated.\n- INSTANCE_LAUNCHING: The hook suspends the instance when it is started.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/asPolicyV1:AsPolicyV1":{"description":"Up-to-date reference of API arguments for AS policy you can get at\n[documentation portal](https://docs.otc.t-systems.com/auto-scaling/api-ref/apis/as_policies)\n\nManages a V1 AS Policy resource within OpenTelekomCloud.\n\n## Example Usage\n\n### AS Recurrence Policy\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst hthAspolicy = new opentelekomcloud.AsPolicyV1(\"hth_aspolicy\", {\n    scalingPolicyName: \"hth_aspolicy\",\n    scalingGroupId: \"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\",\n    coolDownTime: 900,\n    scalingPolicyType: \"RECURRENCE\",\n    scalingPolicyAction: {\n        operation: \"ADD\",\n        instanceNumber: 1,\n    },\n    scheduledPolicy: {\n        launchTime: \"07:00\",\n        recurrenceType: \"Daily\",\n        startTime: \"2017-11-30T12:00Z\",\n        endTime: \"2017-12-30T12:00Z\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nhth_aspolicy = opentelekomcloud.AsPolicyV1(\"hth_aspolicy\",\n    scaling_policy_name=\"hth_aspolicy\",\n    scaling_group_id=\"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\",\n    cool_down_time=900,\n    scaling_policy_type=\"RECURRENCE\",\n    scaling_policy_action={\n        \"operation\": \"ADD\",\n        \"instance_number\": 1,\n    },\n    scheduled_policy={\n        \"launch_time\": \"07:00\",\n        \"recurrence_type\": \"Daily\",\n        \"start_time\": \"2017-11-30T12:00Z\",\n        \"end_time\": \"2017-12-30T12:00Z\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var hthAspolicy = new Opentelekomcloud.AsPolicyV1(\"hth_aspolicy\", new()\n    {\n        ScalingPolicyName = \"hth_aspolicy\",\n        ScalingGroupId = \"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\",\n        CoolDownTime = 900,\n        ScalingPolicyType = \"RECURRENCE\",\n        ScalingPolicyAction = new Opentelekomcloud.Inputs.AsPolicyV1ScalingPolicyActionArgs\n        {\n            Operation = \"ADD\",\n            InstanceNumber = 1,\n        },\n        ScheduledPolicy = new Opentelekomcloud.Inputs.AsPolicyV1ScheduledPolicyArgs\n        {\n            LaunchTime = \"07:00\",\n            RecurrenceType = \"Daily\",\n            StartTime = \"2017-11-30T12:00Z\",\n            EndTime = \"2017-12-30T12:00Z\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewAsPolicyV1(ctx, \"hth_aspolicy\", &opentelekomcloud.AsPolicyV1Args{\n\t\t\tScalingPolicyName: pulumi.String(\"hth_aspolicy\"),\n\t\t\tScalingGroupId:    pulumi.String(\"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\"),\n\t\t\tCoolDownTime:      pulumi.Float64(900),\n\t\t\tScalingPolicyType: pulumi.String(\"RECURRENCE\"),\n\t\t\tScalingPolicyAction: &opentelekomcloud.AsPolicyV1ScalingPolicyActionArgs{\n\t\t\t\tOperation:      pulumi.String(\"ADD\"),\n\t\t\t\tInstanceNumber: pulumi.Float64(1),\n\t\t\t},\n\t\t\tScheduledPolicy: &opentelekomcloud.AsPolicyV1ScheduledPolicyArgs{\n\t\t\t\tLaunchTime:     pulumi.String(\"07:00\"),\n\t\t\t\tRecurrenceType: pulumi.String(\"Daily\"),\n\t\t\t\tStartTime:      pulumi.String(\"2017-11-30T12:00Z\"),\n\t\t\t\tEndTime:        pulumi.String(\"2017-12-30T12:00Z\"),\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.opentelekomcloud.AsPolicyV1;\nimport com.pulumi.opentelekomcloud.AsPolicyV1Args;\nimport com.pulumi.opentelekomcloud.inputs.AsPolicyV1ScalingPolicyActionArgs;\nimport com.pulumi.opentelekomcloud.inputs.AsPolicyV1ScheduledPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var hthAspolicy = new AsPolicyV1(\"hthAspolicy\", AsPolicyV1Args.builder()\n            .scalingPolicyName(\"hth_aspolicy\")\n            .scalingGroupId(\"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\")\n            .coolDownTime(900.0)\n            .scalingPolicyType(\"RECURRENCE\")\n            .scalingPolicyAction(AsPolicyV1ScalingPolicyActionArgs.builder()\n                .operation(\"ADD\")\n                .instanceNumber(1.0)\n                .build())\n            .scheduledPolicy(AsPolicyV1ScheduledPolicyArgs.builder()\n                .launchTime(\"07:00\")\n                .recurrenceType(\"Daily\")\n                .startTime(\"2017-11-30T12:00Z\")\n                .endTime(\"2017-12-30T12:00Z\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  hthAspolicy:\n    type: opentelekomcloud:AsPolicyV1\n    name: hth_aspolicy\n    properties:\n      scalingPolicyName: hth_aspolicy\n      scalingGroupId: 4579f2f5-cbe8-425a-8f32-53dcb9d9053a\n      coolDownTime: 900\n      scalingPolicyType: RECURRENCE\n      scalingPolicyAction:\n        operation: ADD\n        instanceNumber: 1\n      scheduledPolicy:\n        launchTime: 07:00\n        recurrenceType: Daily\n        startTime: 2017-11-30T12:00Z\n        endTime: 2017-12-30T12:00Z\n```\n<!--End PulumiCodeChooser -->\n\n### AS Scheduled Policy\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst hthAspolicy1 = new opentelekomcloud.AsPolicyV1(\"hth_aspolicy_1\", {\n    scalingPolicyName: \"hth_aspolicy_1\",\n    scalingGroupId: \"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\",\n    coolDownTime: 900,\n    scalingPolicyType: \"SCHEDULED\",\n    scalingPolicyAction: {\n        operation: \"REMOVE\",\n        instanceNumber: 1,\n    },\n    scheduledPolicy: {\n        launchTime: \"2017-12-22T12:00Z\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nhth_aspolicy1 = opentelekomcloud.AsPolicyV1(\"hth_aspolicy_1\",\n    scaling_policy_name=\"hth_aspolicy_1\",\n    scaling_group_id=\"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\",\n    cool_down_time=900,\n    scaling_policy_type=\"SCHEDULED\",\n    scaling_policy_action={\n        \"operation\": \"REMOVE\",\n        \"instance_number\": 1,\n    },\n    scheduled_policy={\n        \"launch_time\": \"2017-12-22T12:00Z\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var hthAspolicy1 = new Opentelekomcloud.AsPolicyV1(\"hth_aspolicy_1\", new()\n    {\n        ScalingPolicyName = \"hth_aspolicy_1\",\n        ScalingGroupId = \"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\",\n        CoolDownTime = 900,\n        ScalingPolicyType = \"SCHEDULED\",\n        ScalingPolicyAction = new Opentelekomcloud.Inputs.AsPolicyV1ScalingPolicyActionArgs\n        {\n            Operation = \"REMOVE\",\n            InstanceNumber = 1,\n        },\n        ScheduledPolicy = new Opentelekomcloud.Inputs.AsPolicyV1ScheduledPolicyArgs\n        {\n            LaunchTime = \"2017-12-22T12:00Z\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewAsPolicyV1(ctx, \"hth_aspolicy_1\", &opentelekomcloud.AsPolicyV1Args{\n\t\t\tScalingPolicyName: pulumi.String(\"hth_aspolicy_1\"),\n\t\t\tScalingGroupId:    pulumi.String(\"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\"),\n\t\t\tCoolDownTime:      pulumi.Float64(900),\n\t\t\tScalingPolicyType: pulumi.String(\"SCHEDULED\"),\n\t\t\tScalingPolicyAction: &opentelekomcloud.AsPolicyV1ScalingPolicyActionArgs{\n\t\t\t\tOperation:      pulumi.String(\"REMOVE\"),\n\t\t\t\tInstanceNumber: pulumi.Float64(1),\n\t\t\t},\n\t\t\tScheduledPolicy: &opentelekomcloud.AsPolicyV1ScheduledPolicyArgs{\n\t\t\t\tLaunchTime: pulumi.String(\"2017-12-22T12:00Z\"),\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.opentelekomcloud.AsPolicyV1;\nimport com.pulumi.opentelekomcloud.AsPolicyV1Args;\nimport com.pulumi.opentelekomcloud.inputs.AsPolicyV1ScalingPolicyActionArgs;\nimport com.pulumi.opentelekomcloud.inputs.AsPolicyV1ScheduledPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var hthAspolicy1 = new AsPolicyV1(\"hthAspolicy1\", AsPolicyV1Args.builder()\n            .scalingPolicyName(\"hth_aspolicy_1\")\n            .scalingGroupId(\"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\")\n            .coolDownTime(900.0)\n            .scalingPolicyType(\"SCHEDULED\")\n            .scalingPolicyAction(AsPolicyV1ScalingPolicyActionArgs.builder()\n                .operation(\"REMOVE\")\n                .instanceNumber(1.0)\n                .build())\n            .scheduledPolicy(AsPolicyV1ScheduledPolicyArgs.builder()\n                .launchTime(\"2017-12-22T12:00Z\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  hthAspolicy1:\n    type: opentelekomcloud:AsPolicyV1\n    name: hth_aspolicy_1\n    properties:\n      scalingPolicyName: hth_aspolicy_1\n      scalingGroupId: 4579f2f5-cbe8-425a-8f32-53dcb9d9053a\n      coolDownTime: 900\n      scalingPolicyType: SCHEDULED\n      scalingPolicyAction:\n        operation: REMOVE\n        instanceNumber: 1\n      scheduledPolicy:\n        launchTime: 2017-12-22T12:00Z\n```\n<!--End PulumiCodeChooser -->\n\n> **Note:** The <span pulumi-lang-nodejs=\"`launchTime`\" pulumi-lang-dotnet=\"`LaunchTime`\" pulumi-lang-go=\"`launchTime`\" pulumi-lang-python=\"`launch_time`\" pulumi-lang-yaml=\"`launchTime`\" pulumi-lang-java=\"`launchTime`\">`launch_time`</span> of the `SCHEDULED` policy cannot be earlier than the current time.\n\n### AS Alarm Policy\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst hthAspolicy2 = new opentelekomcloud.AsPolicyV1(\"hth_aspolicy_2\", {\n    scalingPolicyName: \"hth_aspolicy_2\",\n    scalingGroupId: \"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\",\n    coolDownTime: 900,\n    scalingPolicyType: \"ALARM\",\n    alarmId: \"37e310f5-db9d-446e-9135-c625f9c2bbfc\",\n    scalingPolicyAction: {\n        operation: \"ADD\",\n        instanceNumber: 1,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nhth_aspolicy2 = opentelekomcloud.AsPolicyV1(\"hth_aspolicy_2\",\n    scaling_policy_name=\"hth_aspolicy_2\",\n    scaling_group_id=\"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\",\n    cool_down_time=900,\n    scaling_policy_type=\"ALARM\",\n    alarm_id=\"37e310f5-db9d-446e-9135-c625f9c2bbfc\",\n    scaling_policy_action={\n        \"operation\": \"ADD\",\n        \"instance_number\": 1,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var hthAspolicy2 = new Opentelekomcloud.AsPolicyV1(\"hth_aspolicy_2\", new()\n    {\n        ScalingPolicyName = \"hth_aspolicy_2\",\n        ScalingGroupId = \"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\",\n        CoolDownTime = 900,\n        ScalingPolicyType = \"ALARM\",\n        AlarmId = \"37e310f5-db9d-446e-9135-c625f9c2bbfc\",\n        ScalingPolicyAction = new Opentelekomcloud.Inputs.AsPolicyV1ScalingPolicyActionArgs\n        {\n            Operation = \"ADD\",\n            InstanceNumber = 1,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewAsPolicyV1(ctx, \"hth_aspolicy_2\", &opentelekomcloud.AsPolicyV1Args{\n\t\t\tScalingPolicyName: pulumi.String(\"hth_aspolicy_2\"),\n\t\t\tScalingGroupId:    pulumi.String(\"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\"),\n\t\t\tCoolDownTime:      pulumi.Float64(900),\n\t\t\tScalingPolicyType: pulumi.String(\"ALARM\"),\n\t\t\tAlarmId:           pulumi.String(\"37e310f5-db9d-446e-9135-c625f9c2bbfc\"),\n\t\t\tScalingPolicyAction: &opentelekomcloud.AsPolicyV1ScalingPolicyActionArgs{\n\t\t\t\tOperation:      pulumi.String(\"ADD\"),\n\t\t\t\tInstanceNumber: pulumi.Float64(1),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.AsPolicyV1;\nimport com.pulumi.opentelekomcloud.AsPolicyV1Args;\nimport com.pulumi.opentelekomcloud.inputs.AsPolicyV1ScalingPolicyActionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var hthAspolicy2 = new AsPolicyV1(\"hthAspolicy2\", AsPolicyV1Args.builder()\n            .scalingPolicyName(\"hth_aspolicy_2\")\n            .scalingGroupId(\"4579f2f5-cbe8-425a-8f32-53dcb9d9053a\")\n            .coolDownTime(900.0)\n            .scalingPolicyType(\"ALARM\")\n            .alarmId(\"37e310f5-db9d-446e-9135-c625f9c2bbfc\")\n            .scalingPolicyAction(AsPolicyV1ScalingPolicyActionArgs.builder()\n                .operation(\"ADD\")\n                .instanceNumber(1.0)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  hthAspolicy2:\n    type: opentelekomcloud:AsPolicyV1\n    name: hth_aspolicy_2\n    properties:\n      scalingPolicyName: hth_aspolicy_2\n      scalingGroupId: 4579f2f5-cbe8-425a-8f32-53dcb9d9053a\n      coolDownTime: 900\n      scalingPolicyType: ALARM\n      alarmId: 37e310f5-db9d-446e-9135-c625f9c2bbfc\n      scalingPolicyAction:\n        operation: ADD\n        instanceNumber: 1\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"alarmId":{"description":"The alarm rule ID. This argument is mandatory\nwhen <span pulumi-lang-nodejs=\"`scalingPolicyType`\" pulumi-lang-dotnet=\"`ScalingPolicyType`\" pulumi-lang-go=\"`scalingPolicyType`\" pulumi-lang-python=\"`scaling_policy_type`\" pulumi-lang-yaml=\"`scalingPolicyType`\" pulumi-lang-java=\"`scalingPolicyType`\">`scaling_policy_type`</span> is set to `ALARM`.\n","type":"string"},"asPolicyV1Id":{"type":"string"},"coolDownTime":{"description":"The cooling duration (in seconds), and is 900 by default.\n","type":"number"},"region":{"type":"string"},"scalingGroupId":{"description":"The AS group ID. Changing this creates a new AS policy.\n","type":"string"},"scalingPolicyAction":{"$ref":"#/types/opentelekomcloud:index%2FAsPolicyV1ScalingPolicyAction:AsPolicyV1ScalingPolicyAction","description":"The action of the AS policy. The<span pulumi-lang-nodejs=\" scalingPolicyAction\n\" pulumi-lang-dotnet=\" ScalingPolicyAction\n\" pulumi-lang-go=\" scalingPolicyAction\n\" pulumi-lang-python=\" scaling_policy_action\n\" pulumi-lang-yaml=\" scalingPolicyAction\n\" pulumi-lang-java=\" scalingPolicyAction\n\"> scaling_policy_action\n</span>structure is documented below.\n"},"scalingPolicyName":{"description":"The name of the AS policy. The name can contain letters,\ndigits, underscores(_), and hyphens(-),and cannot exceed 64 characters.\n","type":"string"},"scalingPolicyType":{"description":"The AS policy type. The values can be `ALARM`, `SCHEDULED`,\nand `RECURRENCE`.\n","type":"string"},"scheduledPolicy":{"$ref":"#/types/opentelekomcloud:index%2FAsPolicyV1ScheduledPolicy:AsPolicyV1ScheduledPolicy","description":"The periodic or scheduled AS policy. This argument is mandatory\nwhen <span pulumi-lang-nodejs=\"`scalingPolicyType`\" pulumi-lang-dotnet=\"`ScalingPolicyType`\" pulumi-lang-go=\"`scalingPolicyType`\" pulumi-lang-python=\"`scaling_policy_type`\" pulumi-lang-yaml=\"`scalingPolicyType`\" pulumi-lang-java=\"`scalingPolicyType`\">`scaling_policy_type`</span> is set to `SCHEDULED` or `RECURRENCE`. The<span pulumi-lang-nodejs=\" scheduledPolicy \" pulumi-lang-dotnet=\" ScheduledPolicy \" pulumi-lang-go=\" scheduledPolicy \" pulumi-lang-python=\" scheduled_policy \" pulumi-lang-yaml=\" scheduledPolicy \" pulumi-lang-java=\" scheduledPolicy \"> scheduled_policy </span>structure\nis documented below.\n"}},"properties":{"alarmId":{"description":"The alarm rule ID. This argument is mandatory\nwhen <span pulumi-lang-nodejs=\"`scalingPolicyType`\" pulumi-lang-dotnet=\"`ScalingPolicyType`\" pulumi-lang-go=\"`scalingPolicyType`\" pulumi-lang-python=\"`scaling_policy_type`\" pulumi-lang-yaml=\"`scalingPolicyType`\" pulumi-lang-java=\"`scalingPolicyType`\">`scaling_policy_type`</span> is set to `ALARM`.\n","type":"string"},"asPolicyV1Id":{"type":"string"},"coolDownTime":{"description":"The cooling duration (in seconds), and is 900 by default.\n","type":"number"},"region":{"type":"string"},"scalingGroupId":{"description":"The AS group ID. Changing this creates a new AS policy.\n","type":"string"},"scalingPolicyAction":{"$ref":"#/types/opentelekomcloud:index%2FAsPolicyV1ScalingPolicyAction:AsPolicyV1ScalingPolicyAction","description":"The action of the AS policy. The<span pulumi-lang-nodejs=\" scalingPolicyAction\n\" pulumi-lang-dotnet=\" ScalingPolicyAction\n\" pulumi-lang-go=\" scalingPolicyAction\n\" pulumi-lang-python=\" scaling_policy_action\n\" pulumi-lang-yaml=\" scalingPolicyAction\n\" pulumi-lang-java=\" scalingPolicyAction\n\"> scaling_policy_action\n</span>structure is documented below.\n"},"scalingPolicyName":{"description":"The name of the AS policy. The name can contain letters,\ndigits, underscores(_), and hyphens(-),and cannot exceed 64 characters.\n","type":"string"},"scalingPolicyType":{"description":"The AS policy type. The values can be `ALARM`, `SCHEDULED`,\nand `RECURRENCE`.\n","type":"string"},"scheduledPolicy":{"$ref":"#/types/opentelekomcloud:index%2FAsPolicyV1ScheduledPolicy:AsPolicyV1ScheduledPolicy","description":"The periodic or scheduled AS policy. This argument is mandatory\nwhen <span pulumi-lang-nodejs=\"`scalingPolicyType`\" pulumi-lang-dotnet=\"`ScalingPolicyType`\" pulumi-lang-go=\"`scalingPolicyType`\" pulumi-lang-python=\"`scaling_policy_type`\" pulumi-lang-yaml=\"`scalingPolicyType`\" pulumi-lang-java=\"`scalingPolicyType`\">`scaling_policy_type`</span> is set to `SCHEDULED` or `RECURRENCE`. The<span pulumi-lang-nodejs=\" scheduledPolicy \" pulumi-lang-dotnet=\" ScheduledPolicy \" pulumi-lang-go=\" scheduledPolicy \" pulumi-lang-python=\" scheduled_policy \" pulumi-lang-yaml=\" scheduledPolicy \" pulumi-lang-java=\" scheduledPolicy \"> scheduled_policy </span>structure\nis documented below.\n"}},"required":["asPolicyV1Id","region","scalingGroupId","scalingPolicyName","scalingPolicyType"],"requiredInputs":["scalingGroupId","scalingPolicyName","scalingPolicyType"],"stateInputs":{"description":"Input properties used for looking up and filtering AsPolicyV1 resources.\n","properties":{"alarmId":{"description":"The alarm rule ID. This argument is mandatory\nwhen <span pulumi-lang-nodejs=\"`scalingPolicyType`\" pulumi-lang-dotnet=\"`ScalingPolicyType`\" pulumi-lang-go=\"`scalingPolicyType`\" pulumi-lang-python=\"`scaling_policy_type`\" pulumi-lang-yaml=\"`scalingPolicyType`\" pulumi-lang-java=\"`scalingPolicyType`\">`scaling_policy_type`</span> is set to `ALARM`.\n","type":"string"},"asPolicyV1Id":{"type":"string"},"coolDownTime":{"description":"The cooling duration (in seconds), and is 900 by default.\n","type":"number"},"region":{"type":"string"},"scalingGroupId":{"description":"The AS group ID. Changing this creates a new AS policy.\n","type":"string"},"scalingPolicyAction":{"$ref":"#/types/opentelekomcloud:index%2FAsPolicyV1ScalingPolicyAction:AsPolicyV1ScalingPolicyAction","description":"The action of the AS policy. The<span pulumi-lang-nodejs=\" scalingPolicyAction\n\" pulumi-lang-dotnet=\" ScalingPolicyAction\n\" pulumi-lang-go=\" scalingPolicyAction\n\" pulumi-lang-python=\" scaling_policy_action\n\" pulumi-lang-yaml=\" scalingPolicyAction\n\" pulumi-lang-java=\" scalingPolicyAction\n\"> scaling_policy_action\n</span>structure is documented below.\n"},"scalingPolicyName":{"description":"The name of the AS policy. The name can contain letters,\ndigits, underscores(_), and hyphens(-),and cannot exceed 64 characters.\n","type":"string"},"scalingPolicyType":{"description":"The AS policy type. The values can be `ALARM`, `SCHEDULED`,\nand `RECURRENCE`.\n","type":"string"},"scheduledPolicy":{"$ref":"#/types/opentelekomcloud:index%2FAsPolicyV1ScheduledPolicy:AsPolicyV1ScheduledPolicy","description":"The periodic or scheduled AS policy. This argument is mandatory\nwhen <span pulumi-lang-nodejs=\"`scalingPolicyType`\" pulumi-lang-dotnet=\"`ScalingPolicyType`\" pulumi-lang-go=\"`scalingPolicyType`\" pulumi-lang-python=\"`scaling_policy_type`\" pulumi-lang-yaml=\"`scalingPolicyType`\" pulumi-lang-java=\"`scalingPolicyType`\">`scaling_policy_type`</span> is set to `SCHEDULED` or `RECURRENCE`. The<span pulumi-lang-nodejs=\" scheduledPolicy \" pulumi-lang-dotnet=\" ScheduledPolicy \" pulumi-lang-go=\" scheduledPolicy \" pulumi-lang-python=\" scheduled_policy \" pulumi-lang-yaml=\" scheduledPolicy \" pulumi-lang-java=\" scheduledPolicy \"> scheduled_policy </span>structure\nis documented below.\n"}},"type":"object"},"type":"object"},"opentelekomcloud:index/asPolicyV2:AsPolicyV2":{"description":"Up-to-date reference of API arguments for AS policy you can get at\n[documentation portal](https://docs.otc.t-systems.com/auto-scaling/api-ref/apis/as_policies)\n\nManages a V2 AS Policy resource within OpenTelekomCloud.\n\n## Example Usage\n\n### AS Recurrence Policy\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst policy1 = new opentelekomcloud.AsPolicyV2(\"policy_1\", {\n    scalingPolicyName: \"policy_create\",\n    scalingPolicyType: \"RECURRENCE\",\n    scalingResourceId: asGroup,\n    scalingResourceType: \"SCALING_GROUP\",\n    scalingPolicyActions: [{\n        operation: \"ADD\",\n        percentage: 15,\n    }],\n    scheduledPolicies: [{\n        launchTime: \"10:30\",\n        recurrenceType: \"Weekly\",\n        recurrenceValue: \"1,3,5\",\n        endTime: \"2040-12-31T10:30Z\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\npolicy1 = opentelekomcloud.AsPolicyV2(\"policy_1\",\n    scaling_policy_name=\"policy_create\",\n    scaling_policy_type=\"RECURRENCE\",\n    scaling_resource_id=as_group,\n    scaling_resource_type=\"SCALING_GROUP\",\n    scaling_policy_actions=[{\n        \"operation\": \"ADD\",\n        \"percentage\": 15,\n    }],\n    scheduled_policies=[{\n        \"launch_time\": \"10:30\",\n        \"recurrence_type\": \"Weekly\",\n        \"recurrence_value\": \"1,3,5\",\n        \"end_time\": \"2040-12-31T10:30Z\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var policy1 = new Opentelekomcloud.AsPolicyV2(\"policy_1\", new()\n    {\n        ScalingPolicyName = \"policy_create\",\n        ScalingPolicyType = \"RECURRENCE\",\n        ScalingResourceId = asGroup,\n        ScalingResourceType = \"SCALING_GROUP\",\n        ScalingPolicyActions = new[]\n        {\n            new Opentelekomcloud.Inputs.AsPolicyV2ScalingPolicyActionArgs\n            {\n                Operation = \"ADD\",\n                Percentage = 15,\n            },\n        },\n        ScheduledPolicies = new[]\n        {\n            new Opentelekomcloud.Inputs.AsPolicyV2ScheduledPolicyArgs\n            {\n                LaunchTime = \"10:30\",\n                RecurrenceType = \"Weekly\",\n                RecurrenceValue = \"1,3,5\",\n                EndTime = \"2040-12-31T10:30Z\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewAsPolicyV2(ctx, \"policy_1\", &opentelekomcloud.AsPolicyV2Args{\n\t\t\tScalingPolicyName:   pulumi.String(\"policy_create\"),\n\t\t\tScalingPolicyType:   pulumi.String(\"RECURRENCE\"),\n\t\t\tScalingResourceId:   pulumi.Any(asGroup),\n\t\t\tScalingResourceType: pulumi.String(\"SCALING_GROUP\"),\n\t\t\tScalingPolicyActions: opentelekomcloud.AsPolicyV2ScalingPolicyActionArray{\n\t\t\t\t&opentelekomcloud.AsPolicyV2ScalingPolicyActionArgs{\n\t\t\t\t\tOperation:  pulumi.String(\"ADD\"),\n\t\t\t\t\tPercentage: pulumi.Float64(15),\n\t\t\t\t},\n\t\t\t},\n\t\t\tScheduledPolicies: opentelekomcloud.AsPolicyV2ScheduledPolicyArray{\n\t\t\t\t&opentelekomcloud.AsPolicyV2ScheduledPolicyArgs{\n\t\t\t\t\tLaunchTime:      pulumi.String(\"10:30\"),\n\t\t\t\t\tRecurrenceType:  pulumi.String(\"Weekly\"),\n\t\t\t\t\tRecurrenceValue: pulumi.String(\"1,3,5\"),\n\t\t\t\t\tEndTime:         pulumi.String(\"2040-12-31T10:30Z\"),\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.opentelekomcloud.AsPolicyV2;\nimport com.pulumi.opentelekomcloud.AsPolicyV2Args;\nimport com.pulumi.opentelekomcloud.inputs.AsPolicyV2ScalingPolicyActionArgs;\nimport com.pulumi.opentelekomcloud.inputs.AsPolicyV2ScheduledPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var policy1 = new AsPolicyV2(\"policy1\", AsPolicyV2Args.builder()\n            .scalingPolicyName(\"policy_create\")\n            .scalingPolicyType(\"RECURRENCE\")\n            .scalingResourceId(asGroup)\n            .scalingResourceType(\"SCALING_GROUP\")\n            .scalingPolicyActions(AsPolicyV2ScalingPolicyActionArgs.builder()\n                .operation(\"ADD\")\n                .percentage(15.0)\n                .build())\n            .scheduledPolicies(AsPolicyV2ScheduledPolicyArgs.builder()\n                .launchTime(\"10:30\")\n                .recurrenceType(\"Weekly\")\n                .recurrenceValue(\"1,3,5\")\n                .endTime(\"2040-12-31T10:30Z\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  policy1:\n    type: opentelekomcloud:AsPolicyV2\n    name: policy_1\n    properties:\n      scalingPolicyName: policy_create\n      scalingPolicyType: RECURRENCE\n      scalingResourceId: ${asGroup}\n      scalingResourceType: SCALING_GROUP\n      scalingPolicyActions:\n        - operation: ADD\n          percentage: 15\n      scheduledPolicies:\n        - launchTime: 10:30\n          recurrenceType: Weekly\n          recurrenceValue: 1,3,5\n          endTime: 2040-12-31T10:30Z\n```\n<!--End PulumiCodeChooser -->\n\n### AS Alarm Policy\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst policy1 = new opentelekomcloud.AsPolicyV2(\"policy_1\", {\n    scalingPolicyName: \"policy_create\",\n    scalingPolicyType: \"ALARM\",\n    scalingResourceId: asGroup,\n    scalingResourceType: \"SCALING_GROUP\",\n    alarmId: alarmId,\n    scalingPolicyActions: [{\n        operation: \"ADD\",\n        size: 1,\n    }],\n    coolDownTime: 900,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\npolicy1 = opentelekomcloud.AsPolicyV2(\"policy_1\",\n    scaling_policy_name=\"policy_create\",\n    scaling_policy_type=\"ALARM\",\n    scaling_resource_id=as_group,\n    scaling_resource_type=\"SCALING_GROUP\",\n    alarm_id=alarm_id,\n    scaling_policy_actions=[{\n        \"operation\": \"ADD\",\n        \"size\": 1,\n    }],\n    cool_down_time=900)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var policy1 = new Opentelekomcloud.AsPolicyV2(\"policy_1\", new()\n    {\n        ScalingPolicyName = \"policy_create\",\n        ScalingPolicyType = \"ALARM\",\n        ScalingResourceId = asGroup,\n        ScalingResourceType = \"SCALING_GROUP\",\n        AlarmId = alarmId,\n        ScalingPolicyActions = new[]\n        {\n            new Opentelekomcloud.Inputs.AsPolicyV2ScalingPolicyActionArgs\n            {\n                Operation = \"ADD\",\n                Size = 1,\n            },\n        },\n        CoolDownTime = 900,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewAsPolicyV2(ctx, \"policy_1\", &opentelekomcloud.AsPolicyV2Args{\n\t\t\tScalingPolicyName:   pulumi.String(\"policy_create\"),\n\t\t\tScalingPolicyType:   pulumi.String(\"ALARM\"),\n\t\t\tScalingResourceId:   pulumi.Any(asGroup),\n\t\t\tScalingResourceType: pulumi.String(\"SCALING_GROUP\"),\n\t\t\tAlarmId:             pulumi.Any(alarmId),\n\t\t\tScalingPolicyActions: opentelekomcloud.AsPolicyV2ScalingPolicyActionArray{\n\t\t\t\t&opentelekomcloud.AsPolicyV2ScalingPolicyActionArgs{\n\t\t\t\t\tOperation: pulumi.String(\"ADD\"),\n\t\t\t\t\tSize:      pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCoolDownTime: pulumi.Float64(900),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.AsPolicyV2;\nimport com.pulumi.opentelekomcloud.AsPolicyV2Args;\nimport com.pulumi.opentelekomcloud.inputs.AsPolicyV2ScalingPolicyActionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var policy1 = new AsPolicyV2(\"policy1\", AsPolicyV2Args.builder()\n            .scalingPolicyName(\"policy_create\")\n            .scalingPolicyType(\"ALARM\")\n            .scalingResourceId(asGroup)\n            .scalingResourceType(\"SCALING_GROUP\")\n            .alarmId(alarmId)\n            .scalingPolicyActions(AsPolicyV2ScalingPolicyActionArgs.builder()\n                .operation(\"ADD\")\n                .size(1.0)\n                .build())\n            .coolDownTime(900.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  policy1:\n    type: opentelekomcloud:AsPolicyV2\n    name: policy_1\n    properties:\n      scalingPolicyName: policy_create\n      scalingPolicyType: ALARM\n      scalingResourceId: ${asGroup}\n      scalingResourceType: SCALING_GROUP\n      alarmId: ${alarmId}\n      scalingPolicyActions:\n        - operation: ADD\n          size: 1\n      coolDownTime: 900\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"alarmId":{"description":"Specifies the alarm rule ID. This parameter is mandatory\nwhen <span pulumi-lang-nodejs=\"`scalingPolicyType`\" pulumi-lang-dotnet=\"`ScalingPolicyType`\" pulumi-lang-go=\"`scalingPolicyType`\" pulumi-lang-python=\"`scaling_policy_type`\" pulumi-lang-yaml=\"`scalingPolicyType`\" pulumi-lang-java=\"`scalingPolicyType`\">`scaling_policy_type`</span> is set to `ALARM`.\n","type":"string"},"asPolicyV2Id":{"type":"string"},"coolDownTime":{"description":"Specifies the cooldown period (in seconds).\n","type":"number"},"region":{"type":"string"},"scalingPolicyActions":{"description":"The action of the AS policy. The <span pulumi-lang-nodejs=\"`scalingPolicyAction`\" pulumi-lang-dotnet=\"`ScalingPolicyAction`\" pulumi-lang-go=\"`scalingPolicyAction`\" pulumi-lang-python=\"`scaling_policy_action`\" pulumi-lang-yaml=\"`scalingPolicyAction`\" pulumi-lang-java=\"`scalingPolicyAction`\">`scaling_policy_action`</span>\nstructure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FAsPolicyV2ScalingPolicyAction:AsPolicyV2ScalingPolicyAction"},"type":"array"},"scalingPolicyName":{"description":"The name of the AS policy. The name can contain letters,\ndigits, underscores(_), and hyphens(-),and cannot exceed 64 characters.\n","type":"string"},"scalingPolicyType":{"description":"The AS policy type. The values can be:\n* `ALARM` - Indicates that the scaling action is triggered by an alarm. A value is returned for\n<span pulumi-lang-nodejs=\"`alarmId`\" pulumi-lang-dotnet=\"`AlarmId`\" pulumi-lang-go=\"`alarmId`\" pulumi-lang-python=\"`alarm_id`\" pulumi-lang-yaml=\"`alarmId`\" pulumi-lang-java=\"`alarmId`\">`alarm_id`</span>, and no value is returned for <span pulumi-lang-nodejs=\"`scheduledPolicy`\" pulumi-lang-dotnet=\"`ScheduledPolicy`\" pulumi-lang-go=\"`scheduledPolicy`\" pulumi-lang-python=\"`scheduled_policy`\" pulumi-lang-yaml=\"`scheduledPolicy`\" pulumi-lang-java=\"`scheduledPolicy`\">`scheduled_policy`</span>.\n* `SCHEDULED` - Indicates that the scaling action is triggered as scheduled.\nA value is returned for <span pulumi-lang-nodejs=\"`scheduledPolicy`\" pulumi-lang-dotnet=\"`ScheduledPolicy`\" pulumi-lang-go=\"`scheduledPolicy`\" pulumi-lang-python=\"`scheduled_policy`\" pulumi-lang-yaml=\"`scheduledPolicy`\" pulumi-lang-java=\"`scheduledPolicy`\">`scheduled_policy`</span>, and no value is returned for <span pulumi-lang-nodejs=\"`alarmId`\" pulumi-lang-dotnet=\"`AlarmId`\" pulumi-lang-go=\"`alarmId`\" pulumi-lang-python=\"`alarm_id`\" pulumi-lang-yaml=\"`alarmId`\" pulumi-lang-java=\"`alarmId`\">`alarm_id`</span>,\n<span pulumi-lang-nodejs=\"`recurrenceType`\" pulumi-lang-dotnet=\"`RecurrenceType`\" pulumi-lang-go=\"`recurrenceType`\" pulumi-lang-python=\"`recurrence_type`\" pulumi-lang-yaml=\"`recurrenceType`\" pulumi-lang-java=\"`recurrenceType`\">`recurrence_type`</span>, <span pulumi-lang-nodejs=\"`recurrenceValue`\" pulumi-lang-dotnet=\"`RecurrenceValue`\" pulumi-lang-go=\"`recurrenceValue`\" pulumi-lang-python=\"`recurrence_value`\" pulumi-lang-yaml=\"`recurrenceValue`\" pulumi-lang-java=\"`recurrenceValue`\">`recurrence_value`</span>, <span pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\">`start_time`</span>, or <span pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\">`end_time`</span>.\n* `RECURRENCE` - Indicates that the scaling action is triggered periodically.\nValues are returned for <span pulumi-lang-nodejs=\"`scheduledPolicy`\" pulumi-lang-dotnet=\"`ScheduledPolicy`\" pulumi-lang-go=\"`scheduledPolicy`\" pulumi-lang-python=\"`scheduled_policy`\" pulumi-lang-yaml=\"`scheduledPolicy`\" pulumi-lang-java=\"`scheduledPolicy`\">`scheduled_policy`</span>, <span pulumi-lang-nodejs=\"`recurrenceType`\" pulumi-lang-dotnet=\"`RecurrenceType`\" pulumi-lang-go=\"`recurrenceType`\" pulumi-lang-python=\"`recurrence_type`\" pulumi-lang-yaml=\"`recurrenceType`\" pulumi-lang-java=\"`recurrenceType`\">`recurrence_type`</span>, <span pulumi-lang-nodejs=\"`recurrenceValue`\" pulumi-lang-dotnet=\"`RecurrenceValue`\" pulumi-lang-go=\"`recurrenceValue`\" pulumi-lang-python=\"`recurrence_value`\" pulumi-lang-yaml=\"`recurrenceValue`\" pulumi-lang-java=\"`recurrenceValue`\">`recurrence_value`</span>,\n<span pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\">`start_time`</span>, and <span pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\">`end_time`</span>, and no value is returned for <span pulumi-lang-nodejs=\"`alarmId`\" pulumi-lang-dotnet=\"`AlarmId`\" pulumi-lang-go=\"`alarmId`\" pulumi-lang-python=\"`alarm_id`\" pulumi-lang-yaml=\"`alarmId`\" pulumi-lang-java=\"`alarmId`\">`alarm_id`</span>.\n","type":"string"},"scalingResourceId":{"description":"The Scaling resource ID.\n","type":"string"},"scalingResourceType":{"description":"Specifies the scaling resource type. Valid values are:\n* AS group: `SCALING_GROUP`\n* Bandwidth: `BANDWIDTH`\n","type":"string"},"scheduledPolicies":{"description":"Specifies the periodic or scheduled AS policy.\nThis parameter is mandatory when <span pulumi-lang-nodejs=\"`scalingPolicyType`\" pulumi-lang-dotnet=\"`ScalingPolicyType`\" pulumi-lang-go=\"`scalingPolicyType`\" pulumi-lang-python=\"`scaling_policy_type`\" pulumi-lang-yaml=\"`scalingPolicyType`\" pulumi-lang-java=\"`scalingPolicyType`\">`scaling_policy_type`</span> is set to `SCHEDULED` or `RECURRENCE`.\nAfter this parameter is specified, the value of <span pulumi-lang-nodejs=\"`alarmId`\" pulumi-lang-dotnet=\"`AlarmId`\" pulumi-lang-go=\"`alarmId`\" pulumi-lang-python=\"`alarm_id`\" pulumi-lang-yaml=\"`alarmId`\" pulumi-lang-java=\"`alarmId`\">`alarm_id`</span> does not take effect.\nThe <span pulumi-lang-nodejs=\"`scheduledPolicy`\" pulumi-lang-dotnet=\"`ScheduledPolicy`\" pulumi-lang-go=\"`scheduledPolicy`\" pulumi-lang-python=\"`scheduled_policy`\" pulumi-lang-yaml=\"`scheduledPolicy`\" pulumi-lang-java=\"`scheduledPolicy`\">`scheduled_policy`</span> structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FAsPolicyV2ScheduledPolicy:AsPolicyV2ScheduledPolicy"},"type":"array"}},"properties":{"alarmId":{"description":"Specifies the alarm rule ID. This parameter is mandatory\nwhen <span pulumi-lang-nodejs=\"`scalingPolicyType`\" pulumi-lang-dotnet=\"`ScalingPolicyType`\" pulumi-lang-go=\"`scalingPolicyType`\" pulumi-lang-python=\"`scaling_policy_type`\" pulumi-lang-yaml=\"`scalingPolicyType`\" pulumi-lang-java=\"`scalingPolicyType`\">`scaling_policy_type`</span> is set to `ALARM`.\n","type":"string"},"asPolicyV2Id":{"type":"string"},"coolDownTime":{"description":"Specifies the cooldown period (in seconds).\n","type":"number"},"createTime":{"description":"Specifies the time when an AS policy was created. The time format complies with UTC.\n","type":"string"},"metadatas":{"description":"Provides additional information. The <span pulumi-lang-nodejs=\"`metadata`\" pulumi-lang-dotnet=\"`Metadata`\" pulumi-lang-go=\"`metadata`\" pulumi-lang-python=\"`metadata`\" pulumi-lang-yaml=\"`metadata`\" pulumi-lang-java=\"`metadata`\">`metadata`</span> structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FAsPolicyV2Metadata:AsPolicyV2Metadata"},"type":"array"},"region":{"type":"string"},"scalingPolicyActions":{"description":"The action of the AS policy. The <span pulumi-lang-nodejs=\"`scalingPolicyAction`\" pulumi-lang-dotnet=\"`ScalingPolicyAction`\" pulumi-lang-go=\"`scalingPolicyAction`\" pulumi-lang-python=\"`scaling_policy_action`\" pulumi-lang-yaml=\"`scalingPolicyAction`\" pulumi-lang-java=\"`scalingPolicyAction`\">`scaling_policy_action`</span>\nstructure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FAsPolicyV2ScalingPolicyAction:AsPolicyV2ScalingPolicyAction"},"type":"array"},"scalingPolicyName":{"description":"The name of the AS policy. The name can contain letters,\ndigits, underscores(_), and hyphens(-),and cannot exceed 64 characters.\n","type":"string"},"scalingPolicyType":{"description":"The AS policy type. The values can be:\n* `ALARM` - Indicates that the scaling action is triggered by an alarm. A value is returned for\n<span pulumi-lang-nodejs=\"`alarmId`\" pulumi-lang-dotnet=\"`AlarmId`\" pulumi-lang-go=\"`alarmId`\" pulumi-lang-python=\"`alarm_id`\" pulumi-lang-yaml=\"`alarmId`\" pulumi-lang-java=\"`alarmId`\">`alarm_id`</span>, and no value is returned for <span pulumi-lang-nodejs=\"`scheduledPolicy`\" pulumi-lang-dotnet=\"`ScheduledPolicy`\" pulumi-lang-go=\"`scheduledPolicy`\" pulumi-lang-python=\"`scheduled_policy`\" pulumi-lang-yaml=\"`scheduledPolicy`\" pulumi-lang-java=\"`scheduledPolicy`\">`scheduled_policy`</span>.\n* `SCHEDULED` - Indicates that the scaling action is triggered as scheduled.\nA value is returned for <span pulumi-lang-nodejs=\"`scheduledPolicy`\" pulumi-lang-dotnet=\"`ScheduledPolicy`\" pulumi-lang-go=\"`scheduledPolicy`\" pulumi-lang-python=\"`scheduled_policy`\" pulumi-lang-yaml=\"`scheduledPolicy`\" pulumi-lang-java=\"`scheduledPolicy`\">`scheduled_policy`</span>, and no value is returned for <span pulumi-lang-nodejs=\"`alarmId`\" pulumi-lang-dotnet=\"`AlarmId`\" pulumi-lang-go=\"`alarmId`\" pulumi-lang-python=\"`alarm_id`\" pulumi-lang-yaml=\"`alarmId`\" pulumi-lang-java=\"`alarmId`\">`alarm_id`</span>,\n<span pulumi-lang-nodejs=\"`recurrenceType`\" pulumi-lang-dotnet=\"`RecurrenceType`\" pulumi-lang-go=\"`recurrenceType`\" pulumi-lang-python=\"`recurrence_type`\" pulumi-lang-yaml=\"`recurrenceType`\" pulumi-lang-java=\"`recurrenceType`\">`recurrence_type`</span>, <span pulumi-lang-nodejs=\"`recurrenceValue`\" pulumi-lang-dotnet=\"`RecurrenceValue`\" pulumi-lang-go=\"`recurrenceValue`\" pulumi-lang-python=\"`recurrence_value`\" pulumi-lang-yaml=\"`recurrenceValue`\" pulumi-lang-java=\"`recurrenceValue`\">`recurrence_value`</span>, <span pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\">`start_time`</span>, or <span pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\">`end_time`</span>.\n* `RECURRENCE` - Indicates that the scaling action is triggered periodically.\nValues are returned for <span pulumi-lang-nodejs=\"`scheduledPolicy`\" pulumi-lang-dotnet=\"`ScheduledPolicy`\" pulumi-lang-go=\"`scheduledPolicy`\" pulumi-lang-python=\"`scheduled_policy`\" pulumi-lang-yaml=\"`scheduledPolicy`\" pulumi-lang-java=\"`scheduledPolicy`\">`scheduled_policy`</span>, <span pulumi-lang-nodejs=\"`recurrenceType`\" pulumi-lang-dotnet=\"`RecurrenceType`\" pulumi-lang-go=\"`recurrenceType`\" pulumi-lang-python=\"`recurrence_type`\" pulumi-lang-yaml=\"`recurrenceType`\" pulumi-lang-java=\"`recurrenceType`\">`recurrence_type`</span>, <span pulumi-lang-nodejs=\"`recurrenceValue`\" pulumi-lang-dotnet=\"`RecurrenceValue`\" pulumi-lang-go=\"`recurrenceValue`\" pulumi-lang-python=\"`recurrence_value`\" pulumi-lang-yaml=\"`recurrenceValue`\" pulumi-lang-java=\"`recurrenceValue`\">`recurrence_value`</span>,\n<span pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\">`start_time`</span>, and <span pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\">`end_time`</span>, and no value is returned for <span pulumi-lang-nodejs=\"`alarmId`\" pulumi-lang-dotnet=\"`AlarmId`\" pulumi-lang-go=\"`alarmId`\" pulumi-lang-python=\"`alarm_id`\" pulumi-lang-yaml=\"`alarmId`\" pulumi-lang-java=\"`alarmId`\">`alarm_id`</span>.\n","type":"string"},"scalingResourceId":{"description":"The Scaling resource ID.\n","type":"string"},"scalingResourceType":{"description":"Specifies the scaling resource type. Valid values are:\n* AS group: `SCALING_GROUP`\n* Bandwidth: `BANDWIDTH`\n","type":"string"},"scheduledPolicies":{"description":"Specifies the periodic or scheduled AS policy.\nThis parameter is mandatory when <span pulumi-lang-nodejs=\"`scalingPolicyType`\" pulumi-lang-dotnet=\"`ScalingPolicyType`\" pulumi-lang-go=\"`scalingPolicyType`\" pulumi-lang-python=\"`scaling_policy_type`\" pulumi-lang-yaml=\"`scalingPolicyType`\" pulumi-lang-java=\"`scalingPolicyType`\">`scaling_policy_type`</span> is set to `SCHEDULED` or `RECURRENCE`.\nAfter this parameter is specified, the value of <span pulumi-lang-nodejs=\"`alarmId`\" pulumi-lang-dotnet=\"`AlarmId`\" pulumi-lang-go=\"`alarmId`\" pulumi-lang-python=\"`alarm_id`\" pulumi-lang-yaml=\"`alarmId`\" pulumi-lang-java=\"`alarmId`\">`alarm_id`</span> does not take effect.\nThe <span pulumi-lang-nodejs=\"`scheduledPolicy`\" pulumi-lang-dotnet=\"`ScheduledPolicy`\" pulumi-lang-go=\"`scheduledPolicy`\" pulumi-lang-python=\"`scheduled_policy`\" pulumi-lang-yaml=\"`scheduledPolicy`\" pulumi-lang-java=\"`scheduledPolicy`\">`scheduled_policy`</span> structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FAsPolicyV2ScheduledPolicy:AsPolicyV2ScheduledPolicy"},"type":"array"}},"required":["asPolicyV2Id","coolDownTime","createTime","metadatas","region","scalingPolicyName","scalingPolicyType","scalingResourceId","scalingResourceType"],"requiredInputs":["scalingPolicyName","scalingPolicyType","scalingResourceId","scalingResourceType"],"stateInputs":{"description":"Input properties used for looking up and filtering AsPolicyV2 resources.\n","properties":{"alarmId":{"description":"Specifies the alarm rule ID. This parameter is mandatory\nwhen <span pulumi-lang-nodejs=\"`scalingPolicyType`\" pulumi-lang-dotnet=\"`ScalingPolicyType`\" pulumi-lang-go=\"`scalingPolicyType`\" pulumi-lang-python=\"`scaling_policy_type`\" pulumi-lang-yaml=\"`scalingPolicyType`\" pulumi-lang-java=\"`scalingPolicyType`\">`scaling_policy_type`</span> is set to `ALARM`.\n","type":"string"},"asPolicyV2Id":{"type":"string"},"coolDownTime":{"description":"Specifies the cooldown period (in seconds).\n","type":"number"},"createTime":{"description":"Specifies the time when an AS policy was created. The time format complies with UTC.\n","type":"string"},"metadatas":{"description":"Provides additional information. The <span pulumi-lang-nodejs=\"`metadata`\" pulumi-lang-dotnet=\"`Metadata`\" pulumi-lang-go=\"`metadata`\" pulumi-lang-python=\"`metadata`\" pulumi-lang-yaml=\"`metadata`\" pulumi-lang-java=\"`metadata`\">`metadata`</span> structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FAsPolicyV2Metadata:AsPolicyV2Metadata"},"type":"array"},"region":{"type":"string"},"scalingPolicyActions":{"description":"The action of the AS policy. The <span pulumi-lang-nodejs=\"`scalingPolicyAction`\" pulumi-lang-dotnet=\"`ScalingPolicyAction`\" pulumi-lang-go=\"`scalingPolicyAction`\" pulumi-lang-python=\"`scaling_policy_action`\" pulumi-lang-yaml=\"`scalingPolicyAction`\" pulumi-lang-java=\"`scalingPolicyAction`\">`scaling_policy_action`</span>\nstructure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FAsPolicyV2ScalingPolicyAction:AsPolicyV2ScalingPolicyAction"},"type":"array"},"scalingPolicyName":{"description":"The name of the AS policy. The name can contain letters,\ndigits, underscores(_), and hyphens(-),and cannot exceed 64 characters.\n","type":"string"},"scalingPolicyType":{"description":"The AS policy type. The values can be:\n* `ALARM` - Indicates that the scaling action is triggered by an alarm. A value is returned for\n<span pulumi-lang-nodejs=\"`alarmId`\" pulumi-lang-dotnet=\"`AlarmId`\" pulumi-lang-go=\"`alarmId`\" pulumi-lang-python=\"`alarm_id`\" pulumi-lang-yaml=\"`alarmId`\" pulumi-lang-java=\"`alarmId`\">`alarm_id`</span>, and no value is returned for <span pulumi-lang-nodejs=\"`scheduledPolicy`\" pulumi-lang-dotnet=\"`ScheduledPolicy`\" pulumi-lang-go=\"`scheduledPolicy`\" pulumi-lang-python=\"`scheduled_policy`\" pulumi-lang-yaml=\"`scheduledPolicy`\" pulumi-lang-java=\"`scheduledPolicy`\">`scheduled_policy`</span>.\n* `SCHEDULED` - Indicates that the scaling action is triggered as scheduled.\nA value is returned for <span pulumi-lang-nodejs=\"`scheduledPolicy`\" pulumi-lang-dotnet=\"`ScheduledPolicy`\" pulumi-lang-go=\"`scheduledPolicy`\" pulumi-lang-python=\"`scheduled_policy`\" pulumi-lang-yaml=\"`scheduledPolicy`\" pulumi-lang-java=\"`scheduledPolicy`\">`scheduled_policy`</span>, and no value is returned for <span pulumi-lang-nodejs=\"`alarmId`\" pulumi-lang-dotnet=\"`AlarmId`\" pulumi-lang-go=\"`alarmId`\" pulumi-lang-python=\"`alarm_id`\" pulumi-lang-yaml=\"`alarmId`\" pulumi-lang-java=\"`alarmId`\">`alarm_id`</span>,\n<span pulumi-lang-nodejs=\"`recurrenceType`\" pulumi-lang-dotnet=\"`RecurrenceType`\" pulumi-lang-go=\"`recurrenceType`\" pulumi-lang-python=\"`recurrence_type`\" pulumi-lang-yaml=\"`recurrenceType`\" pulumi-lang-java=\"`recurrenceType`\">`recurrence_type`</span>, <span pulumi-lang-nodejs=\"`recurrenceValue`\" pulumi-lang-dotnet=\"`RecurrenceValue`\" pulumi-lang-go=\"`recurrenceValue`\" pulumi-lang-python=\"`recurrence_value`\" pulumi-lang-yaml=\"`recurrenceValue`\" pulumi-lang-java=\"`recurrenceValue`\">`recurrence_value`</span>, <span pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\">`start_time`</span>, or <span pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\">`end_time`</span>.\n* `RECURRENCE` - Indicates that the scaling action is triggered periodically.\nValues are returned for <span pulumi-lang-nodejs=\"`scheduledPolicy`\" pulumi-lang-dotnet=\"`ScheduledPolicy`\" pulumi-lang-go=\"`scheduledPolicy`\" pulumi-lang-python=\"`scheduled_policy`\" pulumi-lang-yaml=\"`scheduledPolicy`\" pulumi-lang-java=\"`scheduledPolicy`\">`scheduled_policy`</span>, <span pulumi-lang-nodejs=\"`recurrenceType`\" pulumi-lang-dotnet=\"`RecurrenceType`\" pulumi-lang-go=\"`recurrenceType`\" pulumi-lang-python=\"`recurrence_type`\" pulumi-lang-yaml=\"`recurrenceType`\" pulumi-lang-java=\"`recurrenceType`\">`recurrence_type`</span>, <span pulumi-lang-nodejs=\"`recurrenceValue`\" pulumi-lang-dotnet=\"`RecurrenceValue`\" pulumi-lang-go=\"`recurrenceValue`\" pulumi-lang-python=\"`recurrence_value`\" pulumi-lang-yaml=\"`recurrenceValue`\" pulumi-lang-java=\"`recurrenceValue`\">`recurrence_value`</span>,\n<span pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\">`start_time`</span>, and <span pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\">`end_time`</span>, and no value is returned for <span pulumi-lang-nodejs=\"`alarmId`\" pulumi-lang-dotnet=\"`AlarmId`\" pulumi-lang-go=\"`alarmId`\" pulumi-lang-python=\"`alarm_id`\" pulumi-lang-yaml=\"`alarmId`\" pulumi-lang-java=\"`alarmId`\">`alarm_id`</span>.\n","type":"string"},"scalingResourceId":{"description":"The Scaling resource ID.\n","type":"string"},"scalingResourceType":{"description":"Specifies the scaling resource type. Valid values are:\n* AS group: `SCALING_GROUP`\n* Bandwidth: `BANDWIDTH`\n","type":"string"},"scheduledPolicies":{"description":"Specifies the periodic or scheduled AS policy.\nThis parameter is mandatory when <span pulumi-lang-nodejs=\"`scalingPolicyType`\" pulumi-lang-dotnet=\"`ScalingPolicyType`\" pulumi-lang-go=\"`scalingPolicyType`\" pulumi-lang-python=\"`scaling_policy_type`\" pulumi-lang-yaml=\"`scalingPolicyType`\" pulumi-lang-java=\"`scalingPolicyType`\">`scaling_policy_type`</span> is set to `SCHEDULED` or `RECURRENCE`.\nAfter this parameter is specified, the value of <span pulumi-lang-nodejs=\"`alarmId`\" pulumi-lang-dotnet=\"`AlarmId`\" pulumi-lang-go=\"`alarmId`\" pulumi-lang-python=\"`alarm_id`\" pulumi-lang-yaml=\"`alarmId`\" pulumi-lang-java=\"`alarmId`\">`alarm_id`</span> does not take effect.\nThe <span pulumi-lang-nodejs=\"`scheduledPolicy`\" pulumi-lang-dotnet=\"`ScheduledPolicy`\" pulumi-lang-go=\"`scheduledPolicy`\" pulumi-lang-python=\"`scheduled_policy`\" pulumi-lang-yaml=\"`scheduledPolicy`\" pulumi-lang-java=\"`scheduledPolicy`\">`scheduled_policy`</span> structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FAsPolicyV2ScheduledPolicy:AsPolicyV2ScheduledPolicy"},"type":"array"}},"type":"object"},"type":"object"},"opentelekomcloud:index/asmServiceMeshV1:AsmServiceMeshV1":{"description":"Up-to-date reference of API arguments for ASM service mesh you can get at\n[documentation portal](https://docs.otc.t-systems.com/application-service-mesh/api-ref/api/service_mesh_apis/index.html)\n\nManages an ASM Service Mesh v1 resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Basic ASM service mesh\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst clusterId = config.requireObject<any>(\"clusterId\");\nconst nodeId = config.requireObject<any>(\"nodeId\");\nconst mesh1 = new opentelekomcloud.AsmServiceMeshV1(\"mesh_1\", {\n    name: \"test-asm-service-mesh\",\n    type: \"InCluster\",\n    version: \"1.18.7-r5\",\n    clusters: [{\n        clusterId: clusterId,\n        installationNodes: [nodeId],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ncluster_id = config.require_object(\"clusterId\")\nnode_id = config.require_object(\"nodeId\")\nmesh1 = opentelekomcloud.AsmServiceMeshV1(\"mesh_1\",\n    name=\"test-asm-service-mesh\",\n    type=\"InCluster\",\n    version=\"1.18.7-r5\",\n    clusters=[{\n        \"cluster_id\": cluster_id,\n        \"installation_nodes\": [node_id],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var clusterId = config.RequireObject<dynamic>(\"clusterId\");\n    var nodeId = config.RequireObject<dynamic>(\"nodeId\");\n    var mesh1 = new Opentelekomcloud.AsmServiceMeshV1(\"mesh_1\", new()\n    {\n        Name = \"test-asm-service-mesh\",\n        Type = \"InCluster\",\n        Version = \"1.18.7-r5\",\n        Clusters = new[]\n        {\n            new Opentelekomcloud.Inputs.AsmServiceMeshV1ClusterArgs\n            {\n                ClusterId = clusterId,\n                InstallationNodes = new[]\n                {\n                    nodeId,\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tclusterId := cfg.RequireObject(\"clusterId\")\n\t\tnodeId := cfg.RequireObject(\"nodeId\")\n\t\t_, err := opentelekomcloud.NewAsmServiceMeshV1(ctx, \"mesh_1\", &opentelekomcloud.AsmServiceMeshV1Args{\n\t\t\tName:    pulumi.String(\"test-asm-service-mesh\"),\n\t\t\tType:    pulumi.String(\"InCluster\"),\n\t\t\tVersion: pulumi.String(\"1.18.7-r5\"),\n\t\t\tClusters: opentelekomcloud.AsmServiceMeshV1ClusterArray{\n\t\t\t\t&opentelekomcloud.AsmServiceMeshV1ClusterArgs{\n\t\t\t\t\tClusterId: pulumi.Any(clusterId),\n\t\t\t\t\tInstallationNodes: pulumi.StringArray{\n\t\t\t\t\t\tnodeId,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.AsmServiceMeshV1;\nimport com.pulumi.opentelekomcloud.AsmServiceMeshV1Args;\nimport com.pulumi.opentelekomcloud.inputs.AsmServiceMeshV1ClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var clusterId = config.get(\"clusterId\");\n        final var nodeId = config.get(\"nodeId\");\n        var mesh1 = new AsmServiceMeshV1(\"mesh1\", AsmServiceMeshV1Args.builder()\n            .name(\"test-asm-service-mesh\")\n            .type(\"InCluster\")\n            .version(\"1.18.7-r5\")\n            .clusters(AsmServiceMeshV1ClusterArgs.builder()\n                .clusterId(clusterId)\n                .installationNodes(nodeId)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  clusterId:\n    type: dynamic\n  nodeId:\n    type: dynamic\nresources:\n  mesh1:\n    type: opentelekomcloud:AsmServiceMeshV1\n    name: mesh_1\n    properties:\n      name: test-asm-service-mesh\n      type: InCluster\n      version: 1.18.7-r5\n      clusters:\n        - clusterId: ${clusterId}\n          installationNodes:\n            - ${nodeId}\n```\n<!--End PulumiCodeChooser -->\n\n## Notes\n\nBut due to some attributes missing from the API response, it's required to ignore changes as below:\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst mesh1 = new opentelekomcloud.AsmServiceMeshV1(\"mesh_1\", {});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nmesh1 = opentelekomcloud.AsmServiceMeshV1(\"mesh_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var mesh1 = new Opentelekomcloud.AsmServiceMeshV1(\"mesh_1\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewAsmServiceMeshV1(ctx, \"mesh_1\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.AsmServiceMeshV1;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var mesh1 = new AsmServiceMeshV1(\"mesh1\");\n\n    }\n}\n```\n```yaml\nresources:\n  mesh1:\n    type: opentelekomcloud:AsmServiceMeshV1\n    name: mesh_1\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nASM Service Mesh V1 resource can be imported using the service mesh ID, `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/asmServiceMeshV1:AsmServiceMeshV1 mesh_1 <id>\n```\n\n","inputProperties":{"asmServiceMeshV1Id":{"description":"Service Mesh ID.\n","type":"string"},"clusters":{"description":"Specifies the cluster information in the service mesh. The clusters structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FAsmServiceMeshV1Cluster:AsmServiceMeshV1Cluster"},"type":"array"},"ipv6Enable":{"description":"Specifies whether the service mesh supports IPv6.\n","type":"boolean"},"name":{"description":"Specifies the service mesh name. The name must be 4 to 64 characters long, start with a lowercase letter and not end with a hyphen (-). Only lowercase letters, digits, and hyphens (-) are allowed.\n","type":"string"},"proxyConfig":{"$ref":"#/types/opentelekomcloud:index%2FAsmServiceMeshV1ProxyConfig:AsmServiceMeshV1ProxyConfig","description":"Specifies the data plane configuration of the service mesh. The<span pulumi-lang-nodejs=\" proxyConfig \" pulumi-lang-dotnet=\" ProxyConfig \" pulumi-lang-go=\" proxyConfig \" pulumi-lang-python=\" proxy_config \" pulumi-lang-yaml=\" proxyConfig \" pulumi-lang-java=\" proxyConfig \"> proxy_config </span>structure is documented below.\n"},"telemetryConfigTracing":{"$ref":"#/types/opentelekomcloud:index%2FAsmServiceMeshV1TelemetryConfigTracing:AsmServiceMeshV1TelemetryConfigTracing","description":"Specifies the observability/tracing configuration, which is used to report traces in the service mesh. The<span pulumi-lang-nodejs=\" telemetryConfigTracing \" pulumi-lang-dotnet=\" TelemetryConfigTracing \" pulumi-lang-go=\" telemetryConfigTracing \" pulumi-lang-python=\" telemetry_config_tracing \" pulumi-lang-yaml=\" telemetryConfigTracing \" pulumi-lang-java=\" telemetryConfigTracing \"> telemetry_config_tracing </span>structure is documented below.\n"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FAsmServiceMeshV1Timeouts:AsmServiceMeshV1Timeouts"},"type":{"description":"Specifies the service mesh type. Supported value: `InCluster` (service mesh with an in-cluster control plane). The value is `InCluster` for the service mesh of the Basic edition.\n","type":"string"},"version":{"description":"Specifies the service mesh version.\n","type":"string"}},"properties":{"asmServiceMeshV1Id":{"description":"Service Mesh ID.\n","type":"string"},"clusterIds":{"description":"Indicates the cluster id of CCE clusters associated with service mesh.\n","items":{"type":"string"},"type":"array"},"clusters":{"description":"Specifies the cluster information in the service mesh. The clusters structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FAsmServiceMeshV1Cluster:AsmServiceMeshV1Cluster"},"type":"array"},"creationTimestamp":{"description":"Indicates the time when the service mesh was created..\n","type":"string"},"ipv6Enable":{"description":"Specifies whether the service mesh supports IPv6.\n","type":"boolean"},"name":{"description":"Specifies the service mesh name. The name must be 4 to 64 characters long, start with a lowercase letter and not end with a hyphen (-). Only lowercase letters, digits, and hyphens (-) are allowed.\n","type":"string"},"proxyConfig":{"$ref":"#/types/opentelekomcloud:index%2FAsmServiceMeshV1ProxyConfig:AsmServiceMeshV1ProxyConfig","description":"Specifies the data plane configuration of the service mesh. The<span pulumi-lang-nodejs=\" proxyConfig \" pulumi-lang-dotnet=\" ProxyConfig \" pulumi-lang-go=\" proxyConfig \" pulumi-lang-python=\" proxy_config \" pulumi-lang-yaml=\" proxyConfig \" pulumi-lang-java=\" proxyConfig \"> proxy_config </span>structure is documented below.\n"},"status":{"description":"Indicates the service mesh status. The value can be: `Running`, `Creating`, `CreateFailed`, `Deleting`, `DeleteFailed`, `Upgrading`, `UpgradeFailed`, `RollingBack`, `RollbackFailed`.\n","type":"string"},"telemetryConfigTracing":{"$ref":"#/types/opentelekomcloud:index%2FAsmServiceMeshV1TelemetryConfigTracing:AsmServiceMeshV1TelemetryConfigTracing","description":"Specifies the observability/tracing configuration, which is used to report traces in the service mesh. The<span pulumi-lang-nodejs=\" telemetryConfigTracing \" pulumi-lang-dotnet=\" TelemetryConfigTracing \" pulumi-lang-go=\" telemetryConfigTracing \" pulumi-lang-python=\" telemetry_config_tracing \" pulumi-lang-yaml=\" telemetryConfigTracing \" pulumi-lang-java=\" telemetryConfigTracing \"> telemetry_config_tracing </span>structure is documented below.\n"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FAsmServiceMeshV1Timeouts:AsmServiceMeshV1Timeouts"},"type":{"description":"Specifies the service mesh type. Supported value: `InCluster` (service mesh with an in-cluster control plane). The value is `InCluster` for the service mesh of the Basic edition.\n","type":"string"},"version":{"description":"Specifies the service mesh version.\n","type":"string"}},"required":["asmServiceMeshV1Id","clusterIds","clusters","creationTimestamp","ipv6Enable","name","status","type","version"],"requiredInputs":["clusters","type","version"],"stateInputs":{"description":"Input properties used for looking up and filtering AsmServiceMeshV1 resources.\n","properties":{"asmServiceMeshV1Id":{"description":"Service Mesh ID.\n","type":"string"},"clusterIds":{"description":"Indicates the cluster id of CCE clusters associated with service mesh.\n","items":{"type":"string"},"type":"array"},"clusters":{"description":"Specifies the cluster information in the service mesh. The clusters structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FAsmServiceMeshV1Cluster:AsmServiceMeshV1Cluster"},"type":"array"},"creationTimestamp":{"description":"Indicates the time when the service mesh was created..\n","type":"string"},"ipv6Enable":{"description":"Specifies whether the service mesh supports IPv6.\n","type":"boolean"},"name":{"description":"Specifies the service mesh name. The name must be 4 to 64 characters long, start with a lowercase letter and not end with a hyphen (-). Only lowercase letters, digits, and hyphens (-) are allowed.\n","type":"string"},"proxyConfig":{"$ref":"#/types/opentelekomcloud:index%2FAsmServiceMeshV1ProxyConfig:AsmServiceMeshV1ProxyConfig","description":"Specifies the data plane configuration of the service mesh. The<span pulumi-lang-nodejs=\" proxyConfig \" pulumi-lang-dotnet=\" ProxyConfig \" pulumi-lang-go=\" proxyConfig \" pulumi-lang-python=\" proxy_config \" pulumi-lang-yaml=\" proxyConfig \" pulumi-lang-java=\" proxyConfig \"> proxy_config </span>structure is documented below.\n"},"status":{"description":"Indicates the service mesh status. The value can be: `Running`, `Creating`, `CreateFailed`, `Deleting`, `DeleteFailed`, `Upgrading`, `UpgradeFailed`, `RollingBack`, `RollbackFailed`.\n","type":"string"},"telemetryConfigTracing":{"$ref":"#/types/opentelekomcloud:index%2FAsmServiceMeshV1TelemetryConfigTracing:AsmServiceMeshV1TelemetryConfigTracing","description":"Specifies the observability/tracing configuration, which is used to report traces in the service mesh. The<span pulumi-lang-nodejs=\" telemetryConfigTracing \" pulumi-lang-dotnet=\" TelemetryConfigTracing \" pulumi-lang-go=\" telemetryConfigTracing \" pulumi-lang-python=\" telemetry_config_tracing \" pulumi-lang-yaml=\" telemetryConfigTracing \" pulumi-lang-java=\" telemetryConfigTracing \"> telemetry_config_tracing </span>structure is documented below.\n"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FAsmServiceMeshV1Timeouts:AsmServiceMeshV1Timeouts"},"type":{"description":"Specifies the service mesh type. Supported value: `InCluster` (service mesh with an in-cluster control plane). The value is `InCluster` for the service mesh of the Basic edition.\n","type":"string"},"version":{"description":"Specifies the service mesh version.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/blockstorageVolumeV2:BlockstorageVolumeV2":{"description":"Up-to-date reference of API arguments for EVS blockstorage volume you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-volume-service/api-ref/openstack_cinder_apis_recommended/disk_management/index.html)\n\nManages a V2 volume resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst volume1 = new opentelekomcloud.BlockstorageVolumeV2(\"volume_1\", {\n    name: \"volume_1\",\n    description: \"first test volume\",\n    size: 3,\n    tags: {\n        foo: \"bar\",\n        key: \"value\",\n    },\n    metadata: {\n        __system__encrypted: \"1\",\n        __system__cmkid: \"kms_id\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nvolume1 = opentelekomcloud.BlockstorageVolumeV2(\"volume_1\",\n    name=\"volume_1\",\n    description=\"first test volume\",\n    size=3,\n    tags={\n        \"foo\": \"bar\",\n        \"key\": \"value\",\n    },\n    metadata={\n        \"__system__encrypted\": \"1\",\n        \"__system__cmkid\": \"kms_id\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var volume1 = new Opentelekomcloud.BlockstorageVolumeV2(\"volume_1\", new()\n    {\n        Name = \"volume_1\",\n        Description = \"first test volume\",\n        Size = 3,\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"key\", \"value\" },\n        },\n        Metadata = \n        {\n            { \"__system__encrypted\", \"1\" },\n            { \"__system__cmkid\", \"kms_id\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewBlockstorageVolumeV2(ctx, \"volume_1\", &opentelekomcloud.BlockstorageVolumeV2Args{\n\t\t\tName:        pulumi.String(\"volume_1\"),\n\t\t\tDescription: pulumi.String(\"first test volume\"),\n\t\t\tSize:        pulumi.Float64(3),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t\tMetadata: pulumi.StringMap{\n\t\t\t\t\"__system__encrypted\": pulumi.String(\"1\"),\n\t\t\t\t\"__system__cmkid\":     pulumi.String(\"kms_id\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.BlockstorageVolumeV2;\nimport com.pulumi.opentelekomcloud.BlockstorageVolumeV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var volume1 = new BlockstorageVolumeV2(\"volume1\", BlockstorageVolumeV2Args.builder()\n            .name(\"volume_1\")\n            .description(\"first test volume\")\n            .size(3.0)\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .metadata(Map.ofEntries(\n                Map.entry(\"__system__encrypted\", \"1\"),\n                Map.entry(\"__system__cmkid\", \"kms_id\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  volume1:\n    type: opentelekomcloud:BlockstorageVolumeV2\n    name: volume_1\n    properties:\n      name: volume_1\n      description: first test volume\n      size: 3\n      tags:\n        foo: bar\n        key: value\n      metadata:\n        __system__encrypted: '1'\n        __system__cmkid: kms_id\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nVolumes can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/blockstorageVolumeV2:BlockstorageVolumeV2 volume_1 ea257959-eeb1-4c10-8d33-26f0409a755d\n```\n\n","inputProperties":{"availabilityZone":{"description":"The availability zone for the volume.\nChanging this creates a new volume.\n","type":"string"},"blockstorageVolumeV2Id":{"type":"string"},"cascade":{"description":"Specifies to delete all snapshots associated with the EVS disk.\n","type":"boolean"},"consistencyGroupId":{"description":"The consistency group to place the volume in.\n","type":"string"},"description":{"description":"A description of the volume. Changing this updates\nthe volume's description.\n","type":"string"},"deviceType":{"description":"The device type of volume to create. Valid options are VBD and SCSI.\nDefaults to VBD. Changing this creates a new volume.\n","type":"string"},"imageId":{"description":"The image ID from which to create the volume.\nChanging this creates a new volume.\n","type":"string"},"metadata":{"additionalProperties":{"type":"string"},"description":"Metadata key/value pairs to associate with the volume.\nChanging this updates the existing volume metadata.\nThe EVS encryption capability with KMS key can be set with the following parameters:\n","type":"object"},"name":{"description":"A unique name for the volume. Changing this updates the\nvolume's name.\n","type":"string"},"region":{"type":"string"},"size":{"description":"The size of the volume to create (in gigabytes). Decreasing\nthis parameter creates a new volume.\n","type":"number"},"snapshotId":{"description":"The snapshot ID from which to create the volume.\nChanging this creates a new volume.\n","type":"string"},"sourceReplica":{"description":"The volume ID to replicate with.\n","type":"string"},"sourceVolId":{"description":"The volume ID from which to create the volume.\nChanging this creates a new volume.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the volume.\nChanging this updates the existing volume tags.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FBlockstorageVolumeV2Timeouts:BlockstorageVolumeV2Timeouts"},"volumeType":{"description":"Currently, the value can be \n* `SATA`: common I/O disk type.\n* `SAS`: high I/O disk type.\n* `SSD`: ultra-high I/O disk type.\n* `GPSSD`: the general purpose SSD type\n* `ESSD`: the extreme SSD type\n\n> **NOTE:**\nCommon I/O (SATA) will reach end of life, end of 2025.\n","type":"string"}},"properties":{"attachments":{"description":"If a volume is attached to an instance, this attribute will\ndisplay the Attachment ID, Instance ID, and the Device as the Instance sees it.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FBlockstorageVolumeV2Attachment:BlockstorageVolumeV2Attachment"},"type":"array"},"availabilityZone":{"description":"The availability zone for the volume.\nChanging this creates a new volume.\n","type":"string"},"blockstorageVolumeV2Id":{"type":"string"},"cascade":{"description":"Specifies to delete all snapshots associated with the EVS disk.\n","type":"boolean"},"consistencyGroupId":{"description":"The consistency group to place the volume in.\n","type":"string"},"description":{"description":"A description of the volume. Changing this updates\nthe volume's description.\n","type":"string"},"deviceType":{"description":"The device type of volume to create. Valid options are VBD and SCSI.\nDefaults to VBD. Changing this creates a new volume.\n","type":"string"},"imageId":{"description":"The image ID from which to create the volume.\nChanging this creates a new volume.\n","type":"string"},"metadata":{"additionalProperties":{"type":"string"},"description":"Metadata key/value pairs to associate with the volume.\nChanging this updates the existing volume metadata.\nThe EVS encryption capability with KMS key can be set with the following parameters:\n","type":"object"},"name":{"description":"A unique name for the volume. Changing this updates the\nvolume's name.\n","type":"string"},"region":{"type":"string"},"size":{"description":"The size of the volume to create (in gigabytes). Decreasing\nthis parameter creates a new volume.\n","type":"number"},"snapshotId":{"description":"The snapshot ID from which to create the volume.\nChanging this creates a new volume.\n","type":"string"},"sourceReplica":{"description":"The volume ID to replicate with.\n","type":"string"},"sourceVolId":{"description":"The volume ID from which to create the volume.\nChanging this creates a new volume.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the volume.\nChanging this updates the existing volume tags.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FBlockstorageVolumeV2Timeouts:BlockstorageVolumeV2Timeouts"},"volumeType":{"description":"Currently, the value can be \n* `SATA`: common I/O disk type.\n* `SAS`: high I/O disk type.\n* `SSD`: ultra-high I/O disk type.\n* `GPSSD`: the general purpose SSD type\n* `ESSD`: the extreme SSD type\n\n> **NOTE:**\nCommon I/O (SATA) will reach end of life, end of 2025.\n","type":"string"},"wwn":{"description":"Specifies the unique identifier used for mounting the EVS disk.\n","type":"string"}},"required":["attachments","availabilityZone","blockstorageVolumeV2Id","metadata","name","region","size","volumeType","wwn"],"requiredInputs":["size"],"stateInputs":{"description":"Input properties used for looking up and filtering BlockstorageVolumeV2 resources.\n","properties":{"attachments":{"description":"If a volume is attached to an instance, this attribute will\ndisplay the Attachment ID, Instance ID, and the Device as the Instance sees it.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FBlockstorageVolumeV2Attachment:BlockstorageVolumeV2Attachment"},"type":"array"},"availabilityZone":{"description":"The availability zone for the volume.\nChanging this creates a new volume.\n","type":"string"},"blockstorageVolumeV2Id":{"type":"string"},"cascade":{"description":"Specifies to delete all snapshots associated with the EVS disk.\n","type":"boolean"},"consistencyGroupId":{"description":"The consistency group to place the volume in.\n","type":"string"},"description":{"description":"A description of the volume. Changing this updates\nthe volume's description.\n","type":"string"},"deviceType":{"description":"The device type of volume to create. Valid options are VBD and SCSI.\nDefaults to VBD. Changing this creates a new volume.\n","type":"string"},"imageId":{"description":"The image ID from which to create the volume.\nChanging this creates a new volume.\n","type":"string"},"metadata":{"additionalProperties":{"type":"string"},"description":"Metadata key/value pairs to associate with the volume.\nChanging this updates the existing volume metadata.\nThe EVS encryption capability with KMS key can be set with the following parameters:\n","type":"object"},"name":{"description":"A unique name for the volume. Changing this updates the\nvolume's name.\n","type":"string"},"region":{"type":"string"},"size":{"description":"The size of the volume to create (in gigabytes). Decreasing\nthis parameter creates a new volume.\n","type":"number"},"snapshotId":{"description":"The snapshot ID from which to create the volume.\nChanging this creates a new volume.\n","type":"string"},"sourceReplica":{"description":"The volume ID to replicate with.\n","type":"string"},"sourceVolId":{"description":"The volume ID from which to create the volume.\nChanging this creates a new volume.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the volume.\nChanging this updates the existing volume tags.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FBlockstorageVolumeV2Timeouts:BlockstorageVolumeV2Timeouts"},"volumeType":{"description":"Currently, the value can be \n* `SATA`: common I/O disk type.\n* `SAS`: high I/O disk type.\n* `SSD`: ultra-high I/O disk type.\n* `GPSSD`: the general purpose SSD type\n* `ESSD`: the extreme SSD type\n\n> **NOTE:**\nCommon I/O (SATA) will reach end of life, end of 2025.\n","type":"string"},"wwn":{"description":"Specifies the unique identifier used for mounting the EVS disk.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cbrPolicyV3:CbrPolicyV3":{"description":"Up-to-date reference of API arguments for CBR policy you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-backup-recovery/api-ref/cbr_apis/policies)\n\nManages a V3 CBR policy resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst policy = new opentelekomcloud.CbrPolicyV3(\"policy\", {\n    name: \"some-policy\",\n    operationType: \"backup\",\n    triggerPatterns: [\"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU;BYHOUR=14;BYMINUTE=00\"],\n    operationDefinition: {\n        dayBackups: 1,\n        weekBackups: 2,\n        yearBackups: 3,\n        monthBackups: 4,\n        maxBackups: 10,\n        timezone: \"UTC+03:00\",\n    },\n    enabled: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\npolicy = opentelekomcloud.CbrPolicyV3(\"policy\",\n    name=\"some-policy\",\n    operation_type=\"backup\",\n    trigger_patterns=[\"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU;BYHOUR=14;BYMINUTE=00\"],\n    operation_definition={\n        \"day_backups\": 1,\n        \"week_backups\": 2,\n        \"year_backups\": 3,\n        \"month_backups\": 4,\n        \"max_backups\": 10,\n        \"timezone\": \"UTC+03:00\",\n    },\n    enabled=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var policy = new Opentelekomcloud.CbrPolicyV3(\"policy\", new()\n    {\n        Name = \"some-policy\",\n        OperationType = \"backup\",\n        TriggerPatterns = new[]\n        {\n            \"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU;BYHOUR=14;BYMINUTE=00\",\n        },\n        OperationDefinition = new Opentelekomcloud.Inputs.CbrPolicyV3OperationDefinitionArgs\n        {\n            DayBackups = 1,\n            WeekBackups = 2,\n            YearBackups = 3,\n            MonthBackups = 4,\n            MaxBackups = 10,\n            Timezone = \"UTC+03:00\",\n        },\n        Enabled = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewCbrPolicyV3(ctx, \"policy\", &opentelekomcloud.CbrPolicyV3Args{\n\t\t\tName:          pulumi.String(\"some-policy\"),\n\t\t\tOperationType: pulumi.String(\"backup\"),\n\t\t\tTriggerPatterns: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU;BYHOUR=14;BYMINUTE=00\"),\n\t\t\t},\n\t\t\tOperationDefinition: &opentelekomcloud.CbrPolicyV3OperationDefinitionArgs{\n\t\t\t\tDayBackups:   pulumi.Float64(1),\n\t\t\t\tWeekBackups:  pulumi.Float64(2),\n\t\t\t\tYearBackups:  pulumi.Float64(3),\n\t\t\t\tMonthBackups: pulumi.Float64(4),\n\t\t\t\tMaxBackups:   pulumi.Float64(10),\n\t\t\t\tTimezone:     pulumi.String(\"UTC+03:00\"),\n\t\t\t},\n\t\t\tEnabled: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CbrPolicyV3;\nimport com.pulumi.opentelekomcloud.CbrPolicyV3Args;\nimport com.pulumi.opentelekomcloud.inputs.CbrPolicyV3OperationDefinitionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var policy = new CbrPolicyV3(\"policy\", CbrPolicyV3Args.builder()\n            .name(\"some-policy\")\n            .operationType(\"backup\")\n            .triggerPatterns(\"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU;BYHOUR=14;BYMINUTE=00\")\n            .operationDefinition(CbrPolicyV3OperationDefinitionArgs.builder()\n                .dayBackups(1.0)\n                .weekBackups(2.0)\n                .yearBackups(3.0)\n                .monthBackups(4.0)\n                .maxBackups(10.0)\n                .timezone(\"UTC+03:00\")\n                .build())\n            .enabled(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  policy:\n    type: opentelekomcloud:CbrPolicyV3\n    properties:\n      name: some-policy\n      operationType: backup\n      triggerPatterns:\n        - FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU;BYHOUR=14;BYMINUTE=00\n      operationDefinition:\n        dayBackups: 1\n        weekBackups: 2\n        yearBackups: 3\n        monthBackups: 4\n        maxBackups: 10\n        timezone: UTC+03:00\n      enabled: 'false'\n```\n<!--End PulumiCodeChooser -->\n\n### Create a replication policy (periodic backup)\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst policyName = config.requireObject<any>(\"policyName\");\nconst destinationRegion = config.requireObject<any>(\"destinationRegion\");\nconst destinationProjectId = config.requireObject<any>(\"destinationProjectId\");\nconst policy = new opentelekomcloud.CbrPolicyV3(\"policy\", {\n    name: policyName,\n    operationType: \"replication\",\n    destinationRegion: destinationRegion,\n    destinationProjectId: destinationProjectId,\n    triggerPatterns: [\"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU;BYHOUR=14;BYMINUTE=00\"],\n    operationDefinition: {\n        dayBackups: 1,\n        weekBackups: 2,\n        yearBackups: 3,\n        monthBackups: 4,\n        maxBackups: 10,\n        timezone: \"UTC+03:00\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\npolicy_name = config.require_object(\"policyName\")\ndestination_region = config.require_object(\"destinationRegion\")\ndestination_project_id = config.require_object(\"destinationProjectId\")\npolicy = opentelekomcloud.CbrPolicyV3(\"policy\",\n    name=policy_name,\n    operation_type=\"replication\",\n    destination_region=destination_region,\n    destination_project_id=destination_project_id,\n    trigger_patterns=[\"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU;BYHOUR=14;BYMINUTE=00\"],\n    operation_definition={\n        \"day_backups\": 1,\n        \"week_backups\": 2,\n        \"year_backups\": 3,\n        \"month_backups\": 4,\n        \"max_backups\": 10,\n        \"timezone\": \"UTC+03:00\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var policyName = config.RequireObject<dynamic>(\"policyName\");\n    var destinationRegion = config.RequireObject<dynamic>(\"destinationRegion\");\n    var destinationProjectId = config.RequireObject<dynamic>(\"destinationProjectId\");\n    var policy = new Opentelekomcloud.CbrPolicyV3(\"policy\", new()\n    {\n        Name = policyName,\n        OperationType = \"replication\",\n        DestinationRegion = destinationRegion,\n        DestinationProjectId = destinationProjectId,\n        TriggerPatterns = new[]\n        {\n            \"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU;BYHOUR=14;BYMINUTE=00\",\n        },\n        OperationDefinition = new Opentelekomcloud.Inputs.CbrPolicyV3OperationDefinitionArgs\n        {\n            DayBackups = 1,\n            WeekBackups = 2,\n            YearBackups = 3,\n            MonthBackups = 4,\n            MaxBackups = 10,\n            Timezone = \"UTC+03:00\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tpolicyName := cfg.RequireObject(\"policyName\")\n\t\tdestinationRegion := cfg.RequireObject(\"destinationRegion\")\n\t\tdestinationProjectId := cfg.RequireObject(\"destinationProjectId\")\n\t\t_, err := opentelekomcloud.NewCbrPolicyV3(ctx, \"policy\", &opentelekomcloud.CbrPolicyV3Args{\n\t\t\tName:                 pulumi.Any(policyName),\n\t\t\tOperationType:        pulumi.String(\"replication\"),\n\t\t\tDestinationRegion:    pulumi.Any(destinationRegion),\n\t\t\tDestinationProjectId: pulumi.Any(destinationProjectId),\n\t\t\tTriggerPatterns: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU;BYHOUR=14;BYMINUTE=00\"),\n\t\t\t},\n\t\t\tOperationDefinition: &opentelekomcloud.CbrPolicyV3OperationDefinitionArgs{\n\t\t\t\tDayBackups:   pulumi.Float64(1),\n\t\t\t\tWeekBackups:  pulumi.Float64(2),\n\t\t\t\tYearBackups:  pulumi.Float64(3),\n\t\t\t\tMonthBackups: pulumi.Float64(4),\n\t\t\t\tMaxBackups:   pulumi.Float64(10),\n\t\t\t\tTimezone:     pulumi.String(\"UTC+03:00\"),\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.opentelekomcloud.CbrPolicyV3;\nimport com.pulumi.opentelekomcloud.CbrPolicyV3Args;\nimport com.pulumi.opentelekomcloud.inputs.CbrPolicyV3OperationDefinitionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var policyName = config.get(\"policyName\");\n        final var destinationRegion = config.get(\"destinationRegion\");\n        final var destinationProjectId = config.get(\"destinationProjectId\");\n        var policy = new CbrPolicyV3(\"policy\", CbrPolicyV3Args.builder()\n            .name(policyName)\n            .operationType(\"replication\")\n            .destinationRegion(destinationRegion)\n            .destinationProjectId(destinationProjectId)\n            .triggerPatterns(\"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU;BYHOUR=14;BYMINUTE=00\")\n            .operationDefinition(CbrPolicyV3OperationDefinitionArgs.builder()\n                .dayBackups(1.0)\n                .weekBackups(2.0)\n                .yearBackups(3.0)\n                .monthBackups(4.0)\n                .maxBackups(10.0)\n                .timezone(\"UTC+03:00\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  policyName:\n    type: dynamic\n  destinationRegion:\n    type: dynamic\n  destinationProjectId:\n    type: dynamic\nresources:\n  policy:\n    type: opentelekomcloud:CbrPolicyV3\n    properties:\n      name: ${policyName}\n      operationType: replication\n      destinationRegion: ${destinationRegion}\n      destinationProjectId: ${destinationProjectId}\n      triggerPatterns:\n        - FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU;BYHOUR=14;BYMINUTE=00\n      operationDefinition:\n        dayBackups: 1\n        weekBackups: 2\n        yearBackups: 3\n        monthBackups: 4\n        maxBackups: 10\n        timezone: UTC+03:00\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nVolumes can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/cbrPolicyV3:CbrPolicyV3 policy ea257959-eeb1-4c10-8d33-26f0409a766a\n```\n\n","inputProperties":{"cbrPolicyV3Id":{"type":"string"},"destinationProjectId":{"description":"Specifies the ID of the replication destination project, which is\nmandatory for cross-region replication. Required if <span pulumi-lang-nodejs=\"`operationType`\" pulumi-lang-dotnet=\"`OperationType`\" pulumi-lang-go=\"`operationType`\" pulumi-lang-python=\"`operation_type`\" pulumi-lang-yaml=\"`operationType`\" pulumi-lang-java=\"`operationType`\">`operation_type`</span> is <span pulumi-lang-nodejs=\"`replication`\" pulumi-lang-dotnet=\"`Replication`\" pulumi-lang-go=\"`replication`\" pulumi-lang-python=\"`replication`\" pulumi-lang-yaml=\"`replication`\" pulumi-lang-java=\"`replication`\">`replication`</span>.\n","type":"string"},"destinationRegion":{"description":"Specifies the name of the replication destination region, which is mandatory\nfor cross-region replication. Required if <span pulumi-lang-nodejs=\"`operationType`\" pulumi-lang-dotnet=\"`OperationType`\" pulumi-lang-go=\"`operationType`\" pulumi-lang-python=\"`operation_type`\" pulumi-lang-yaml=\"`operationType`\" pulumi-lang-java=\"`operationType`\">`operation_type`</span> is <span pulumi-lang-nodejs=\"`replication`\" pulumi-lang-dotnet=\"`Replication`\" pulumi-lang-go=\"`replication`\" pulumi-lang-python=\"`replication`\" pulumi-lang-yaml=\"`replication`\" pulumi-lang-java=\"`replication`\">`replication`</span>.\n","type":"string"},"enabled":{"description":"Whether to enable the policy. Default value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"name":{"description":"Specifies the policy name. The value consists of 1 to 64 characters\nand can contain only letters, digits, underscores (_), and hyphens (-).\n","type":"string"},"operationDefinition":{"$ref":"#/types/opentelekomcloud:index%2FCbrPolicyV3OperationDefinition:CbrPolicyV3OperationDefinition","description":"Scheduling parameter. See reference below.\n"},"operationType":{"description":"Policy type. Enumeration values: <span pulumi-lang-nodejs=\"`backup`\" pulumi-lang-dotnet=\"`Backup`\" pulumi-lang-go=\"`backup`\" pulumi-lang-python=\"`backup`\" pulumi-lang-yaml=\"`backup`\" pulumi-lang-java=\"`backup`\">`backup`</span>, <span pulumi-lang-nodejs=\"`replication`\" pulumi-lang-dotnet=\"`Replication`\" pulumi-lang-go=\"`replication`\" pulumi-lang-python=\"`replication`\" pulumi-lang-yaml=\"`replication`\" pulumi-lang-java=\"`replication`\">`replication`</span>.\n","type":"string"},"triggerPatterns":{"description":"Scheduling rule. In the replication policy, you are advised\nto set one time point for one day. A maximum of 24 rules can be configured. The scheduling\nrule complies with iCalendar RFC 2445, but it supports only parameters `FREQ`, `BYDAY`, `BYHOUR`,\n`BYMINUTE`, and `INTERVAL`. `FREQ` can be set only to `WEEKLY` and `DAILY`.\n\nThe <span pulumi-lang-nodejs=\"`operationDefinition`\" pulumi-lang-dotnet=\"`OperationDefinition`\" pulumi-lang-go=\"`operationDefinition`\" pulumi-lang-python=\"`operation_definition`\" pulumi-lang-yaml=\"`operationDefinition`\" pulumi-lang-java=\"`operationDefinition`\">`operation_definition`</span> block contains:\n","items":{"type":"string"},"type":"array"}},"properties":{"cbrPolicyV3Id":{"type":"string"},"destinationProjectId":{"description":"Specifies the ID of the replication destination project, which is\nmandatory for cross-region replication. Required if <span pulumi-lang-nodejs=\"`operationType`\" pulumi-lang-dotnet=\"`OperationType`\" pulumi-lang-go=\"`operationType`\" pulumi-lang-python=\"`operation_type`\" pulumi-lang-yaml=\"`operationType`\" pulumi-lang-java=\"`operationType`\">`operation_type`</span> is <span pulumi-lang-nodejs=\"`replication`\" pulumi-lang-dotnet=\"`Replication`\" pulumi-lang-go=\"`replication`\" pulumi-lang-python=\"`replication`\" pulumi-lang-yaml=\"`replication`\" pulumi-lang-java=\"`replication`\">`replication`</span>.\n","type":"string"},"destinationRegion":{"description":"Specifies the name of the replication destination region, which is mandatory\nfor cross-region replication. Required if <span pulumi-lang-nodejs=\"`operationType`\" pulumi-lang-dotnet=\"`OperationType`\" pulumi-lang-go=\"`operationType`\" pulumi-lang-python=\"`operation_type`\" pulumi-lang-yaml=\"`operationType`\" pulumi-lang-java=\"`operationType`\">`operation_type`</span> is <span pulumi-lang-nodejs=\"`replication`\" pulumi-lang-dotnet=\"`Replication`\" pulumi-lang-go=\"`replication`\" pulumi-lang-python=\"`replication`\" pulumi-lang-yaml=\"`replication`\" pulumi-lang-java=\"`replication`\">`replication`</span>.\n","type":"string"},"enabled":{"description":"Whether to enable the policy. Default value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"name":{"description":"Specifies the policy name. The value consists of 1 to 64 characters\nand can contain only letters, digits, underscores (_), and hyphens (-).\n","type":"string"},"operationDefinition":{"$ref":"#/types/opentelekomcloud:index%2FCbrPolicyV3OperationDefinition:CbrPolicyV3OperationDefinition","description":"Scheduling parameter. See reference below.\n"},"operationType":{"description":"Policy type. Enumeration values: <span pulumi-lang-nodejs=\"`backup`\" pulumi-lang-dotnet=\"`Backup`\" pulumi-lang-go=\"`backup`\" pulumi-lang-python=\"`backup`\" pulumi-lang-yaml=\"`backup`\" pulumi-lang-java=\"`backup`\">`backup`</span>, <span pulumi-lang-nodejs=\"`replication`\" pulumi-lang-dotnet=\"`Replication`\" pulumi-lang-go=\"`replication`\" pulumi-lang-python=\"`replication`\" pulumi-lang-yaml=\"`replication`\" pulumi-lang-java=\"`replication`\">`replication`</span>.\n","type":"string"},"region":{"description":"Specifies the region of the CBRv3 policy.\n","type":"string"},"triggerPatterns":{"description":"Scheduling rule. In the replication policy, you are advised\nto set one time point for one day. A maximum of 24 rules can be configured. The scheduling\nrule complies with iCalendar RFC 2445, but it supports only parameters `FREQ`, `BYDAY`, `BYHOUR`,\n`BYMINUTE`, and `INTERVAL`. `FREQ` can be set only to `WEEKLY` and `DAILY`.\n\nThe <span pulumi-lang-nodejs=\"`operationDefinition`\" pulumi-lang-dotnet=\"`OperationDefinition`\" pulumi-lang-go=\"`operationDefinition`\" pulumi-lang-python=\"`operation_definition`\" pulumi-lang-yaml=\"`operationDefinition`\" pulumi-lang-java=\"`operationDefinition`\">`operation_definition`</span> block contains:\n","items":{"type":"string"},"type":"array"}},"required":["cbrPolicyV3Id","name","operationType","region","triggerPatterns"],"requiredInputs":["operationType","triggerPatterns"],"stateInputs":{"description":"Input properties used for looking up and filtering CbrPolicyV3 resources.\n","properties":{"cbrPolicyV3Id":{"type":"string"},"destinationProjectId":{"description":"Specifies the ID of the replication destination project, which is\nmandatory for cross-region replication. Required if <span pulumi-lang-nodejs=\"`operationType`\" pulumi-lang-dotnet=\"`OperationType`\" pulumi-lang-go=\"`operationType`\" pulumi-lang-python=\"`operation_type`\" pulumi-lang-yaml=\"`operationType`\" pulumi-lang-java=\"`operationType`\">`operation_type`</span> is <span pulumi-lang-nodejs=\"`replication`\" pulumi-lang-dotnet=\"`Replication`\" pulumi-lang-go=\"`replication`\" pulumi-lang-python=\"`replication`\" pulumi-lang-yaml=\"`replication`\" pulumi-lang-java=\"`replication`\">`replication`</span>.\n","type":"string"},"destinationRegion":{"description":"Specifies the name of the replication destination region, which is mandatory\nfor cross-region replication. Required if <span pulumi-lang-nodejs=\"`operationType`\" pulumi-lang-dotnet=\"`OperationType`\" pulumi-lang-go=\"`operationType`\" pulumi-lang-python=\"`operation_type`\" pulumi-lang-yaml=\"`operationType`\" pulumi-lang-java=\"`operationType`\">`operation_type`</span> is <span pulumi-lang-nodejs=\"`replication`\" pulumi-lang-dotnet=\"`Replication`\" pulumi-lang-go=\"`replication`\" pulumi-lang-python=\"`replication`\" pulumi-lang-yaml=\"`replication`\" pulumi-lang-java=\"`replication`\">`replication`</span>.\n","type":"string"},"enabled":{"description":"Whether to enable the policy. Default value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"name":{"description":"Specifies the policy name. The value consists of 1 to 64 characters\nand can contain only letters, digits, underscores (_), and hyphens (-).\n","type":"string"},"operationDefinition":{"$ref":"#/types/opentelekomcloud:index%2FCbrPolicyV3OperationDefinition:CbrPolicyV3OperationDefinition","description":"Scheduling parameter. See reference below.\n"},"operationType":{"description":"Policy type. Enumeration values: <span pulumi-lang-nodejs=\"`backup`\" pulumi-lang-dotnet=\"`Backup`\" pulumi-lang-go=\"`backup`\" pulumi-lang-python=\"`backup`\" pulumi-lang-yaml=\"`backup`\" pulumi-lang-java=\"`backup`\">`backup`</span>, <span pulumi-lang-nodejs=\"`replication`\" pulumi-lang-dotnet=\"`Replication`\" pulumi-lang-go=\"`replication`\" pulumi-lang-python=\"`replication`\" pulumi-lang-yaml=\"`replication`\" pulumi-lang-java=\"`replication`\">`replication`</span>.\n","type":"string"},"region":{"description":"Specifies the region of the CBRv3 policy.\n","type":"string"},"triggerPatterns":{"description":"Scheduling rule. In the replication policy, you are advised\nto set one time point for one day. A maximum of 24 rules can be configured. The scheduling\nrule complies with iCalendar RFC 2445, but it supports only parameters `FREQ`, `BYDAY`, `BYHOUR`,\n`BYMINUTE`, and `INTERVAL`. `FREQ` can be set only to `WEEKLY` and `DAILY`.\n\nThe <span pulumi-lang-nodejs=\"`operationDefinition`\" pulumi-lang-dotnet=\"`OperationDefinition`\" pulumi-lang-go=\"`operationDefinition`\" pulumi-lang-python=\"`operation_definition`\" pulumi-lang-yaml=\"`operationDefinition`\" pulumi-lang-java=\"`operationDefinition`\">`operation_definition`</span> block contains:\n","items":{"type":"string"},"type":"array"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cbrVaultV3:CbrVaultV3":{"description":"Up-to-date reference of API arguments for CBR vault you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-backup-recovery/api-ref/cbr_apis/vaults)\n\nManages a V3 CBR Vault resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Simple vault\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst vault = new opentelekomcloud.CbrVaultV3(\"vault\", {\n    name: \"cbr-vault-test\",\n    description: \"CBR vault for terraform provider test\",\n    billing: {\n        size: 100,\n        objectType: \"disk\",\n        protectType: \"backup\",\n        chargingMode: \"post_paid\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nvault = opentelekomcloud.CbrVaultV3(\"vault\",\n    name=\"cbr-vault-test\",\n    description=\"CBR vault for terraform provider test\",\n    billing={\n        \"size\": 100,\n        \"object_type\": \"disk\",\n        \"protect_type\": \"backup\",\n        \"charging_mode\": \"post_paid\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var vault = new Opentelekomcloud.CbrVaultV3(\"vault\", new()\n    {\n        Name = \"cbr-vault-test\",\n        Description = \"CBR vault for terraform provider test\",\n        Billing = new Opentelekomcloud.Inputs.CbrVaultV3BillingArgs\n        {\n            Size = 100,\n            ObjectType = \"disk\",\n            ProtectType = \"backup\",\n            ChargingMode = \"post_paid\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewCbrVaultV3(ctx, \"vault\", &opentelekomcloud.CbrVaultV3Args{\n\t\t\tName:        pulumi.String(\"cbr-vault-test\"),\n\t\t\tDescription: pulumi.String(\"CBR vault for terraform provider test\"),\n\t\t\tBilling: &opentelekomcloud.CbrVaultV3BillingArgs{\n\t\t\t\tSize:         pulumi.Float64(100),\n\t\t\t\tObjectType:   pulumi.String(\"disk\"),\n\t\t\t\tProtectType:  pulumi.String(\"backup\"),\n\t\t\t\tChargingMode: pulumi.String(\"post_paid\"),\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.opentelekomcloud.CbrVaultV3;\nimport com.pulumi.opentelekomcloud.CbrVaultV3Args;\nimport com.pulumi.opentelekomcloud.inputs.CbrVaultV3BillingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var vault = new CbrVaultV3(\"vault\", CbrVaultV3Args.builder()\n            .name(\"cbr-vault-test\")\n            .description(\"CBR vault for terraform provider test\")\n            .billing(CbrVaultV3BillingArgs.builder()\n                .size(100.0)\n                .objectType(\"disk\")\n                .protectType(\"backup\")\n                .chargingMode(\"post_paid\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vault:\n    type: opentelekomcloud:CbrVaultV3\n    properties:\n      name: cbr-vault-test\n      description: CBR vault for terraform provider test\n      billing:\n        size: 100\n        objectType: disk\n        protectType: backup\n        chargingMode: post_paid\n```\n<!--End PulumiCodeChooser -->\n\n### Vault with associated resource (server)\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst vault = new opentelekomcloud.CbrVaultV3(\"vault\", {\n    name: \"cbr-vault-test\",\n    description: \"CBR vault for terraform provider test\",\n    billing: {\n        size: 100,\n        objectType: \"disk\",\n        protectType: \"backup\",\n        chargingMode: \"post_paid\",\n    },\n    resources: [{\n        id: instance.id,\n        type: \"OS::Nova::Server\",\n        excludeVolumes: [instance1.dataDisks[1].id],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nvault = opentelekomcloud.CbrVaultV3(\"vault\",\n    name=\"cbr-vault-test\",\n    description=\"CBR vault for terraform provider test\",\n    billing={\n        \"size\": 100,\n        \"object_type\": \"disk\",\n        \"protect_type\": \"backup\",\n        \"charging_mode\": \"post_paid\",\n    },\n    resources=[{\n        \"id\": instance[\"id\"],\n        \"type\": \"OS::Nova::Server\",\n        \"exclude_volumes\": [instance1[\"dataDisks\"][1][\"id\"]],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var vault = new Opentelekomcloud.CbrVaultV3(\"vault\", new()\n    {\n        Name = \"cbr-vault-test\",\n        Description = \"CBR vault for terraform provider test\",\n        Billing = new Opentelekomcloud.Inputs.CbrVaultV3BillingArgs\n        {\n            Size = 100,\n            ObjectType = \"disk\",\n            ProtectType = \"backup\",\n            ChargingMode = \"post_paid\",\n        },\n        Resources = new[]\n        {\n            new Opentelekomcloud.Inputs.CbrVaultV3ResourceArgs\n            {\n                Id = instance.Id,\n                Type = \"OS::Nova::Server\",\n                ExcludeVolumes = new[]\n                {\n                    instance1.DataDisks[1].Id,\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewCbrVaultV3(ctx, \"vault\", &opentelekomcloud.CbrVaultV3Args{\n\t\t\tName:        pulumi.String(\"cbr-vault-test\"),\n\t\t\tDescription: pulumi.String(\"CBR vault for terraform provider test\"),\n\t\t\tBilling: &opentelekomcloud.CbrVaultV3BillingArgs{\n\t\t\t\tSize:         pulumi.Float64(100),\n\t\t\t\tObjectType:   pulumi.String(\"disk\"),\n\t\t\t\tProtectType:  pulumi.String(\"backup\"),\n\t\t\t\tChargingMode: pulumi.String(\"post_paid\"),\n\t\t\t},\n\t\t\tResources: opentelekomcloud.CbrVaultV3ResourceArray{\n\t\t\t\t&opentelekomcloud.CbrVaultV3ResourceArgs{\n\t\t\t\t\tId:   pulumi.Any(instance.Id),\n\t\t\t\t\tType: pulumi.String(\"OS::Nova::Server\"),\n\t\t\t\t\tExcludeVolumes: pulumi.StringArray{\n\t\t\t\t\t\tinstance1.DataDisks[1].Id,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CbrVaultV3;\nimport com.pulumi.opentelekomcloud.CbrVaultV3Args;\nimport com.pulumi.opentelekomcloud.inputs.CbrVaultV3BillingArgs;\nimport com.pulumi.opentelekomcloud.inputs.CbrVaultV3ResourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var vault = new CbrVaultV3(\"vault\", CbrVaultV3Args.builder()\n            .name(\"cbr-vault-test\")\n            .description(\"CBR vault for terraform provider test\")\n            .billing(CbrVaultV3BillingArgs.builder()\n                .size(100.0)\n                .objectType(\"disk\")\n                .protectType(\"backup\")\n                .chargingMode(\"post_paid\")\n                .build())\n            .resources(CbrVaultV3ResourceArgs.builder()\n                .id(instance.id())\n                .type(\"OS::Nova::Server\")\n                .excludeVolumes(instance1.dataDisks()[1].id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vault:\n    type: opentelekomcloud:CbrVaultV3\n    properties:\n      name: cbr-vault-test\n      description: CBR vault for terraform provider test\n      billing:\n        size: 100\n        objectType: disk\n        protectType: backup\n        chargingMode: post_paid\n      resources:\n        - id: ${instance.id}\n          type: OS::Nova::Server\n          excludeVolumes:\n            - ${instance1.dataDisks[1].id}\n```\n<!--End PulumiCodeChooser -->\nInclude volumes works currently only on SwissCloud:\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst vault = new opentelekomcloud.CbrVaultV3(\"vault\", {\n    name: \"cbr-vault-test\",\n    description: \"CBR vault for terraform provider test\",\n    billing: {\n        size: 100,\n        objectType: \"disk\",\n        protectType: \"backup\",\n        chargingMode: \"post_paid\",\n    },\n    resources: [{\n        id: instance.id,\n        type: \"OS::Nova::Server\",\n        includeVolumes: [instance1.dataDisks[1].id],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nvault = opentelekomcloud.CbrVaultV3(\"vault\",\n    name=\"cbr-vault-test\",\n    description=\"CBR vault for terraform provider test\",\n    billing={\n        \"size\": 100,\n        \"object_type\": \"disk\",\n        \"protect_type\": \"backup\",\n        \"charging_mode\": \"post_paid\",\n    },\n    resources=[{\n        \"id\": instance[\"id\"],\n        \"type\": \"OS::Nova::Server\",\n        \"include_volumes\": [instance1[\"dataDisks\"][1][\"id\"]],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var vault = new Opentelekomcloud.CbrVaultV3(\"vault\", new()\n    {\n        Name = \"cbr-vault-test\",\n        Description = \"CBR vault for terraform provider test\",\n        Billing = new Opentelekomcloud.Inputs.CbrVaultV3BillingArgs\n        {\n            Size = 100,\n            ObjectType = \"disk\",\n            ProtectType = \"backup\",\n            ChargingMode = \"post_paid\",\n        },\n        Resources = new[]\n        {\n            new Opentelekomcloud.Inputs.CbrVaultV3ResourceArgs\n            {\n                Id = instance.Id,\n                Type = \"OS::Nova::Server\",\n                IncludeVolumes = new[]\n                {\n                    instance1.DataDisks[1].Id,\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewCbrVaultV3(ctx, \"vault\", &opentelekomcloud.CbrVaultV3Args{\n\t\t\tName:        pulumi.String(\"cbr-vault-test\"),\n\t\t\tDescription: pulumi.String(\"CBR vault for terraform provider test\"),\n\t\t\tBilling: &opentelekomcloud.CbrVaultV3BillingArgs{\n\t\t\t\tSize:         pulumi.Float64(100),\n\t\t\t\tObjectType:   pulumi.String(\"disk\"),\n\t\t\t\tProtectType:  pulumi.String(\"backup\"),\n\t\t\t\tChargingMode: pulumi.String(\"post_paid\"),\n\t\t\t},\n\t\t\tResources: opentelekomcloud.CbrVaultV3ResourceArray{\n\t\t\t\t&opentelekomcloud.CbrVaultV3ResourceArgs{\n\t\t\t\t\tId:   pulumi.Any(instance.Id),\n\t\t\t\t\tType: pulumi.String(\"OS::Nova::Server\"),\n\t\t\t\t\tIncludeVolumes: pulumi.StringArray{\n\t\t\t\t\t\tinstance1.DataDisks[1].Id,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CbrVaultV3;\nimport com.pulumi.opentelekomcloud.CbrVaultV3Args;\nimport com.pulumi.opentelekomcloud.inputs.CbrVaultV3BillingArgs;\nimport com.pulumi.opentelekomcloud.inputs.CbrVaultV3ResourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var vault = new CbrVaultV3(\"vault\", CbrVaultV3Args.builder()\n            .name(\"cbr-vault-test\")\n            .description(\"CBR vault for terraform provider test\")\n            .billing(CbrVaultV3BillingArgs.builder()\n                .size(100.0)\n                .objectType(\"disk\")\n                .protectType(\"backup\")\n                .chargingMode(\"post_paid\")\n                .build())\n            .resources(CbrVaultV3ResourceArgs.builder()\n                .id(instance.id())\n                .type(\"OS::Nova::Server\")\n                .includeVolumes(instance1.dataDisks()[1].id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vault:\n    type: opentelekomcloud:CbrVaultV3\n    properties:\n      name: cbr-vault-test\n      description: CBR vault for terraform provider test\n      billing:\n        size: 100\n        objectType: disk\n        protectType: backup\n        chargingMode: post_paid\n      resources:\n        - id: ${instance.id}\n          type: OS::Nova::Server\n          includeVolumes:\n            - ${instance1.dataDisks[1].id}\n```\n<!--End PulumiCodeChooser -->\n\n### Vault with associated resource (volume)\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst volume = new opentelekomcloud.BlockstorageVolumeV2(\"volume\", {\n    name: \"cbr-test-volume\",\n    size: 10,\n    volumeType: \"SSD\",\n});\nconst vault = new opentelekomcloud.CbrVaultV3(\"vault\", {\n    name: \"cbr-vault-test\",\n    description: \"CBR vault for terraform provider test\",\n    locked: false,\n    billing: {\n        size: 100,\n        objectType: \"disk\",\n        protectType: \"backup\",\n        chargingMode: \"post_paid\",\n    },\n    resources: [{\n        id: volume.blockstorageVolumeV2Id,\n        type: \"OS::Cinder::Volume\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nvolume = opentelekomcloud.BlockstorageVolumeV2(\"volume\",\n    name=\"cbr-test-volume\",\n    size=10,\n    volume_type=\"SSD\")\nvault = opentelekomcloud.CbrVaultV3(\"vault\",\n    name=\"cbr-vault-test\",\n    description=\"CBR vault for terraform provider test\",\n    locked=False,\n    billing={\n        \"size\": 100,\n        \"object_type\": \"disk\",\n        \"protect_type\": \"backup\",\n        \"charging_mode\": \"post_paid\",\n    },\n    resources=[{\n        \"id\": volume.blockstorage_volume_v2_id,\n        \"type\": \"OS::Cinder::Volume\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var volume = new Opentelekomcloud.BlockstorageVolumeV2(\"volume\", new()\n    {\n        Name = \"cbr-test-volume\",\n        Size = 10,\n        VolumeType = \"SSD\",\n    });\n\n    var vault = new Opentelekomcloud.CbrVaultV3(\"vault\", new()\n    {\n        Name = \"cbr-vault-test\",\n        Description = \"CBR vault for terraform provider test\",\n        Locked = false,\n        Billing = new Opentelekomcloud.Inputs.CbrVaultV3BillingArgs\n        {\n            Size = 100,\n            ObjectType = \"disk\",\n            ProtectType = \"backup\",\n            ChargingMode = \"post_paid\",\n        },\n        Resources = new[]\n        {\n            new Opentelekomcloud.Inputs.CbrVaultV3ResourceArgs\n            {\n                Id = volume.BlockstorageVolumeV2Id,\n                Type = \"OS::Cinder::Volume\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvolume, err := opentelekomcloud.NewBlockstorageVolumeV2(ctx, \"volume\", &opentelekomcloud.BlockstorageVolumeV2Args{\n\t\t\tName:       pulumi.String(\"cbr-test-volume\"),\n\t\t\tSize:       pulumi.Float64(10),\n\t\t\tVolumeType: pulumi.String(\"SSD\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewCbrVaultV3(ctx, \"vault\", &opentelekomcloud.CbrVaultV3Args{\n\t\t\tName:        pulumi.String(\"cbr-vault-test\"),\n\t\t\tDescription: pulumi.String(\"CBR vault for terraform provider test\"),\n\t\t\tLocked:      pulumi.Bool(false),\n\t\t\tBilling: &opentelekomcloud.CbrVaultV3BillingArgs{\n\t\t\t\tSize:         pulumi.Float64(100),\n\t\t\t\tObjectType:   pulumi.String(\"disk\"),\n\t\t\t\tProtectType:  pulumi.String(\"backup\"),\n\t\t\t\tChargingMode: pulumi.String(\"post_paid\"),\n\t\t\t},\n\t\t\tResources: opentelekomcloud.CbrVaultV3ResourceArray{\n\t\t\t\t&opentelekomcloud.CbrVaultV3ResourceArgs{\n\t\t\t\t\tId:   volume.BlockstorageVolumeV2Id,\n\t\t\t\t\tType: pulumi.String(\"OS::Cinder::Volume\"),\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.opentelekomcloud.BlockstorageVolumeV2;\nimport com.pulumi.opentelekomcloud.BlockstorageVolumeV2Args;\nimport com.pulumi.opentelekomcloud.CbrVaultV3;\nimport com.pulumi.opentelekomcloud.CbrVaultV3Args;\nimport com.pulumi.opentelekomcloud.inputs.CbrVaultV3BillingArgs;\nimport com.pulumi.opentelekomcloud.inputs.CbrVaultV3ResourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var volume = new BlockstorageVolumeV2(\"volume\", BlockstorageVolumeV2Args.builder()\n            .name(\"cbr-test-volume\")\n            .size(10.0)\n            .volumeType(\"SSD\")\n            .build());\n\n        var vault = new CbrVaultV3(\"vault\", CbrVaultV3Args.builder()\n            .name(\"cbr-vault-test\")\n            .description(\"CBR vault for terraform provider test\")\n            .locked(false)\n            .billing(CbrVaultV3BillingArgs.builder()\n                .size(100.0)\n                .objectType(\"disk\")\n                .protectType(\"backup\")\n                .chargingMode(\"post_paid\")\n                .build())\n            .resources(CbrVaultV3ResourceArgs.builder()\n                .id(volume.blockstorageVolumeV2Id())\n                .type(\"OS::Cinder::Volume\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  volume:\n    type: opentelekomcloud:BlockstorageVolumeV2\n    properties:\n      name: cbr-test-volume\n      size: 10\n      volumeType: SSD\n  vault:\n    type: opentelekomcloud:CbrVaultV3\n    properties:\n      name: cbr-vault-test\n      description: CBR vault for terraform provider test\n      locked: false\n      billing:\n        size: 100\n        objectType: disk\n        protectType: backup\n        chargingMode: post_paid\n      resources:\n        - id: ${volume.blockstorageVolumeV2Id}\n          type: OS::Cinder::Volume\n```\n<!--End PulumiCodeChooser -->\n\n### Vault with associated resource (sfs-turbo)\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst vpcId = config.requireObject<any>(\"vpcId\");\nconst subnetId = config.requireObject<any>(\"subnetId\");\nconst sgId = config.requireObject<any>(\"sgId\");\nconst az = config.requireObject<any>(\"az\");\nconst sfs_turbo = new opentelekomcloud.SfsTurboShareV1(\"sfs-turbo\", {\n    name: \"sfs-turbo-share\",\n    size: 500,\n    shareProto: \"NFS\",\n    vpcId: vpcId,\n    subnetId: subnetId,\n    securityGroupId: sgId,\n    availabilityZone: az,\n});\nconst vault = new opentelekomcloud.CbrVaultV3(\"vault\", {\n    name: \"cbr-vault-test\",\n    description: \"CBR vault for terraform provider test\",\n    billing: {\n        size: 1000,\n        objectType: \"turbo\",\n        protectType: \"backup\",\n        chargingMode: \"post_paid\",\n    },\n    resources: [{\n        id: sfs_turbo.sfsTurboShareV1Id,\n        type: \"OS::Sfs::Turbo\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nvpc_id = config.require_object(\"vpcId\")\nsubnet_id = config.require_object(\"subnetId\")\nsg_id = config.require_object(\"sgId\")\naz = config.require_object(\"az\")\nsfs_turbo = opentelekomcloud.SfsTurboShareV1(\"sfs-turbo\",\n    name=\"sfs-turbo-share\",\n    size=500,\n    share_proto=\"NFS\",\n    vpc_id=vpc_id,\n    subnet_id=subnet_id,\n    security_group_id=sg_id,\n    availability_zone=az)\nvault = opentelekomcloud.CbrVaultV3(\"vault\",\n    name=\"cbr-vault-test\",\n    description=\"CBR vault for terraform provider test\",\n    billing={\n        \"size\": 1000,\n        \"object_type\": \"turbo\",\n        \"protect_type\": \"backup\",\n        \"charging_mode\": \"post_paid\",\n    },\n    resources=[{\n        \"id\": sfs_turbo.sfs_turbo_share_v1_id,\n        \"type\": \"OS::Sfs::Turbo\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var vpcId = config.RequireObject<dynamic>(\"vpcId\");\n    var subnetId = config.RequireObject<dynamic>(\"subnetId\");\n    var sgId = config.RequireObject<dynamic>(\"sgId\");\n    var az = config.RequireObject<dynamic>(\"az\");\n    var sfs_turbo = new Opentelekomcloud.SfsTurboShareV1(\"sfs-turbo\", new()\n    {\n        Name = \"sfs-turbo-share\",\n        Size = 500,\n        ShareProto = \"NFS\",\n        VpcId = vpcId,\n        SubnetId = subnetId,\n        SecurityGroupId = sgId,\n        AvailabilityZone = az,\n    });\n\n    var vault = new Opentelekomcloud.CbrVaultV3(\"vault\", new()\n    {\n        Name = \"cbr-vault-test\",\n        Description = \"CBR vault for terraform provider test\",\n        Billing = new Opentelekomcloud.Inputs.CbrVaultV3BillingArgs\n        {\n            Size = 1000,\n            ObjectType = \"turbo\",\n            ProtectType = \"backup\",\n            ChargingMode = \"post_paid\",\n        },\n        Resources = new[]\n        {\n            new Opentelekomcloud.Inputs.CbrVaultV3ResourceArgs\n            {\n                Id = sfs_turbo.SfsTurboShareV1Id,\n                Type = \"OS::Sfs::Turbo\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tvpcId := cfg.RequireObject(\"vpcId\")\n\t\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\tsgId := cfg.RequireObject(\"sgId\")\n\t\taz := cfg.RequireObject(\"az\")\n\t\tsfs_turbo, err := opentelekomcloud.NewSfsTurboShareV1(ctx, \"sfs-turbo\", &opentelekomcloud.SfsTurboShareV1Args{\n\t\t\tName:             pulumi.String(\"sfs-turbo-share\"),\n\t\t\tSize:             pulumi.Float64(500),\n\t\t\tShareProto:       pulumi.String(\"NFS\"),\n\t\t\tVpcId:            pulumi.Any(vpcId),\n\t\t\tSubnetId:         pulumi.Any(subnetId),\n\t\t\tSecurityGroupId:  pulumi.Any(sgId),\n\t\t\tAvailabilityZone: pulumi.Any(az),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewCbrVaultV3(ctx, \"vault\", &opentelekomcloud.CbrVaultV3Args{\n\t\t\tName:        pulumi.String(\"cbr-vault-test\"),\n\t\t\tDescription: pulumi.String(\"CBR vault for terraform provider test\"),\n\t\t\tBilling: &opentelekomcloud.CbrVaultV3BillingArgs{\n\t\t\t\tSize:         pulumi.Float64(1000),\n\t\t\t\tObjectType:   pulumi.String(\"turbo\"),\n\t\t\t\tProtectType:  pulumi.String(\"backup\"),\n\t\t\t\tChargingMode: pulumi.String(\"post_paid\"),\n\t\t\t},\n\t\t\tResources: opentelekomcloud.CbrVaultV3ResourceArray{\n\t\t\t\t&opentelekomcloud.CbrVaultV3ResourceArgs{\n\t\t\t\t\tId:   sfs_turbo.SfsTurboShareV1Id,\n\t\t\t\t\tType: pulumi.String(\"OS::Sfs::Turbo\"),\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.opentelekomcloud.SfsTurboShareV1;\nimport com.pulumi.opentelekomcloud.SfsTurboShareV1Args;\nimport com.pulumi.opentelekomcloud.CbrVaultV3;\nimport com.pulumi.opentelekomcloud.CbrVaultV3Args;\nimport com.pulumi.opentelekomcloud.inputs.CbrVaultV3BillingArgs;\nimport com.pulumi.opentelekomcloud.inputs.CbrVaultV3ResourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var vpcId = config.get(\"vpcId\");\n        final var subnetId = config.get(\"subnetId\");\n        final var sgId = config.get(\"sgId\");\n        final var az = config.get(\"az\");\n        var sfs_turbo = new SfsTurboShareV1(\"sfs-turbo\", SfsTurboShareV1Args.builder()\n            .name(\"sfs-turbo-share\")\n            .size(500.0)\n            .shareProto(\"NFS\")\n            .vpcId(vpcId)\n            .subnetId(subnetId)\n            .securityGroupId(sgId)\n            .availabilityZone(az)\n            .build());\n\n        var vault = new CbrVaultV3(\"vault\", CbrVaultV3Args.builder()\n            .name(\"cbr-vault-test\")\n            .description(\"CBR vault for terraform provider test\")\n            .billing(CbrVaultV3BillingArgs.builder()\n                .size(1000.0)\n                .objectType(\"turbo\")\n                .protectType(\"backup\")\n                .chargingMode(\"post_paid\")\n                .build())\n            .resources(CbrVaultV3ResourceArgs.builder()\n                .id(sfs_turbo.sfsTurboShareV1Id())\n                .type(\"OS::Sfs::Turbo\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  vpcId:\n    type: dynamic\n  subnetId:\n    type: dynamic\n  sgId:\n    type: dynamic\n  az:\n    type: dynamic\nresources:\n  sfs-turbo:\n    type: opentelekomcloud:SfsTurboShareV1\n    properties:\n      name: sfs-turbo-share\n      size: 500\n      shareProto: NFS\n      vpcId: ${vpcId}\n      subnetId: ${subnetId}\n      securityGroupId: ${sgId}\n      availabilityZone: ${az}\n  vault:\n    type: opentelekomcloud:CbrVaultV3\n    properties:\n      name: cbr-vault-test\n      description: CBR vault for terraform provider test\n      billing:\n        size: 1000\n        objectType: turbo\n        protectType: backup\n        chargingMode: post_paid\n      resources:\n        - id: ${[\"sfs-turbo\"].sfsTurboShareV1Id}\n          type: OS::Sfs::Turbo\n```\n<!--End PulumiCodeChooser -->\n\n### Vault with associated policy\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst policy = new opentelekomcloud.CbrPolicyV3(\"policy\", {\n    name: \"some-policy\",\n    operationType: \"backup\",\n    triggerPatterns: [\"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU;BYHOUR=14;BYMINUTE=00\"],\n    operationDefinition: {\n        dayBackups: 1,\n        weekBackups: 2,\n        yearBackups: 3,\n        monthBackups: 4,\n        maxBackups: 10,\n        timezone: \"UTC+03:00\",\n    },\n    enabled: false,\n});\nconst vault = new opentelekomcloud.CbrVaultV3(\"vault\", {\n    name: \"cbr-vault-test\",\n    description: \"CBR vault for terraform provider test\",\n    backupPolicyId: policy.cbrPolicyV3Id,\n    billing: {\n        size: 100,\n        objectType: \"disk\",\n        protectType: \"backup\",\n        chargingMode: \"post_paid\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\npolicy = opentelekomcloud.CbrPolicyV3(\"policy\",\n    name=\"some-policy\",\n    operation_type=\"backup\",\n    trigger_patterns=[\"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU;BYHOUR=14;BYMINUTE=00\"],\n    operation_definition={\n        \"day_backups\": 1,\n        \"week_backups\": 2,\n        \"year_backups\": 3,\n        \"month_backups\": 4,\n        \"max_backups\": 10,\n        \"timezone\": \"UTC+03:00\",\n    },\n    enabled=False)\nvault = opentelekomcloud.CbrVaultV3(\"vault\",\n    name=\"cbr-vault-test\",\n    description=\"CBR vault for terraform provider test\",\n    backup_policy_id=policy.cbr_policy_v3_id,\n    billing={\n        \"size\": 100,\n        \"object_type\": \"disk\",\n        \"protect_type\": \"backup\",\n        \"charging_mode\": \"post_paid\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var policy = new Opentelekomcloud.CbrPolicyV3(\"policy\", new()\n    {\n        Name = \"some-policy\",\n        OperationType = \"backup\",\n        TriggerPatterns = new[]\n        {\n            \"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU;BYHOUR=14;BYMINUTE=00\",\n        },\n        OperationDefinition = new Opentelekomcloud.Inputs.CbrPolicyV3OperationDefinitionArgs\n        {\n            DayBackups = 1,\n            WeekBackups = 2,\n            YearBackups = 3,\n            MonthBackups = 4,\n            MaxBackups = 10,\n            Timezone = \"UTC+03:00\",\n        },\n        Enabled = false,\n    });\n\n    var vault = new Opentelekomcloud.CbrVaultV3(\"vault\", new()\n    {\n        Name = \"cbr-vault-test\",\n        Description = \"CBR vault for terraform provider test\",\n        BackupPolicyId = policy.CbrPolicyV3Id,\n        Billing = new Opentelekomcloud.Inputs.CbrVaultV3BillingArgs\n        {\n            Size = 100,\n            ObjectType = \"disk\",\n            ProtectType = \"backup\",\n            ChargingMode = \"post_paid\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpolicy, err := opentelekomcloud.NewCbrPolicyV3(ctx, \"policy\", &opentelekomcloud.CbrPolicyV3Args{\n\t\t\tName:          pulumi.String(\"some-policy\"),\n\t\t\tOperationType: pulumi.String(\"backup\"),\n\t\t\tTriggerPatterns: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU;BYHOUR=14;BYMINUTE=00\"),\n\t\t\t},\n\t\t\tOperationDefinition: &opentelekomcloud.CbrPolicyV3OperationDefinitionArgs{\n\t\t\t\tDayBackups:   pulumi.Float64(1),\n\t\t\t\tWeekBackups:  pulumi.Float64(2),\n\t\t\t\tYearBackups:  pulumi.Float64(3),\n\t\t\t\tMonthBackups: pulumi.Float64(4),\n\t\t\t\tMaxBackups:   pulumi.Float64(10),\n\t\t\t\tTimezone:     pulumi.String(\"UTC+03:00\"),\n\t\t\t},\n\t\t\tEnabled: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewCbrVaultV3(ctx, \"vault\", &opentelekomcloud.CbrVaultV3Args{\n\t\t\tName:           pulumi.String(\"cbr-vault-test\"),\n\t\t\tDescription:    pulumi.String(\"CBR vault for terraform provider test\"),\n\t\t\tBackupPolicyId: policy.CbrPolicyV3Id,\n\t\t\tBilling: &opentelekomcloud.CbrVaultV3BillingArgs{\n\t\t\t\tSize:         pulumi.Float64(100),\n\t\t\t\tObjectType:   pulumi.String(\"disk\"),\n\t\t\t\tProtectType:  pulumi.String(\"backup\"),\n\t\t\t\tChargingMode: pulumi.String(\"post_paid\"),\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.opentelekomcloud.CbrPolicyV3;\nimport com.pulumi.opentelekomcloud.CbrPolicyV3Args;\nimport com.pulumi.opentelekomcloud.inputs.CbrPolicyV3OperationDefinitionArgs;\nimport com.pulumi.opentelekomcloud.CbrVaultV3;\nimport com.pulumi.opentelekomcloud.CbrVaultV3Args;\nimport com.pulumi.opentelekomcloud.inputs.CbrVaultV3BillingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var policy = new CbrPolicyV3(\"policy\", CbrPolicyV3Args.builder()\n            .name(\"some-policy\")\n            .operationType(\"backup\")\n            .triggerPatterns(\"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU;BYHOUR=14;BYMINUTE=00\")\n            .operationDefinition(CbrPolicyV3OperationDefinitionArgs.builder()\n                .dayBackups(1.0)\n                .weekBackups(2.0)\n                .yearBackups(3.0)\n                .monthBackups(4.0)\n                .maxBackups(10.0)\n                .timezone(\"UTC+03:00\")\n                .build())\n            .enabled(false)\n            .build());\n\n        var vault = new CbrVaultV3(\"vault\", CbrVaultV3Args.builder()\n            .name(\"cbr-vault-test\")\n            .description(\"CBR vault for terraform provider test\")\n            .backupPolicyId(policy.cbrPolicyV3Id())\n            .billing(CbrVaultV3BillingArgs.builder()\n                .size(100.0)\n                .objectType(\"disk\")\n                .protectType(\"backup\")\n                .chargingMode(\"post_paid\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  policy:\n    type: opentelekomcloud:CbrPolicyV3\n    properties:\n      name: some-policy\n      operationType: backup\n      triggerPatterns:\n        - FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU;BYHOUR=14;BYMINUTE=00\n      operationDefinition:\n        dayBackups: 1\n        weekBackups: 2\n        yearBackups: 3\n        monthBackups: 4\n        maxBackups: 10\n        timezone: UTC+03:00\n      enabled: 'false'\n  vault:\n    type: opentelekomcloud:CbrVaultV3\n    properties:\n      name: cbr-vault-test\n      description: CBR vault for terraform provider test\n      backupPolicyId: ${policy.cbrPolicyV3Id}\n      billing:\n        size: 100\n        objectType: disk\n        protectType: backup\n        chargingMode: post_paid\n```\n<!--End PulumiCodeChooser -->\n\n### Vault with backup and replication policies\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst policies = new opentelekomcloud.CbrVaultV3(\"policies\", {\n    name: \"multipolicy\",\n    billing: {\n        size: 100,\n        objectType: \"server\",\n        protectType: \"backup\",\n        chargingMode: \"post_paid\",\n        periodType: \"month\",\n        periodNum: 2,\n    },\n    policies: [\n        {\n            id: backup[1].id,\n        },\n        {\n            id: replicationPolicyId,\n            destinationVaultId: destinationVault,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\npolicies = opentelekomcloud.CbrVaultV3(\"policies\",\n    name=\"multipolicy\",\n    billing={\n        \"size\": 100,\n        \"object_type\": \"server\",\n        \"protect_type\": \"backup\",\n        \"charging_mode\": \"post_paid\",\n        \"period_type\": \"month\",\n        \"period_num\": 2,\n    },\n    policies=[\n        {\n            \"id\": backup[1][\"id\"],\n        },\n        {\n            \"id\": replication_policy_id,\n            \"destination_vault_id\": destination_vault,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var policies = new Opentelekomcloud.CbrVaultV3(\"policies\", new()\n    {\n        Name = \"multipolicy\",\n        Billing = new Opentelekomcloud.Inputs.CbrVaultV3BillingArgs\n        {\n            Size = 100,\n            ObjectType = \"server\",\n            ProtectType = \"backup\",\n            ChargingMode = \"post_paid\",\n            PeriodType = \"month\",\n            PeriodNum = 2,\n        },\n        Policies = new[]\n        {\n            new Opentelekomcloud.Inputs.CbrVaultV3PolicyArgs\n            {\n                Id = backup[1].Id,\n            },\n            new Opentelekomcloud.Inputs.CbrVaultV3PolicyArgs\n            {\n                Id = replicationPolicyId,\n                DestinationVaultId = destinationVault,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewCbrVaultV3(ctx, \"policies\", &opentelekomcloud.CbrVaultV3Args{\n\t\t\tName: pulumi.String(\"multipolicy\"),\n\t\t\tBilling: &opentelekomcloud.CbrVaultV3BillingArgs{\n\t\t\t\tSize:         pulumi.Float64(100),\n\t\t\t\tObjectType:   pulumi.String(\"server\"),\n\t\t\t\tProtectType:  pulumi.String(\"backup\"),\n\t\t\t\tChargingMode: pulumi.String(\"post_paid\"),\n\t\t\t\tPeriodType:   pulumi.String(\"month\"),\n\t\t\t\tPeriodNum:    pulumi.Float64(2),\n\t\t\t},\n\t\t\tPolicies: opentelekomcloud.CbrVaultV3PolicyArray{\n\t\t\t\t&opentelekomcloud.CbrVaultV3PolicyArgs{\n\t\t\t\t\tId: pulumi.Any(backup[1].Id),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.CbrVaultV3PolicyArgs{\n\t\t\t\t\tId:                 pulumi.Any(replicationPolicyId),\n\t\t\t\t\tDestinationVaultId: pulumi.Any(destinationVault),\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.opentelekomcloud.CbrVaultV3;\nimport com.pulumi.opentelekomcloud.CbrVaultV3Args;\nimport com.pulumi.opentelekomcloud.inputs.CbrVaultV3BillingArgs;\nimport com.pulumi.opentelekomcloud.inputs.CbrVaultV3PolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var policies = new CbrVaultV3(\"policies\", CbrVaultV3Args.builder()\n            .name(\"multipolicy\")\n            .billing(CbrVaultV3BillingArgs.builder()\n                .size(100.0)\n                .objectType(\"server\")\n                .protectType(\"backup\")\n                .chargingMode(\"post_paid\")\n                .periodType(\"month\")\n                .periodNum(2.0)\n                .build())\n            .policies(            \n                CbrVaultV3PolicyArgs.builder()\n                    .id(backup[1].id())\n                    .build(),\n                CbrVaultV3PolicyArgs.builder()\n                    .id(replicationPolicyId)\n                    .destinationVaultId(destinationVault)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  policies:\n    type: opentelekomcloud:CbrVaultV3\n    properties:\n      name: multipolicy\n      billing:\n        size: 100\n        objectType: server\n        protectType: backup\n        chargingMode: post_paid\n        periodType: month\n        periodNum: 2\n      policies:\n        - id: ${backup[1].id}\n        - id: ${replicationPolicyId}\n          destinationVaultId: ${destinationVault}\n```\n<!--End PulumiCodeChooser -->\n### Vault with auto bind and bind rule\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst vault = new opentelekomcloud.CbrVaultV3(\"vault\", {\n    name: \"cbr-vault-test\",\n    description: \"CBR vault for default backup policy\",\n    billing: {\n        size: 10,\n        objectType: \"server\",\n        protectType: \"backup\",\n        chargingMode: \"post_paid\",\n    },\n    autoBind: true,\n    bindRules: [{\n        key: \"foo\",\n        value: \"bar\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nvault = opentelekomcloud.CbrVaultV3(\"vault\",\n    name=\"cbr-vault-test\",\n    description=\"CBR vault for default backup policy\",\n    billing={\n        \"size\": 10,\n        \"object_type\": \"server\",\n        \"protect_type\": \"backup\",\n        \"charging_mode\": \"post_paid\",\n    },\n    auto_bind=True,\n    bind_rules=[{\n        \"key\": \"foo\",\n        \"value\": \"bar\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var vault = new Opentelekomcloud.CbrVaultV3(\"vault\", new()\n    {\n        Name = \"cbr-vault-test\",\n        Description = \"CBR vault for default backup policy\",\n        Billing = new Opentelekomcloud.Inputs.CbrVaultV3BillingArgs\n        {\n            Size = 10,\n            ObjectType = \"server\",\n            ProtectType = \"backup\",\n            ChargingMode = \"post_paid\",\n        },\n        AutoBind = true,\n        BindRules = new[]\n        {\n            new Opentelekomcloud.Inputs.CbrVaultV3BindRuleArgs\n            {\n                Key = \"foo\",\n                Value = \"bar\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewCbrVaultV3(ctx, \"vault\", &opentelekomcloud.CbrVaultV3Args{\n\t\t\tName:        pulumi.String(\"cbr-vault-test\"),\n\t\t\tDescription: pulumi.String(\"CBR vault for default backup policy\"),\n\t\t\tBilling: &opentelekomcloud.CbrVaultV3BillingArgs{\n\t\t\t\tSize:         pulumi.Float64(10),\n\t\t\t\tObjectType:   pulumi.String(\"server\"),\n\t\t\t\tProtectType:  pulumi.String(\"backup\"),\n\t\t\t\tChargingMode: pulumi.String(\"post_paid\"),\n\t\t\t},\n\t\t\tAutoBind: pulumi.Bool(true),\n\t\t\tBindRules: opentelekomcloud.CbrVaultV3BindRuleArray{\n\t\t\t\t&opentelekomcloud.CbrVaultV3BindRuleArgs{\n\t\t\t\t\tKey:   pulumi.String(\"foo\"),\n\t\t\t\t\tValue: pulumi.String(\"bar\"),\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.opentelekomcloud.CbrVaultV3;\nimport com.pulumi.opentelekomcloud.CbrVaultV3Args;\nimport com.pulumi.opentelekomcloud.inputs.CbrVaultV3BillingArgs;\nimport com.pulumi.opentelekomcloud.inputs.CbrVaultV3BindRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var vault = new CbrVaultV3(\"vault\", CbrVaultV3Args.builder()\n            .name(\"cbr-vault-test\")\n            .description(\"CBR vault for default backup policy\")\n            .billing(CbrVaultV3BillingArgs.builder()\n                .size(10.0)\n                .objectType(\"server\")\n                .protectType(\"backup\")\n                .chargingMode(\"post_paid\")\n                .build())\n            .autoBind(true)\n            .bindRules(CbrVaultV3BindRuleArgs.builder()\n                .key(\"foo\")\n                .value(\"bar\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vault:\n    type: opentelekomcloud:CbrVaultV3\n    properties:\n      name: cbr-vault-test\n      description: CBR vault for default backup policy\n      billing:\n        size: 10\n        objectType: server\n        protectType: backup\n        chargingMode: post_paid\n      autoBind: true\n      bindRules:\n        - key: foo\n          value: bar\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nVolumes can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/cbrVaultV3:CbrVaultV3 vault ea257959-eeb1-4c10-8d33-26f0409a766b\n```\n\n","inputProperties":{"autoBind":{"description":"Whether automatic association is supported.\n","type":"boolean"},"autoExpand":{"description":"Whether to automatically expand the vault capacity. Only pay-per-use vaults support this\nfunction.\n","type":"boolean"},"backupPolicyId":{"deprecationMessage":"Deprecated","description":"Backup policy ID. If the value of this parameter is empty, automatic backup is not\nperformed. Deprecated use <span pulumi-lang-nodejs=\"`policy`\" pulumi-lang-dotnet=\"`Policy`\" pulumi-lang-go=\"`policy`\" pulumi-lang-python=\"`policy`\" pulumi-lang-yaml=\"`policy`\" pulumi-lang-java=\"`policy`\">`policy`</span> instead.\n","type":"string"},"billing":{"$ref":"#/types/opentelekomcloud:index%2FCbrVaultV3Billing:CbrVaultV3Billing","description":"Billing parameter information for creation. Billing fields:\n"},"bindRules":{"description":"Tag map, a rules for automatic association. You can only select tag keys and values from\nthe existing ones. If there are no tags available, go to the corresponding service to create one.\nYou can add a maximum of 5 tags for a search. If more than one tag is added, the backups containing one of the\nspecified tags will be returned.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCbrVaultV3BindRule:CbrVaultV3BindRule"},"type":"array"},"cbrVaultV3Id":{"description":"Specifies the policy ID.\n","type":"string"},"description":{"description":"User-defined vault description.\n","type":"string"},"enterpriseProjectId":{"type":"string"},"locked":{"description":"Specifies whether the vault is locked. A locked vault cannot be unlocked.\nDefaults to **false**.\n","type":"boolean"},"name":{"description":"Vault name.\n","type":"string"},"policies":{"description":"Specifies the policy details to associate with the CBR vault.\nThe object structure is documented below.\n\n<a name=<span pulumi-lang-nodejs=\"\"vaultPolicies\"\" pulumi-lang-dotnet=\"\"VaultPolicies\"\" pulumi-lang-go=\"\"vaultPolicies\"\" pulumi-lang-python=\"\"vault_policies\"\" pulumi-lang-yaml=\"\"vaultPolicies\"\" pulumi-lang-java=\"\"vaultPolicies\"\">\"vault_policies\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`policy`\" pulumi-lang-dotnet=\"`Policy`\" pulumi-lang-go=\"`policy`\" pulumi-lang-python=\"`policy`\" pulumi-lang-yaml=\"`policy`\" pulumi-lang-java=\"`policy`\">`policy`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCbrVaultV3Policy:CbrVaultV3Policy"},"type":"array"},"resources":{"description":"Associated resources. Multiple. Resource fields:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCbrVaultV3Resource:CbrVaultV3Resource"},"type":"array"},"tags":{"additionalProperties":{"type":"string"},"description":"Tag map.\n","type":"object"}},"properties":{"autoBind":{"description":"Whether automatic association is supported.\n","type":"boolean"},"autoExpand":{"description":"Whether to automatically expand the vault capacity. Only pay-per-use vaults support this\nfunction.\n","type":"boolean"},"backupPolicyId":{"deprecationMessage":"Deprecated","description":"Backup policy ID. If the value of this parameter is empty, automatic backup is not\nperformed. Deprecated use <span pulumi-lang-nodejs=\"`policy`\" pulumi-lang-dotnet=\"`Policy`\" pulumi-lang-go=\"`policy`\" pulumi-lang-python=\"`policy`\" pulumi-lang-yaml=\"`policy`\" pulumi-lang-java=\"`policy`\">`policy`</span> instead.\n","type":"string"},"billing":{"$ref":"#/types/opentelekomcloud:index%2FCbrVaultV3Billing:CbrVaultV3Billing","description":"Billing parameter information for creation. Billing fields:\n"},"bindRules":{"description":"Tag map, a rules for automatic association. You can only select tag keys and values from\nthe existing ones. If there are no tags available, go to the corresponding service to create one.\nYou can add a maximum of 5 tags for a search. If more than one tag is added, the backups containing one of the\nspecified tags will be returned.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCbrVaultV3BindRule:CbrVaultV3BindRule"},"type":"array"},"cbrVaultV3Id":{"description":"Specifies the policy ID.\n","type":"string"},"createdAt":{"type":"string"},"description":{"description":"User-defined vault description.\n","type":"string"},"enterpriseProjectId":{"type":"string"},"locked":{"description":"Specifies whether the vault is locked. A locked vault cannot be unlocked.\nDefaults to **false**.\n","type":"boolean"},"name":{"description":"Vault name.\n","type":"string"},"policies":{"description":"Specifies the policy details to associate with the CBR vault.\nThe object structure is documented below.\n\n<a name=<span pulumi-lang-nodejs=\"\"vaultPolicies\"\" pulumi-lang-dotnet=\"\"VaultPolicies\"\" pulumi-lang-go=\"\"vaultPolicies\"\" pulumi-lang-python=\"\"vault_policies\"\" pulumi-lang-yaml=\"\"vaultPolicies\"\" pulumi-lang-java=\"\"vaultPolicies\"\">\"vault_policies\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`policy`\" pulumi-lang-dotnet=\"`Policy`\" pulumi-lang-go=\"`policy`\" pulumi-lang-python=\"`policy`\" pulumi-lang-yaml=\"`policy`\" pulumi-lang-java=\"`policy`\">`policy`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCbrVaultV3Policy:CbrVaultV3Policy"},"type":"array"},"projectId":{"type":"string"},"providerId":{"type":"string"},"region":{"type":"string"},"resources":{"description":"Associated resources. Multiple. Resource fields:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCbrVaultV3Resource:CbrVaultV3Resource"},"type":"array"},"tags":{"additionalProperties":{"type":"string"},"description":"Tag map.\n","type":"object"},"userId":{"type":"string"}},"required":["autoBind","autoExpand","billing","cbrVaultV3Id","createdAt","enterpriseProjectId","locked","name","projectId","providerId","region","resources","userId"],"requiredInputs":["billing"],"stateInputs":{"description":"Input properties used for looking up and filtering CbrVaultV3 resources.\n","properties":{"autoBind":{"description":"Whether automatic association is supported.\n","type":"boolean"},"autoExpand":{"description":"Whether to automatically expand the vault capacity. Only pay-per-use vaults support this\nfunction.\n","type":"boolean"},"backupPolicyId":{"deprecationMessage":"Deprecated","description":"Backup policy ID. If the value of this parameter is empty, automatic backup is not\nperformed. Deprecated use <span pulumi-lang-nodejs=\"`policy`\" pulumi-lang-dotnet=\"`Policy`\" pulumi-lang-go=\"`policy`\" pulumi-lang-python=\"`policy`\" pulumi-lang-yaml=\"`policy`\" pulumi-lang-java=\"`policy`\">`policy`</span> instead.\n","type":"string"},"billing":{"$ref":"#/types/opentelekomcloud:index%2FCbrVaultV3Billing:CbrVaultV3Billing","description":"Billing parameter information for creation. Billing fields:\n"},"bindRules":{"description":"Tag map, a rules for automatic association. You can only select tag keys and values from\nthe existing ones. If there are no tags available, go to the corresponding service to create one.\nYou can add a maximum of 5 tags for a search. If more than one tag is added, the backups containing one of the\nspecified tags will be returned.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCbrVaultV3BindRule:CbrVaultV3BindRule"},"type":"array"},"cbrVaultV3Id":{"description":"Specifies the policy ID.\n","type":"string"},"createdAt":{"type":"string"},"description":{"description":"User-defined vault description.\n","type":"string"},"enterpriseProjectId":{"type":"string"},"locked":{"description":"Specifies whether the vault is locked. A locked vault cannot be unlocked.\nDefaults to **false**.\n","type":"boolean"},"name":{"description":"Vault name.\n","type":"string"},"policies":{"description":"Specifies the policy details to associate with the CBR vault.\nThe object structure is documented below.\n\n<a name=<span pulumi-lang-nodejs=\"\"vaultPolicies\"\" pulumi-lang-dotnet=\"\"VaultPolicies\"\" pulumi-lang-go=\"\"vaultPolicies\"\" pulumi-lang-python=\"\"vault_policies\"\" pulumi-lang-yaml=\"\"vaultPolicies\"\" pulumi-lang-java=\"\"vaultPolicies\"\">\"vault_policies\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`policy`\" pulumi-lang-dotnet=\"`Policy`\" pulumi-lang-go=\"`policy`\" pulumi-lang-python=\"`policy`\" pulumi-lang-yaml=\"`policy`\" pulumi-lang-java=\"`policy`\">`policy`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCbrVaultV3Policy:CbrVaultV3Policy"},"type":"array"},"projectId":{"type":"string"},"providerId":{"type":"string"},"region":{"type":"string"},"resources":{"description":"Associated resources. Multiple. Resource fields:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCbrVaultV3Resource:CbrVaultV3Resource"},"type":"array"},"tags":{"additionalProperties":{"type":"string"},"description":"Tag map.\n","type":"object"},"userId":{"type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cceAddonV3:CceAddonV3":{"description":"Up-to-date reference of API arguments for CCE addons you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-container-engine/api-ref/apis/add-on_management/)\n\nManages a V3 CCE Addon resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Basic addon setting\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst flavorId = config.requireObject<any>(\"flavorId\");\nconst vpcId = config.requireObject<any>(\"vpcId\");\nconst subnetId = config.requireObject<any>(\"subnetId\");\nconst cluster1 = new opentelekomcloud.CceClusterV3(\"cluster_1\", {\n    name: \"cce-cluster-1\",\n    clusterType: \"VirtualMachine\",\n    flavorId: flavorId,\n    vpcId: vpcId,\n    subnetId: subnetId,\n    containerNetworkType: \"overlay_l2\",\n    kubernetesSvcIpRange: \"10.247.0.0/16\",\n    clusterVersion: \"v1.17.9-r0\",\n});\nconst addon = new opentelekomcloud.CceAddonV3(\"addon\", {\n    templateName: \"metrics-server\",\n    templateVersion: \"1.3.6\",\n    clusterId: cluster1.cceClusterV3Id,\n    values: {\n        basic: {\n            image_version: \"v0.6.2\",\n            swr_addr: \"100.125.7.25:20202\",\n            swr_user: \"cce-addons\",\n        },\n        custom: {},\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nflavor_id = config.require_object(\"flavorId\")\nvpc_id = config.require_object(\"vpcId\")\nsubnet_id = config.require_object(\"subnetId\")\ncluster1 = opentelekomcloud.CceClusterV3(\"cluster_1\",\n    name=\"cce-cluster-1\",\n    cluster_type=\"VirtualMachine\",\n    flavor_id=flavor_id,\n    vpc_id=vpc_id,\n    subnet_id=subnet_id,\n    container_network_type=\"overlay_l2\",\n    kubernetes_svc_ip_range=\"10.247.0.0/16\",\n    cluster_version=\"v1.17.9-r0\")\naddon = opentelekomcloud.CceAddonV3(\"addon\",\n    template_name=\"metrics-server\",\n    template_version=\"1.3.6\",\n    cluster_id=cluster1.cce_cluster_v3_id,\n    values={\n        \"basic\": {\n            \"image_version\": \"v0.6.2\",\n            \"swr_addr\": \"100.125.7.25:20202\",\n            \"swr_user\": \"cce-addons\",\n        },\n        \"custom\": {},\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var flavorId = config.RequireObject<dynamic>(\"flavorId\");\n    var vpcId = config.RequireObject<dynamic>(\"vpcId\");\n    var subnetId = config.RequireObject<dynamic>(\"subnetId\");\n    var cluster1 = new Opentelekomcloud.CceClusterV3(\"cluster_1\", new()\n    {\n        Name = \"cce-cluster-1\",\n        ClusterType = \"VirtualMachine\",\n        FlavorId = flavorId,\n        VpcId = vpcId,\n        SubnetId = subnetId,\n        ContainerNetworkType = \"overlay_l2\",\n        KubernetesSvcIpRange = \"10.247.0.0/16\",\n        ClusterVersion = \"v1.17.9-r0\",\n    });\n\n    var addon = new Opentelekomcloud.CceAddonV3(\"addon\", new()\n    {\n        TemplateName = \"metrics-server\",\n        TemplateVersion = \"1.3.6\",\n        ClusterId = cluster1.CceClusterV3Id,\n        Values = new Opentelekomcloud.Inputs.CceAddonV3ValuesArgs\n        {\n            Basic = \n            {\n                { \"image_version\", \"v0.6.2\" },\n                { \"swr_addr\", \"100.125.7.25:20202\" },\n                { \"swr_user\", \"cce-addons\" },\n            },\n            Custom = null,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tflavorId := cfg.RequireObject(\"flavorId\")\n\t\tvpcId := cfg.RequireObject(\"vpcId\")\n\t\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\tcluster1, err := opentelekomcloud.NewCceClusterV3(ctx, \"cluster_1\", &opentelekomcloud.CceClusterV3Args{\n\t\t\tName:                 pulumi.String(\"cce-cluster-1\"),\n\t\t\tClusterType:          pulumi.String(\"VirtualMachine\"),\n\t\t\tFlavorId:             pulumi.Any(flavorId),\n\t\t\tVpcId:                pulumi.Any(vpcId),\n\t\t\tSubnetId:             pulumi.Any(subnetId),\n\t\t\tContainerNetworkType: pulumi.String(\"overlay_l2\"),\n\t\t\tKubernetesSvcIpRange: pulumi.String(\"10.247.0.0/16\"),\n\t\t\tClusterVersion:       pulumi.String(\"v1.17.9-r0\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewCceAddonV3(ctx, \"addon\", &opentelekomcloud.CceAddonV3Args{\n\t\t\tTemplateName:    pulumi.String(\"metrics-server\"),\n\t\t\tTemplateVersion: pulumi.String(\"1.3.6\"),\n\t\t\tClusterId:       cluster1.CceClusterV3Id,\n\t\t\tValues: &opentelekomcloud.CceAddonV3ValuesArgs{\n\t\t\t\tBasic: pulumi.StringMap{\n\t\t\t\t\t\"image_version\": pulumi.String(\"v0.6.2\"),\n\t\t\t\t\t\"swr_addr\":      pulumi.String(\"100.125.7.25:20202\"),\n\t\t\t\t\t\"swr_user\":      pulumi.String(\"cce-addons\"),\n\t\t\t\t},\n\t\t\t\tCustom: pulumi.StringMap{},\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.opentelekomcloud.CceClusterV3;\nimport com.pulumi.opentelekomcloud.CceClusterV3Args;\nimport com.pulumi.opentelekomcloud.CceAddonV3;\nimport com.pulumi.opentelekomcloud.CceAddonV3Args;\nimport com.pulumi.opentelekomcloud.inputs.CceAddonV3ValuesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var flavorId = config.get(\"flavorId\");\n        final var vpcId = config.get(\"vpcId\");\n        final var subnetId = config.get(\"subnetId\");\n        var cluster1 = new CceClusterV3(\"cluster1\", CceClusterV3Args.builder()\n            .name(\"cce-cluster-1\")\n            .clusterType(\"VirtualMachine\")\n            .flavorId(flavorId)\n            .vpcId(vpcId)\n            .subnetId(subnetId)\n            .containerNetworkType(\"overlay_l2\")\n            .kubernetesSvcIpRange(\"10.247.0.0/16\")\n            .clusterVersion(\"v1.17.9-r0\")\n            .build());\n\n        var addon = new CceAddonV3(\"addon\", CceAddonV3Args.builder()\n            .templateName(\"metrics-server\")\n            .templateVersion(\"1.3.6\")\n            .clusterId(cluster1.cceClusterV3Id())\n            .values(CceAddonV3ValuesArgs.builder()\n                .basic(Map.ofEntries(\n                    Map.entry(\"image_version\", \"v0.6.2\"),\n                    Map.entry(\"swr_addr\", \"100.125.7.25:20202\"),\n                    Map.entry(\"swr_user\", \"cce-addons\")\n                ))\n                .custom(Map.ofEntries(\n                ))\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  flavorId:\n    type: dynamic\n  vpcId:\n    type: dynamic\n  subnetId:\n    type: dynamic\nresources:\n  cluster1:\n    type: opentelekomcloud:CceClusterV3\n    name: cluster_1\n    properties:\n      name: cce-cluster-1\n      clusterType: VirtualMachine\n      flavorId: ${flavorId}\n      vpcId: ${vpcId}\n      subnetId: ${subnetId}\n      containerNetworkType: overlay_l2\n      kubernetesSvcIpRange: 10.247.0.0/16\n      clusterVersion: v1.17.9-r0\n  addon:\n    type: opentelekomcloud:CceAddonV3\n    properties:\n      templateName: metrics-server\n      templateVersion: 1.3.6\n      clusterId: ${cluster1.cceClusterV3Id}\n      values:\n        basic:\n          image_version: v0.6.2\n          swr_addr: 100.125.7.25:20202\n          swr_user: cce-addons\n        custom: {}\n```\n<!--End PulumiCodeChooser -->\n\n### CCE addon management with data sources\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst vpcId = config.requireObject<any>(\"vpcId\");\nconst networkId = config.requireObject<any>(\"networkId\");\nconst regionName = config.requireObject<any>(\"regionName\");\nconst _this = opentelekomcloud.getIdentityProjectV3({});\nconst autoscaler = opentelekomcloud.getCceAddonTemplateV3({\n    addonVersion: autoscalerVersion,\n    addonName: \"autoscaler\",\n});\nconst cluster1 = new opentelekomcloud.CceClusterV3(\"cluster_1\", {\n    name: \"my_cluster\",\n    clusterType: \"VirtualMachine\",\n    flavorId: \"cce.s1.small\",\n    vpcId: vpcId,\n    subnetId: networkId,\n    clusterVersion: \"v1.25\",\n    containerNetworkType: \"overlay_l2\",\n    kubernetesSvcIpRange: \"10.247.0.0/16\",\n});\nconst autoscalerCceAddonV3 = new opentelekomcloud.CceAddonV3(\"autoscaler\", {\n    templateName: autoscaler.then(autoscaler => autoscaler.addonName),\n    templateVersion: autoscaler.then(autoscaler => autoscaler.addonVersion),\n    clusterId: cluster1.cceClusterV3Id,\n    values: {\n        basic: {\n            cceEndpoint: `https://cce.${regionName}.otc.t-systems.com`,\n            ecsEndpoint: `https://ecs.${regionName}.otc.t-systems.com`,\n            region: regionName,\n            swr_addr: autoscaler.then(autoscaler => autoscaler.swrAddr),\n            swr_user: autoscaler.then(autoscaler => autoscaler.swrUser),\n        },\n        custom: {\n            cluster_id: cluster1.cceClusterV3Id,\n            coresTotal: \"32000\",\n            expander: \"priority\",\n            logLevel: \"4\",\n            maxEmptyBulkDeleteFlag: \"10\",\n            maxNodeProvisionTime: \"15\",\n            maxNodesTotal: \"1000\",\n            memoryTotal: \"128000\",\n            scaleDownDelayAfterAdd: \"10\",\n            scaleDownDelayAfterDelete: \"11\",\n            scaleDownDelayAfterFailure: \"3\",\n            scaleDownEnabled: \"true\",\n            scaleDownUnneededTime: \"10\",\n            scaleDownUtilizationThreshold: \"0.5\",\n            scaleUpCpuUtilizationThreshold: \"1\",\n            scaleUpMemUtilizationThreshold: \"1\",\n            scaleUpUnscheduledPodEnabled: \"true\",\n            scaleUpUtilizationEnabled: \"true\",\n            tenant_id: _this.then(_this => _this.id),\n            unremovableNodeRecheckTimeout: \"5\",\n        },\n        flavor: `      {\n        \\\\\"description\\\\\": \\\\\"Has only one instance\\\\\",\n        \\\\\"name\\\\\": \\\\\"Single\\\\\",\n        \\\\\"replicas\\\\\": 1,\n        \\\\\"resources\\\\\": [\n          {\n            \\\\\"limitsCpu\\\\\": \\\\\"1000m\\\\\",\n            \\\\\"limitsMem\\\\\": \\\\\"1000Mi\\\\\",\n            \\\\\"name\\\\\": \\\\\"autoscaler\\\\\",\n            \\\\\"requestsCpu\\\\\": \\\\\"500m\\\\\",\n            \\\\\"requestsMem\\\\\": \\\\\"500Mi\\\\\"\n          }\n        ]\n      }\n`,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nvpc_id = config.require_object(\"vpcId\")\nnetwork_id = config.require_object(\"networkId\")\nregion_name = config.require_object(\"regionName\")\nthis = opentelekomcloud.get_identity_project_v3()\nautoscaler = opentelekomcloud.get_cce_addon_template_v3(addon_version=autoscaler_version,\n    addon_name=\"autoscaler\")\ncluster1 = opentelekomcloud.CceClusterV3(\"cluster_1\",\n    name=\"my_cluster\",\n    cluster_type=\"VirtualMachine\",\n    flavor_id=\"cce.s1.small\",\n    vpc_id=vpc_id,\n    subnet_id=network_id,\n    cluster_version=\"v1.25\",\n    container_network_type=\"overlay_l2\",\n    kubernetes_svc_ip_range=\"10.247.0.0/16\")\nautoscaler_cce_addon_v3 = opentelekomcloud.CceAddonV3(\"autoscaler\",\n    template_name=autoscaler.addon_name,\n    template_version=autoscaler.addon_version,\n    cluster_id=cluster1.cce_cluster_v3_id,\n    values={\n        \"basic\": {\n            \"cceEndpoint\": f\"https://cce.{region_name}.otc.t-systems.com\",\n            \"ecsEndpoint\": f\"https://ecs.{region_name}.otc.t-systems.com\",\n            \"region\": region_name,\n            \"swr_addr\": autoscaler.swr_addr,\n            \"swr_user\": autoscaler.swr_user,\n        },\n        \"custom\": {\n            \"cluster_id\": cluster1.cce_cluster_v3_id,\n            \"coresTotal\": \"32000\",\n            \"expander\": \"priority\",\n            \"logLevel\": \"4\",\n            \"maxEmptyBulkDeleteFlag\": \"10\",\n            \"maxNodeProvisionTime\": \"15\",\n            \"maxNodesTotal\": \"1000\",\n            \"memoryTotal\": \"128000\",\n            \"scaleDownDelayAfterAdd\": \"10\",\n            \"scaleDownDelayAfterDelete\": \"11\",\n            \"scaleDownDelayAfterFailure\": \"3\",\n            \"scaleDownEnabled\": \"true\",\n            \"scaleDownUnneededTime\": \"10\",\n            \"scaleDownUtilizationThreshold\": \"0.5\",\n            \"scaleUpCpuUtilizationThreshold\": \"1\",\n            \"scaleUpMemUtilizationThreshold\": \"1\",\n            \"scaleUpUnscheduledPodEnabled\": \"true\",\n            \"scaleUpUtilizationEnabled\": \"true\",\n            \"tenant_id\": this.id,\n            \"unremovableNodeRecheckTimeout\": \"5\",\n        },\n        \"flavor\": \"\"\"      {\n        \\\"description\\\": \\\"Has only one instance\\\",\n        \\\"name\\\": \\\"Single\\\",\n        \\\"replicas\\\": 1,\n        \\\"resources\\\": [\n          {\n            \\\"limitsCpu\\\": \\\"1000m\\\",\n            \\\"limitsMem\\\": \\\"1000Mi\\\",\n            \\\"name\\\": \\\"autoscaler\\\",\n            \\\"requestsCpu\\\": \\\"500m\\\",\n            \\\"requestsMem\\\": \\\"500Mi\\\"\n          }\n        ]\n      }\n\"\"\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var vpcId = config.RequireObject<dynamic>(\"vpcId\");\n    var networkId = config.RequireObject<dynamic>(\"networkId\");\n    var regionName = config.RequireObject<dynamic>(\"regionName\");\n    var @this = Opentelekomcloud.GetIdentityProjectV3.Invoke();\n\n    var autoscaler = Opentelekomcloud.GetCceAddonTemplateV3.Invoke(new()\n    {\n        AddonVersion = autoscalerVersion,\n        AddonName = \"autoscaler\",\n    });\n\n    var cluster1 = new Opentelekomcloud.CceClusterV3(\"cluster_1\", new()\n    {\n        Name = \"my_cluster\",\n        ClusterType = \"VirtualMachine\",\n        FlavorId = \"cce.s1.small\",\n        VpcId = vpcId,\n        SubnetId = networkId,\n        ClusterVersion = \"v1.25\",\n        ContainerNetworkType = \"overlay_l2\",\n        KubernetesSvcIpRange = \"10.247.0.0/16\",\n    });\n\n    var autoscalerCceAddonV3 = new Opentelekomcloud.CceAddonV3(\"autoscaler\", new()\n    {\n        TemplateName = autoscaler.Apply(getCceAddonTemplateV3Result => getCceAddonTemplateV3Result.AddonName),\n        TemplateVersion = autoscaler.Apply(getCceAddonTemplateV3Result => getCceAddonTemplateV3Result.AddonVersion),\n        ClusterId = cluster1.CceClusterV3Id,\n        Values = new Opentelekomcloud.Inputs.CceAddonV3ValuesArgs\n        {\n            Basic = \n            {\n                { \"cceEndpoint\", $\"https://cce.{regionName}.otc.t-systems.com\" },\n                { \"ecsEndpoint\", $\"https://ecs.{regionName}.otc.t-systems.com\" },\n                { \"region\", regionName },\n                { \"swr_addr\", autoscaler.Apply(getCceAddonTemplateV3Result => getCceAddonTemplateV3Result.SwrAddr) },\n                { \"swr_user\", autoscaler.Apply(getCceAddonTemplateV3Result => getCceAddonTemplateV3Result.SwrUser) },\n            },\n            Custom = \n            {\n                { \"cluster_id\", cluster1.CceClusterV3Id },\n                { \"coresTotal\", \"32000\" },\n                { \"expander\", \"priority\" },\n                { \"logLevel\", \"4\" },\n                { \"maxEmptyBulkDeleteFlag\", \"10\" },\n                { \"maxNodeProvisionTime\", \"15\" },\n                { \"maxNodesTotal\", \"1000\" },\n                { \"memoryTotal\", \"128000\" },\n                { \"scaleDownDelayAfterAdd\", \"10\" },\n                { \"scaleDownDelayAfterDelete\", \"11\" },\n                { \"scaleDownDelayAfterFailure\", \"3\" },\n                { \"scaleDownEnabled\", \"true\" },\n                { \"scaleDownUnneededTime\", \"10\" },\n                { \"scaleDownUtilizationThreshold\", \"0.5\" },\n                { \"scaleUpCpuUtilizationThreshold\", \"1\" },\n                { \"scaleUpMemUtilizationThreshold\", \"1\" },\n                { \"scaleUpUnscheduledPodEnabled\", \"true\" },\n                { \"scaleUpUtilizationEnabled\", \"true\" },\n                { \"tenant_id\", @this.Apply(@this => @this.Apply(getIdentityProjectV3Result => getIdentityProjectV3Result.Id)) },\n                { \"unremovableNodeRecheckTimeout\", \"5\" },\n            },\n            Flavor = @\"      {\n        \\\"\"description\\\"\": \\\"\"Has only one instance\\\"\",\n        \\\"\"name\\\"\": \\\"\"Single\\\"\",\n        \\\"\"replicas\\\"\": 1,\n        \\\"\"resources\\\"\": [\n          {\n            \\\"\"limitsCpu\\\"\": \\\"\"1000m\\\"\",\n            \\\"\"limitsMem\\\"\": \\\"\"1000Mi\\\"\",\n            \\\"\"name\\\"\": \\\"\"autoscaler\\\"\",\n            \\\"\"requestsCpu\\\"\": \\\"\"500m\\\"\",\n            \\\"\"requestsMem\\\"\": \\\"\"500Mi\\\"\"\n          }\n        ]\n      }\n\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tvpcId := cfg.RequireObject(\"vpcId\")\n\t\tnetworkId := cfg.RequireObject(\"networkId\")\n\t\tregionName := cfg.RequireObject(\"regionName\")\n\t\tthis, err := opentelekomcloud.LookupIdentityProjectV3(ctx, &opentelekomcloud.LookupIdentityProjectV3Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tautoscaler, err := opentelekomcloud.GetCceAddonTemplateV3(ctx, &opentelekomcloud.GetCceAddonTemplateV3Args{\n\t\t\tAddonVersion: autoscalerVersion,\n\t\t\tAddonName:    \"autoscaler\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcluster1, err := opentelekomcloud.NewCceClusterV3(ctx, \"cluster_1\", &opentelekomcloud.CceClusterV3Args{\n\t\t\tName:                 pulumi.String(\"my_cluster\"),\n\t\t\tClusterType:          pulumi.String(\"VirtualMachine\"),\n\t\t\tFlavorId:             pulumi.String(\"cce.s1.small\"),\n\t\t\tVpcId:                pulumi.Any(vpcId),\n\t\t\tSubnetId:             pulumi.Any(networkId),\n\t\t\tClusterVersion:       pulumi.String(\"v1.25\"),\n\t\t\tContainerNetworkType: pulumi.String(\"overlay_l2\"),\n\t\t\tKubernetesSvcIpRange: pulumi.String(\"10.247.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewCceAddonV3(ctx, \"autoscaler\", &opentelekomcloud.CceAddonV3Args{\n\t\t\tTemplateName:    pulumi.String(autoscaler.AddonName),\n\t\t\tTemplateVersion: pulumi.String(autoscaler.AddonVersion),\n\t\t\tClusterId:       cluster1.CceClusterV3Id,\n\t\t\tValues: &opentelekomcloud.CceAddonV3ValuesArgs{\n\t\t\t\tBasic: pulumi.StringMap{\n\t\t\t\t\t\"cceEndpoint\": pulumi.Sprintf(\"https://cce.%v.otc.t-systems.com\", regionName),\n\t\t\t\t\t\"ecsEndpoint\": pulumi.Sprintf(\"https://ecs.%v.otc.t-systems.com\", regionName),\n\t\t\t\t\t\"region\":      pulumi.Any(regionName),\n\t\t\t\t\t\"swr_addr\":    pulumi.String(autoscaler.SwrAddr),\n\t\t\t\t\t\"swr_user\":    pulumi.String(autoscaler.SwrUser),\n\t\t\t\t},\n\t\t\t\tCustom: pulumi.StringMap{\n\t\t\t\t\t\"cluster_id\":                     cluster1.CceClusterV3Id,\n\t\t\t\t\t\"coresTotal\":                     pulumi.String(\"32000\"),\n\t\t\t\t\t\"expander\":                       pulumi.String(\"priority\"),\n\t\t\t\t\t\"logLevel\":                       pulumi.String(\"4\"),\n\t\t\t\t\t\"maxEmptyBulkDeleteFlag\":         pulumi.String(\"10\"),\n\t\t\t\t\t\"maxNodeProvisionTime\":           pulumi.String(\"15\"),\n\t\t\t\t\t\"maxNodesTotal\":                  pulumi.String(\"1000\"),\n\t\t\t\t\t\"memoryTotal\":                    pulumi.String(\"128000\"),\n\t\t\t\t\t\"scaleDownDelayAfterAdd\":         pulumi.String(\"10\"),\n\t\t\t\t\t\"scaleDownDelayAfterDelete\":      pulumi.String(\"11\"),\n\t\t\t\t\t\"scaleDownDelayAfterFailure\":     pulumi.String(\"3\"),\n\t\t\t\t\t\"scaleDownEnabled\":               pulumi.String(\"true\"),\n\t\t\t\t\t\"scaleDownUnneededTime\":          pulumi.String(\"10\"),\n\t\t\t\t\t\"scaleDownUtilizationThreshold\":  pulumi.String(\"0.5\"),\n\t\t\t\t\t\"scaleUpCpuUtilizationThreshold\": pulumi.String(\"1\"),\n\t\t\t\t\t\"scaleUpMemUtilizationThreshold\": pulumi.String(\"1\"),\n\t\t\t\t\t\"scaleUpUnscheduledPodEnabled\":   pulumi.String(\"true\"),\n\t\t\t\t\t\"scaleUpUtilizationEnabled\":      pulumi.String(\"true\"),\n\t\t\t\t\t\"tenant_id\":                      pulumi.String(this.Id),\n\t\t\t\t\t\"unremovableNodeRecheckTimeout\":  pulumi.String(\"5\"),\n\t\t\t\t},\n\t\t\t\tFlavor: pulumi.String(`      {\n        \\\"description\\\": \\\"Has only one instance\\\",\n        \\\"name\\\": \\\"Single\\\",\n        \\\"replicas\\\": 1,\n        \\\"resources\\\": [\n          {\n            \\\"limitsCpu\\\": \\\"1000m\\\",\n            \\\"limitsMem\\\": \\\"1000Mi\\\",\n            \\\"name\\\": \\\"autoscaler\\\",\n            \\\"requestsCpu\\\": \\\"500m\\\",\n            \\\"requestsMem\\\": \\\"500Mi\\\"\n          }\n        ]\n      }\n`),\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.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetIdentityProjectV3Args;\nimport com.pulumi.opentelekomcloud.inputs.GetCceAddonTemplateV3Args;\nimport com.pulumi.opentelekomcloud.CceClusterV3;\nimport com.pulumi.opentelekomcloud.CceClusterV3Args;\nimport com.pulumi.opentelekomcloud.CceAddonV3;\nimport com.pulumi.opentelekomcloud.CceAddonV3Args;\nimport com.pulumi.opentelekomcloud.inputs.CceAddonV3ValuesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var vpcId = config.get(\"vpcId\");\n        final var networkId = config.get(\"networkId\");\n        final var regionName = config.get(\"regionName\");\n        final var this = OpentelekomcloudFunctions.getIdentityProjectV3(GetIdentityProjectV3Args.builder()\n            .build());\n\n        final var autoscaler = OpentelekomcloudFunctions.getCceAddonTemplateV3(GetCceAddonTemplateV3Args.builder()\n            .addonVersion(autoscalerVersion)\n            .addonName(\"autoscaler\")\n            .build());\n\n        var cluster1 = new CceClusterV3(\"cluster1\", CceClusterV3Args.builder()\n            .name(\"my_cluster\")\n            .clusterType(\"VirtualMachine\")\n            .flavorId(\"cce.s1.small\")\n            .vpcId(vpcId)\n            .subnetId(networkId)\n            .clusterVersion(\"v1.25\")\n            .containerNetworkType(\"overlay_l2\")\n            .kubernetesSvcIpRange(\"10.247.0.0/16\")\n            .build());\n\n        var autoscalerCceAddonV3 = new CceAddonV3(\"autoscalerCceAddonV3\", CceAddonV3Args.builder()\n            .templateName(autoscaler.addonName())\n            .templateVersion(autoscaler.addonVersion())\n            .clusterId(cluster1.cceClusterV3Id())\n            .values(CceAddonV3ValuesArgs.builder()\n                .basic(Map.ofEntries(\n                    Map.entry(\"cceEndpoint\", String.format(\"https://cce.%s.otc.t-systems.com\", regionName)),\n                    Map.entry(\"ecsEndpoint\", String.format(\"https://ecs.%s.otc.t-systems.com\", regionName)),\n                    Map.entry(\"region\", regionName),\n                    Map.entry(\"swr_addr\", autoscaler.swrAddr()),\n                    Map.entry(\"swr_user\", autoscaler.swrUser())\n                ))\n                .custom(Map.ofEntries(\n                    Map.entry(\"cluster_id\", cluster1.cceClusterV3Id()),\n                    Map.entry(\"coresTotal\", \"32000\"),\n                    Map.entry(\"expander\", \"priority\"),\n                    Map.entry(\"logLevel\", \"4\"),\n                    Map.entry(\"maxEmptyBulkDeleteFlag\", \"10\"),\n                    Map.entry(\"maxNodeProvisionTime\", \"15\"),\n                    Map.entry(\"maxNodesTotal\", \"1000\"),\n                    Map.entry(\"memoryTotal\", \"128000\"),\n                    Map.entry(\"scaleDownDelayAfterAdd\", \"10\"),\n                    Map.entry(\"scaleDownDelayAfterDelete\", \"11\"),\n                    Map.entry(\"scaleDownDelayAfterFailure\", \"3\"),\n                    Map.entry(\"scaleDownEnabled\", \"true\"),\n                    Map.entry(\"scaleDownUnneededTime\", \"10\"),\n                    Map.entry(\"scaleDownUtilizationThreshold\", \"0.5\"),\n                    Map.entry(\"scaleUpCpuUtilizationThreshold\", \"1\"),\n                    Map.entry(\"scaleUpMemUtilizationThreshold\", \"1\"),\n                    Map.entry(\"scaleUpUnscheduledPodEnabled\", \"true\"),\n                    Map.entry(\"scaleUpUtilizationEnabled\", \"true\"),\n                    Map.entry(\"tenant_id\", this_.id()),\n                    Map.entry(\"unremovableNodeRecheckTimeout\", \"5\")\n                ))\n                .flavor(\"\"\"\n      {\n        \\\"description\\\": \\\"Has only one instance\\\",\n        \\\"name\\\": \\\"Single\\\",\n        \\\"replicas\\\": 1,\n        \\\"resources\\\": [\n          {\n            \\\"limitsCpu\\\": \\\"1000m\\\",\n            \\\"limitsMem\\\": \\\"1000Mi\\\",\n            \\\"name\\\": \\\"autoscaler\\\",\n            \\\"requestsCpu\\\": \\\"500m\\\",\n            \\\"requestsMem\\\": \\\"500Mi\\\"\n          }\n        ]\n      }\n                \"\"\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  vpcId:\n    type: dynamic\n  networkId:\n    type: dynamic\n  regionName:\n    type: dynamic\nresources:\n  cluster1:\n    type: opentelekomcloud:CceClusterV3\n    name: cluster_1\n    properties:\n      name: my_cluster\n      clusterType: VirtualMachine\n      flavorId: cce.s1.small\n      vpcId: ${vpcId}\n      subnetId: ${networkId}\n      clusterVersion: v1.25\n      containerNetworkType: overlay_l2\n      kubernetesSvcIpRange: 10.247.0.0/16\n  autoscalerCceAddonV3:\n    type: opentelekomcloud:CceAddonV3\n    name: autoscaler\n    properties:\n      templateName: ${autoscaler.addonName}\n      templateVersion: ${autoscaler.addonVersion}\n      clusterId: ${cluster1.cceClusterV3Id}\n      values:\n        basic:\n          cceEndpoint: https://cce.${regionName}.otc.t-systems.com\n          ecsEndpoint: https://ecs.${regionName}.otc.t-systems.com\n          region: ${regionName}\n          swr_addr: ${autoscaler.swrAddr}\n          swr_user: ${autoscaler.swrUser}\n        custom:\n          cluster_id: ${cluster1.cceClusterV3Id}\n          coresTotal: 32000\n          expander: priority\n          logLevel: 4\n          maxEmptyBulkDeleteFlag: 10\n          maxNodeProvisionTime: 15\n          maxNodesTotal: 1000\n          memoryTotal: 128000\n          scaleDownDelayAfterAdd: 10\n          scaleDownDelayAfterDelete: 11\n          scaleDownDelayAfterFailure: 3\n          scaleDownEnabled: true\n          scaleDownUnneededTime: 10\n          scaleDownUtilizationThreshold: 0.5\n          scaleUpCpuUtilizationThreshold: 1\n          scaleUpMemUtilizationThreshold: 1\n          scaleUpUnscheduledPodEnabled: true\n          scaleUpUtilizationEnabled: true\n          tenant_id: ${this.id}\n          unremovableNodeRecheckTimeout: 5\n        flavor: |2\n                {\n                  \\\"description\\\": \\\"Has only one instance\\\",\n                  \\\"name\\\": \\\"Single\\\",\n                  \\\"replicas\\\": 1,\n                  \\\"resources\\\": [\n                    {\n                      \\\"limitsCpu\\\": \\\"1000m\\\",\n                      \\\"limitsMem\\\": \\\"1000Mi\\\",\n                      \\\"name\\\": \\\"autoscaler\\\",\n                      \\\"requestsCpu\\\": \\\"500m\\\",\n                      \\\"requestsMem\\\": \\\"500Mi\\\"\n                    }\n                  ]\n                }\nvariables:\n  this:\n    fn::invoke:\n      function: opentelekomcloud:getIdentityProjectV3\n      arguments: {}\n  autoscaler:\n    fn::invoke:\n      function: opentelekomcloud:getCceAddonTemplateV3\n      arguments:\n        addonVersion: ${autoscalerVersion}\n        addonName: autoscaler\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCCE addons can be imported using the `cluster_id/addon_id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/cceAddonV3:CceAddonV3 autoscaler c1881895-cdcb-4d23-96cb-032e6a3ee667/ea257959-eeb1-4c10-8d33-26f0409a755d\n```\n\n","inputProperties":{"cceAddonV3Id":{"type":"string"},"clusterId":{"description":"ID of cluster to install the add-on on.\n","type":"string"},"templateName":{"description":"Name of the add-on template to be installed, for example, <span pulumi-lang-nodejs=\"`coredns`\" pulumi-lang-dotnet=\"`Coredns`\" pulumi-lang-go=\"`coredns`\" pulumi-lang-python=\"`coredns`\" pulumi-lang-yaml=\"`coredns`\" pulumi-lang-java=\"`coredns`\">`coredns`</span>.\n","type":"string"},"templateVersion":{"description":"Version number of the add-on to be installed or upgraded, for example, `v1.0.0`.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCceAddonV3Timeouts:CceAddonV3Timeouts"},"values":{"$ref":"#/types/opentelekomcloud:index%2FCceAddonV3Values:CceAddonV3Values","description":"Parameters of the template to be installed or upgraded.\n"}},"properties":{"cceAddonV3Id":{"type":"string"},"clusterId":{"description":"ID of cluster to install the add-on on.\n","type":"string"},"description":{"description":"Installed add-on description\n","type":"string"},"name":{"description":"Installed add-on name.\n","type":"string"},"templateName":{"description":"Name of the add-on template to be installed, for example, <span pulumi-lang-nodejs=\"`coredns`\" pulumi-lang-dotnet=\"`Coredns`\" pulumi-lang-go=\"`coredns`\" pulumi-lang-python=\"`coredns`\" pulumi-lang-yaml=\"`coredns`\" pulumi-lang-java=\"`coredns`\">`coredns`</span>.\n","type":"string"},"templateVersion":{"description":"Version number of the add-on to be installed or upgraded, for example, `v1.0.0`.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCceAddonV3Timeouts:CceAddonV3Timeouts"},"values":{"$ref":"#/types/opentelekomcloud:index%2FCceAddonV3Values:CceAddonV3Values","description":"Parameters of the template to be installed or upgraded.\n"}},"required":["cceAddonV3Id","clusterId","description","name","templateName","templateVersion","values"],"requiredInputs":["clusterId","templateName","templateVersion","values"],"stateInputs":{"description":"Input properties used for looking up and filtering CceAddonV3 resources.\n","properties":{"cceAddonV3Id":{"type":"string"},"clusterId":{"description":"ID of cluster to install the add-on on.\n","type":"string"},"description":{"description":"Installed add-on description\n","type":"string"},"name":{"description":"Installed add-on name.\n","type":"string"},"templateName":{"description":"Name of the add-on template to be installed, for example, <span pulumi-lang-nodejs=\"`coredns`\" pulumi-lang-dotnet=\"`Coredns`\" pulumi-lang-go=\"`coredns`\" pulumi-lang-python=\"`coredns`\" pulumi-lang-yaml=\"`coredns`\" pulumi-lang-java=\"`coredns`\">`coredns`</span>.\n","type":"string"},"templateVersion":{"description":"Version number of the add-on to be installed or upgraded, for example, `v1.0.0`.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCceAddonV3Timeouts:CceAddonV3Timeouts"},"values":{"$ref":"#/types/opentelekomcloud:index%2FCceAddonV3Values:CceAddonV3Values","description":"Parameters of the template to be installed or upgraded.\n"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cceClusterV3:CceClusterV3":{"description":"\n\n## Import\n\nCluster can be imported using the cluster id, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/cceClusterV3:CceClusterV3 cluster_1 4779ab1c-7c1a-44b1-a02e-93dfc361b32d\n```\n\n","inputProperties":{"annotations":{"additionalProperties":{"type":"string"},"description":"Cluster annotation, key/value pair format. Changing this parameter will create a new cluster resource.\n","type":"object"},"apiAccessTrustlists":{"description":"Specifies the trustlist of network CIDRs that are allowed to access cluster APIs. Specified when creating a CCE cluster.\nChanging this parameter will create a new cluster resource.\n","items":{"type":"string"},"type":"array"},"authenticatingProxy":{"$ref":"#/types/opentelekomcloud:index%2FCceClusterV3AuthenticatingProxy:CceClusterV3AuthenticatingProxy","description":"Authenticating proxy configuration. Required if <span pulumi-lang-nodejs=\"`authenticationMode`\" pulumi-lang-dotnet=\"`AuthenticationMode`\" pulumi-lang-go=\"`authenticationMode`\" pulumi-lang-python=\"`authentication_mode`\" pulumi-lang-yaml=\"`authenticationMode`\" pulumi-lang-java=\"`authenticationMode`\">`authentication_mode`</span> is set to <span pulumi-lang-nodejs=\"`authenticatingProxy`\" pulumi-lang-dotnet=\"`AuthenticatingProxy`\" pulumi-lang-go=\"`authenticatingProxy`\" pulumi-lang-python=\"`authenticating_proxy`\" pulumi-lang-yaml=\"`authenticatingProxy`\" pulumi-lang-java=\"`authenticatingProxy`\">`authenticating_proxy`</span>.\n"},"authenticatingProxyCa":{"deprecationMessage":"Deprecated","description":"CA root certificate provided in the <span pulumi-lang-nodejs=\"`authenticatingProxy`\" pulumi-lang-dotnet=\"`AuthenticatingProxy`\" pulumi-lang-go=\"`authenticatingProxy`\" pulumi-lang-python=\"`authenticating_proxy`\" pulumi-lang-yaml=\"`authenticatingProxy`\" pulumi-lang-java=\"`authenticatingProxy`\">`authenticating_proxy`</span> mode.\nDeprecated, use <span pulumi-lang-nodejs=\"`authenticatingProxy`\" pulumi-lang-dotnet=\"`AuthenticatingProxy`\" pulumi-lang-go=\"`authenticatingProxy`\" pulumi-lang-python=\"`authenticating_proxy`\" pulumi-lang-yaml=\"`authenticatingProxy`\" pulumi-lang-java=\"`authenticatingProxy`\">`authenticating_proxy`</span> instead.\n","type":"string"},"authenticationMode":{"description":"Cluster authentication mode.\n* Clusters of Kubernetes v1.11 and earlier\nPossible values: <span pulumi-lang-nodejs=\"`x509`\" pulumi-lang-dotnet=\"`X509`\" pulumi-lang-go=\"`x509`\" pulumi-lang-python=\"`x509`\" pulumi-lang-yaml=\"`x509`\" pulumi-lang-java=\"`x509`\">`x509`</span>, <span pulumi-lang-nodejs=\"`rbac`\" pulumi-lang-dotnet=\"`Rbac`\" pulumi-lang-go=\"`rbac`\" pulumi-lang-python=\"`rbac`\" pulumi-lang-yaml=\"`rbac`\" pulumi-lang-java=\"`rbac`\">`rbac`</span>, and <span pulumi-lang-nodejs=\"`authenticatingProxy`\" pulumi-lang-dotnet=\"`AuthenticatingProxy`\" pulumi-lang-go=\"`authenticatingProxy`\" pulumi-lang-python=\"`authenticating_proxy`\" pulumi-lang-yaml=\"`authenticatingProxy`\" pulumi-lang-java=\"`authenticatingProxy`\">`authenticating_proxy`</span>\n* Clusters of Kubernetes v1.13 and later\nPossible values: <span pulumi-lang-nodejs=\"`rbac`\" pulumi-lang-dotnet=\"`Rbac`\" pulumi-lang-go=\"`rbac`\" pulumi-lang-python=\"`rbac`\" pulumi-lang-yaml=\"`rbac`\" pulumi-lang-java=\"`rbac`\">`rbac`</span> and <span pulumi-lang-nodejs=\"`authenticatingProxy`\" pulumi-lang-dotnet=\"`AuthenticatingProxy`\" pulumi-lang-go=\"`authenticatingProxy`\" pulumi-lang-python=\"`authenticating_proxy`\" pulumi-lang-yaml=\"`authenticatingProxy`\" pulumi-lang-java=\"`authenticatingProxy`\">`authenticating_proxy`</span>\n\nDefault value: <span pulumi-lang-nodejs=\"`rbac`\" pulumi-lang-dotnet=\"`Rbac`\" pulumi-lang-go=\"`rbac`\" pulumi-lang-python=\"`rbac`\" pulumi-lang-yaml=\"`rbac`\" pulumi-lang-java=\"`rbac`\">`rbac`</span>\nChanging this parameter will create a new cluster resource.\n","type":"string"},"billingMode":{"description":"Charging mode of the cluster, which is 0 (on demand). Changing this parameter will create a new cluster resource.\n","type":"number"},"cceClusterV3Id":{"description":"ID of the cluster resource.\n","type":"string"},"clusterType":{"description":"Cluster Type, possible values are `VirtualMachine` and `BareMetal`. Changing this parameter will create a new cluster resource.\n","type":"string"},"clusterVersion":{"description":"For the cluster version, possible values are `v1.29`, `v1.28`, `v1.27`, `v1.25`.\nIf this parameter is not set, the cluster of the latest version is created by default.\nChanging this parameter will create a new cluster resource. [OTC-API](https://docs.otc.t-systems.com/en-us/api2/cce/cce_02_0236.html)\n","type":"string"},"componentConfigurations":{"description":"Specifies the kubernetes component configurations.\nFor details, see [documentation](https://docs.otc.t-systems.com/cloud-container-engine/umn/clusters/managing_clusters/modifying_cluster_configurations.html#cce-10-0213).\nThe object structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCceClusterV3ComponentConfiguration:CceClusterV3ComponentConfiguration"},"type":"array"},"containerNetworkCidr":{"description":"Container network segment. Changing this parameter will create a new cluster resource.\n","type":"string"},"containerNetworkType":{"description":"Container network type.\n","type":"string"},"customSans":{"description":"Specifies the custom san to add to certificate (array of string).\n","items":{"type":"string"},"type":"array"},"deleteAllNetwork":{"description":"Specified whether to delete all associated network resources when deleting the CCE\ncluster. valid values are **true**, **try** and **false**. Default is **false**.\n\n<a name=<span pulumi-lang-nodejs=\"\"cceClusterMasters\"\" pulumi-lang-dotnet=\"\"CceClusterMasters\"\" pulumi-lang-go=\"\"cceClusterMasters\"\" pulumi-lang-python=\"\"cce_cluster_masters\"\" pulumi-lang-yaml=\"\"cceClusterMasters\"\" pulumi-lang-java=\"\"cceClusterMasters\"\">\"cce_cluster_masters\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`masters`\" pulumi-lang-dotnet=\"`Masters`\" pulumi-lang-go=\"`masters`\" pulumi-lang-python=\"`masters`\" pulumi-lang-yaml=\"`masters`\" pulumi-lang-java=\"`masters`\">`masters`</span> block supports:\n","type":"string"},"deleteAllStorage":{"description":"Specified whether to delete all associated storage resources when deleting the CCE\ncluster. valid values are **true**, **try** and **false**. Default is **false**.\n","type":"string"},"deleteEfs":{"description":"Specified whether to unbind associated SFS Turbo file systems when deleting the CCE\ncluster. valid values are **true**, **try** and **false**. Default is **false**.\n","type":"string"},"deleteEni":{"description":"Specified whether to delete ENI ports when deleting the CCE\ncluster. valid values are **true**, **try** and **false**. Default is **false**.\n","type":"string"},"deleteEvs":{"description":"Specified whether to delete associated EVS disks when deleting the CCE cluster.\nvalid values are **true**, **try** and **false**. Default is **false**.\n","type":"string"},"deleteNet":{"description":"Specified whether to delete cluster Service/ingress-related resources, such as ELB when deleting the CCE\ncluster. valid values are **true**, **try** and **false**. Default is **false**.\n","type":"string"},"deleteObs":{"description":"Specified whether to delete associated OBS buckets when deleting the CCE cluster.\nvalid values are **true**, **try** and **false**. Default is **false**.\n","type":"string"},"deleteSfs":{"description":"Specified whether to delete associated SFS file systems when deleting the CCE\ncluster. valid values are **true**, **try** and **false**. Default is **false**.\n","type":"string"},"description":{"description":"Cluster description.\n","type":"string"},"eip":{"description":"EIP address of the cluster.\n","type":"string"},"enableDeletionProtection":{"description":"Enable cluster deletion protection. Only effective during cluster creation. Changing this parameter will create a new cluster resource.\n","type":"boolean"},"enableVolumeEncryption":{"description":"System and data disks encryption of master nodes. Changing this parameter will create a new cluster resource.\n","type":"boolean"},"eniSubnetCidr":{"description":"Specifies the ENI network segment. Specified when creating a CCE Turbo cluster. Changing this parameter will create a new cluster resource.\n","type":"string"},"eniSubnetId":{"description":"- (Optional, String, ForceNew) Specifies the ENI subnet ID. Specified when creating a CCE Turbo cluster. Changing this parameter will create a new cluster resource.\n","type":"string"},"extendParam":{"additionalProperties":{"type":"string"},"description":"Extended parameter. Changing this parameter will create a new cluster resource.\n[List of cluster extended params.](https://docs.otc.t-systems.com/cloud-container-engine/api-ref/apis/cluster_management/creating_a_cluster.html#cce-02-0236-table17575013586)\n","type":"object"},"flavorId":{"description":"Cluster specifications. Changing this parameter will create a new cluster resource.\n* `cce.s1.small` - small-scale single cluster (up to 50 nodes).\n* `cce.s1.medium` - medium-scale single cluster (up to 200 nodes).\n* `cce.s2.small` - small-scale HA cluster (up to 50 nodes).\n* `cce.s2.medium` - medium-scale HA cluster (up to 200 nodes).\n* `cce.s2.large` - large-scale HA cluster (up to 1000 nodes).\n* `cce.s2.xlarge` - ultra-large-scale, high availability cluster (<= 2,000 nodes).\n","type":"string"},"highwaySubnetId":{"description":"The ID of the high speed network used to create bare metal nodes. Changing this parameter will create a new cluster resource.\n","type":"string"},"ignoreAddons":{"description":"Skip all cluster addons operations.\n","type":"boolean"},"ignoreCertificateClustersData":{"description":"Skip sensitive cluster data.\n","type":"boolean"},"ignoreCertificateUsersData":{"description":"Skip sensitive user data.\n","type":"boolean"},"ipv6Enable":{"description":"Specifies whether the cluster supports IPv6 addresses. This field is supported in clusters of v1.25 and later versions. Default: <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. If <span pulumi-lang-nodejs=\"`ipv6Enable`\" pulumi-lang-dotnet=\"`Ipv6Enable`\" pulumi-lang-go=\"`ipv6Enable`\" pulumi-lang-python=\"`ipv6_enable`\" pulumi-lang-yaml=\"`ipv6Enable`\" pulumi-lang-java=\"`ipv6Enable`\">`ipv6_enable`</span> is true, subnet should have ipv6 enabled and <span pulumi-lang-nodejs=\"`kubeProxyMode`\" pulumi-lang-dotnet=\"`KubeProxyMode`\" pulumi-lang-go=\"`kubeProxyMode`\" pulumi-lang-python=\"`kube_proxy_mode`\" pulumi-lang-yaml=\"`kubeProxyMode`\" pulumi-lang-java=\"`kubeProxyMode`\">`kube_proxy_mode`</span> value can only be <span pulumi-lang-nodejs=\"`ipvs`\" pulumi-lang-dotnet=\"`Ipvs`\" pulumi-lang-go=\"`ipvs`\" pulumi-lang-python=\"`ipvs`\" pulumi-lang-yaml=\"`ipvs`\" pulumi-lang-java=\"`ipvs`\">`ipvs`</span>.\n","type":"boolean"},"kubeProxyMode":{"description":"Service forwarding mode. Two modes are available:\n","type":"string"},"kubernetesSvcIpRange":{"description":"Service CIDR block, or the IP address range which the kubernetes\nclusterIp must fall within. This parameter is available only for clusters of v1.11.7 and later.\n","type":"string"},"labels":{"additionalProperties":{"type":"string"},"description":"Cluster tag, key/value pair format. Changing this parameter will create a new cluster resource.\n","type":"object"},"masters":{"description":"Specifies the advanced configuration of master nodes.\nThe object structure is documented below.\nThis parameter and <span pulumi-lang-nodejs=\"`multiAz`\" pulumi-lang-dotnet=\"`MultiAz`\" pulumi-lang-go=\"`multiAz`\" pulumi-lang-python=\"`multi_az`\" pulumi-lang-yaml=\"`multiAz`\" pulumi-lang-java=\"`multiAz`\">`multi_az`</span> are alternative. Changing this parameter will create a new cluster resource.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCceClusterV3Master:CceClusterV3Master"},"type":"array"},"multiAz":{"description":"Enable multiple AZs for the cluster, only when using HA flavors. Changing this parameter will create a new cluster resource.\nThis parameter and <span pulumi-lang-nodejs=\"`masters`\" pulumi-lang-dotnet=\"`Masters`\" pulumi-lang-go=\"`masters`\" pulumi-lang-python=\"`masters`\" pulumi-lang-yaml=\"`masters`\" pulumi-lang-java=\"`masters`\">`masters`</span> are alternative.\n","type":"boolean"},"name":{"description":"Specifies the component name.\n","type":"string"},"noAddons":{"description":"Remove addons installed by the default after the cluster creation.\n","type":"boolean"},"region":{"type":"string"},"securityGroupId":{"description":"Default worker node security group ID of the cluster. If specified, the cluster will be bound to the target security group.\nOtherwise, the system will automatically create a default worker node security group for you.\nThe default worker node security group needs to allow access from certain ports to ensure normal communications.\nChanging this parameter will create a new cluster resource.\n","type":"string"},"subnetId":{"description":"The Network ID of the subnet used to create the node. Changing this parameter will create a new cluster resource.\n","type":"string"},"supportIstio":{"description":"Whether Istio is supported in the cluster.\n","type":"boolean"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCceClusterV3Timeouts:CceClusterV3Timeouts"},"timezone":{"description":"Cluster timezone in string format. Changing this parameter will create a new cluster resource.\n","type":"string"},"vpcId":{"description":"The ID of the VPC used to create the node. Changing this parameter will create a new cluster resource.\n","type":"string"}},"properties":{"annotations":{"additionalProperties":{"type":"string"},"description":"Cluster annotation, key/value pair format. Changing this parameter will create a new cluster resource.\n","type":"object"},"apiAccessTrustlists":{"description":"Specifies the trustlist of network CIDRs that are allowed to access cluster APIs. Specified when creating a CCE cluster.\nChanging this parameter will create a new cluster resource.\n","items":{"type":"string"},"type":"array"},"authenticatingProxy":{"$ref":"#/types/opentelekomcloud:index%2FCceClusterV3AuthenticatingProxy:CceClusterV3AuthenticatingProxy","description":"Authenticating proxy configuration. Required if <span pulumi-lang-nodejs=\"`authenticationMode`\" pulumi-lang-dotnet=\"`AuthenticationMode`\" pulumi-lang-go=\"`authenticationMode`\" pulumi-lang-python=\"`authentication_mode`\" pulumi-lang-yaml=\"`authenticationMode`\" pulumi-lang-java=\"`authenticationMode`\">`authentication_mode`</span> is set to <span pulumi-lang-nodejs=\"`authenticatingProxy`\" pulumi-lang-dotnet=\"`AuthenticatingProxy`\" pulumi-lang-go=\"`authenticatingProxy`\" pulumi-lang-python=\"`authenticating_proxy`\" pulumi-lang-yaml=\"`authenticatingProxy`\" pulumi-lang-java=\"`authenticatingProxy`\">`authenticating_proxy`</span>.\n"},"authenticatingProxyCa":{"deprecationMessage":"Deprecated","description":"CA root certificate provided in the <span pulumi-lang-nodejs=\"`authenticatingProxy`\" pulumi-lang-dotnet=\"`AuthenticatingProxy`\" pulumi-lang-go=\"`authenticatingProxy`\" pulumi-lang-python=\"`authenticating_proxy`\" pulumi-lang-yaml=\"`authenticatingProxy`\" pulumi-lang-java=\"`authenticatingProxy`\">`authenticating_proxy`</span> mode.\nDeprecated, use <span pulumi-lang-nodejs=\"`authenticatingProxy`\" pulumi-lang-dotnet=\"`AuthenticatingProxy`\" pulumi-lang-go=\"`authenticatingProxy`\" pulumi-lang-python=\"`authenticating_proxy`\" pulumi-lang-yaml=\"`authenticatingProxy`\" pulumi-lang-java=\"`authenticatingProxy`\">`authenticating_proxy`</span> instead.\n","type":"string"},"authenticationMode":{"description":"Cluster authentication mode.\n* Clusters of Kubernetes v1.11 and earlier\nPossible values: <span pulumi-lang-nodejs=\"`x509`\" pulumi-lang-dotnet=\"`X509`\" pulumi-lang-go=\"`x509`\" pulumi-lang-python=\"`x509`\" pulumi-lang-yaml=\"`x509`\" pulumi-lang-java=\"`x509`\">`x509`</span>, <span pulumi-lang-nodejs=\"`rbac`\" pulumi-lang-dotnet=\"`Rbac`\" pulumi-lang-go=\"`rbac`\" pulumi-lang-python=\"`rbac`\" pulumi-lang-yaml=\"`rbac`\" pulumi-lang-java=\"`rbac`\">`rbac`</span>, and <span pulumi-lang-nodejs=\"`authenticatingProxy`\" pulumi-lang-dotnet=\"`AuthenticatingProxy`\" pulumi-lang-go=\"`authenticatingProxy`\" pulumi-lang-python=\"`authenticating_proxy`\" pulumi-lang-yaml=\"`authenticatingProxy`\" pulumi-lang-java=\"`authenticatingProxy`\">`authenticating_proxy`</span>\n* Clusters of Kubernetes v1.13 and later\nPossible values: <span pulumi-lang-nodejs=\"`rbac`\" pulumi-lang-dotnet=\"`Rbac`\" pulumi-lang-go=\"`rbac`\" pulumi-lang-python=\"`rbac`\" pulumi-lang-yaml=\"`rbac`\" pulumi-lang-java=\"`rbac`\">`rbac`</span> and <span pulumi-lang-nodejs=\"`authenticatingProxy`\" pulumi-lang-dotnet=\"`AuthenticatingProxy`\" pulumi-lang-go=\"`authenticatingProxy`\" pulumi-lang-python=\"`authenticating_proxy`\" pulumi-lang-yaml=\"`authenticatingProxy`\" pulumi-lang-java=\"`authenticatingProxy`\">`authenticating_proxy`</span>\n\nDefault value: <span pulumi-lang-nodejs=\"`rbac`\" pulumi-lang-dotnet=\"`Rbac`\" pulumi-lang-go=\"`rbac`\" pulumi-lang-python=\"`rbac`\" pulumi-lang-yaml=\"`rbac`\" pulumi-lang-java=\"`rbac`\">`rbac`</span>\nChanging this parameter will create a new cluster resource.\n","type":"string"},"billingMode":{"description":"Charging mode of the cluster, which is 0 (on demand). Changing this parameter will create a new cluster resource.\n","type":"number"},"cceClusterV3Id":{"description":"ID of the cluster resource.\n","type":"string"},"certificateClusters":{"items":{"$ref":"#/types/opentelekomcloud:index%2FCceClusterV3CertificateCluster:CceClusterV3CertificateCluster"},"type":"array"},"certificateUsers":{"items":{"$ref":"#/types/opentelekomcloud:index%2FCceClusterV3CertificateUser:CceClusterV3CertificateUser"},"type":"array"},"clusterType":{"description":"Cluster Type, possible values are `VirtualMachine` and `BareMetal`. Changing this parameter will create a new cluster resource.\n","type":"string"},"clusterVersion":{"description":"For the cluster version, possible values are `v1.29`, `v1.28`, `v1.27`, `v1.25`.\nIf this parameter is not set, the cluster of the latest version is created by default.\nChanging this parameter will create a new cluster resource. [OTC-API](https://docs.otc.t-systems.com/en-us/api2/cce/cce_02_0236.html)\n","type":"string"},"componentConfigurations":{"description":"Specifies the kubernetes component configurations.\nFor details, see [documentation](https://docs.otc.t-systems.com/cloud-container-engine/umn/clusters/managing_clusters/modifying_cluster_configurations.html#cce-10-0213).\nThe object structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCceClusterV3ComponentConfiguration:CceClusterV3ComponentConfiguration"},"type":"array"},"containerNetworkCidr":{"description":"Container network segment. Changing this parameter will create a new cluster resource.\n","type":"string"},"containerNetworkType":{"description":"Container network type.\n","type":"string"},"customSans":{"description":"Specifies the custom san to add to certificate (array of string).\n","items":{"type":"string"},"type":"array"},"deleteAllNetwork":{"description":"Specified whether to delete all associated network resources when deleting the CCE\ncluster. valid values are **true**, **try** and **false**. Default is **false**.\n\n<a name=<span pulumi-lang-nodejs=\"\"cceClusterMasters\"\" pulumi-lang-dotnet=\"\"CceClusterMasters\"\" pulumi-lang-go=\"\"cceClusterMasters\"\" pulumi-lang-python=\"\"cce_cluster_masters\"\" pulumi-lang-yaml=\"\"cceClusterMasters\"\" pulumi-lang-java=\"\"cceClusterMasters\"\">\"cce_cluster_masters\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`masters`\" pulumi-lang-dotnet=\"`Masters`\" pulumi-lang-go=\"`masters`\" pulumi-lang-python=\"`masters`\" pulumi-lang-yaml=\"`masters`\" pulumi-lang-java=\"`masters`\">`masters`</span> block supports:\n","type":"string"},"deleteAllStorage":{"description":"Specified whether to delete all associated storage resources when deleting the CCE\ncluster. valid values are **true**, **try** and **false**. Default is **false**.\n","type":"string"},"deleteEfs":{"description":"Specified whether to unbind associated SFS Turbo file systems when deleting the CCE\ncluster. valid values are **true**, **try** and **false**. Default is **false**.\n","type":"string"},"deleteEni":{"description":"Specified whether to delete ENI ports when deleting the CCE\ncluster. valid values are **true**, **try** and **false**. Default is **false**.\n","type":"string"},"deleteEvs":{"description":"Specified whether to delete associated EVS disks when deleting the CCE cluster.\nvalid values are **true**, **try** and **false**. Default is **false**.\n","type":"string"},"deleteNet":{"description":"Specified whether to delete cluster Service/ingress-related resources, such as ELB when deleting the CCE\ncluster. valid values are **true**, **try** and **false**. Default is **false**.\n","type":"string"},"deleteObs":{"description":"Specified whether to delete associated OBS buckets when deleting the CCE cluster.\nvalid values are **true**, **try** and **false**. Default is **false**.\n","type":"string"},"deleteSfs":{"description":"Specified whether to delete associated SFS file systems when deleting the CCE\ncluster. valid values are **true**, **try** and **false**. Default is **false**.\n","type":"string"},"description":{"description":"Cluster description.\n","type":"string"},"eip":{"description":"EIP address of the cluster.\n","type":"string"},"enableDeletionProtection":{"description":"Enable cluster deletion protection. Only effective during cluster creation. Changing this parameter will create a new cluster resource.\n","type":"boolean"},"enableVolumeEncryption":{"description":"System and data disks encryption of master nodes. Changing this parameter will create a new cluster resource.\n","type":"boolean"},"eniSubnetCidr":{"description":"Specifies the ENI network segment. Specified when creating a CCE Turbo cluster. Changing this parameter will create a new cluster resource.\n","type":"string"},"eniSubnetId":{"description":"- (Optional, String, ForceNew) Specifies the ENI subnet ID. Specified when creating a CCE Turbo cluster. Changing this parameter will create a new cluster resource.\n","type":"string"},"extendParam":{"additionalProperties":{"type":"string"},"description":"Extended parameter. Changing this parameter will create a new cluster resource.\n[List of cluster extended params.](https://docs.otc.t-systems.com/cloud-container-engine/api-ref/apis/cluster_management/creating_a_cluster.html#cce-02-0236-table17575013586)\n","type":"object"},"external":{"description":"The external network address.\n","type":"string"},"externalOtc":{"description":"The endpoint of the cluster to be accessed through API Gateway.\n","type":"string"},"flavorId":{"description":"Cluster specifications. Changing this parameter will create a new cluster resource.\n* `cce.s1.small` - small-scale single cluster (up to 50 nodes).\n* `cce.s1.medium` - medium-scale single cluster (up to 200 nodes).\n* `cce.s2.small` - small-scale HA cluster (up to 50 nodes).\n* `cce.s2.medium` - medium-scale HA cluster (up to 200 nodes).\n* `cce.s2.large` - large-scale HA cluster (up to 1000 nodes).\n* `cce.s2.xlarge` - ultra-large-scale, high availability cluster (<= 2,000 nodes).\n","type":"string"},"highwaySubnetId":{"description":"The ID of the high speed network used to create bare metal nodes. Changing this parameter will create a new cluster resource.\n","type":"string"},"ignoreAddons":{"description":"Skip all cluster addons operations.\n","type":"boolean"},"ignoreCertificateClustersData":{"description":"Skip sensitive cluster data.\n","type":"boolean"},"ignoreCertificateUsersData":{"description":"Skip sensitive user data.\n","type":"boolean"},"installedAddons":{"description":"List of installed addon IDs. Empty if <span pulumi-lang-nodejs=\"`ignoreAddons`\" pulumi-lang-dotnet=\"`IgnoreAddons`\" pulumi-lang-go=\"`ignoreAddons`\" pulumi-lang-python=\"`ignore_addons`\" pulumi-lang-yaml=\"`ignoreAddons`\" pulumi-lang-java=\"`ignoreAddons`\">`ignore_addons`</span> is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","items":{"type":"string"},"type":"array"},"internal":{"description":"The internal network address.\n","type":"string"},"ipv6Enable":{"description":"Specifies whether the cluster supports IPv6 addresses. This field is supported in clusters of v1.25 and later versions. Default: <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. If <span pulumi-lang-nodejs=\"`ipv6Enable`\" pulumi-lang-dotnet=\"`Ipv6Enable`\" pulumi-lang-go=\"`ipv6Enable`\" pulumi-lang-python=\"`ipv6_enable`\" pulumi-lang-yaml=\"`ipv6Enable`\" pulumi-lang-java=\"`ipv6Enable`\">`ipv6_enable`</span> is true, subnet should have ipv6 enabled and <span pulumi-lang-nodejs=\"`kubeProxyMode`\" pulumi-lang-dotnet=\"`KubeProxyMode`\" pulumi-lang-go=\"`kubeProxyMode`\" pulumi-lang-python=\"`kube_proxy_mode`\" pulumi-lang-yaml=\"`kubeProxyMode`\" pulumi-lang-java=\"`kubeProxyMode`\">`kube_proxy_mode`</span> value can only be <span pulumi-lang-nodejs=\"`ipvs`\" pulumi-lang-dotnet=\"`Ipvs`\" pulumi-lang-go=\"`ipvs`\" pulumi-lang-python=\"`ipvs`\" pulumi-lang-yaml=\"`ipvs`\" pulumi-lang-java=\"`ipvs`\">`ipvs`</span>.\n","type":"boolean"},"kubeProxyMode":{"description":"Service forwarding mode. Two modes are available:\n","type":"string"},"kubernetesSvcIpRange":{"description":"Service CIDR block, or the IP address range which the kubernetes\nclusterIp must fall within. This parameter is available only for clusters of v1.11.7 and later.\n","type":"string"},"labels":{"additionalProperties":{"type":"string"},"description":"Cluster tag, key/value pair format. Changing this parameter will create a new cluster resource.\n","type":"object"},"masters":{"description":"Specifies the advanced configuration of master nodes.\nThe object structure is documented below.\nThis parameter and <span pulumi-lang-nodejs=\"`multiAz`\" pulumi-lang-dotnet=\"`MultiAz`\" pulumi-lang-go=\"`multiAz`\" pulumi-lang-python=\"`multi_az`\" pulumi-lang-yaml=\"`multiAz`\" pulumi-lang-java=\"`multiAz`\">`multi_az`</span> are alternative. Changing this parameter will create a new cluster resource.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCceClusterV3Master:CceClusterV3Master"},"type":"array"},"multiAz":{"description":"Enable multiple AZs for the cluster, only when using HA flavors. Changing this parameter will create a new cluster resource.\nThis parameter and <span pulumi-lang-nodejs=\"`masters`\" pulumi-lang-dotnet=\"`Masters`\" pulumi-lang-go=\"`masters`\" pulumi-lang-python=\"`masters`\" pulumi-lang-yaml=\"`masters`\" pulumi-lang-java=\"`masters`\">`masters`</span> are alternative.\n","type":"boolean"},"name":{"description":"Specifies the component name.\n","type":"string"},"noAddons":{"description":"Remove addons installed by the default after the cluster creation.\n","type":"boolean"},"region":{"type":"string"},"securityGroupControl":{"description":"ID of the autogenerated security group for the CCE master port.\n","type":"string"},"securityGroupId":{"description":"Default worker node security group ID of the cluster. If specified, the cluster will be bound to the target security group.\nOtherwise, the system will automatically create a default worker node security group for you.\nThe default worker node security group needs to allow access from certain ports to ensure normal communications.\nChanging this parameter will create a new cluster resource.\n","type":"string"},"securityGroupNode":{"description":"ID of the autogenerated security group for the CCE nodes.\n","type":"string"},"status":{"description":"Cluster status information.\n","type":"string"},"subnetId":{"description":"The Network ID of the subnet used to create the node. Changing this parameter will create a new cluster resource.\n","type":"string"},"supportIstio":{"description":"Whether Istio is supported in the cluster.\n","type":"boolean"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCceClusterV3Timeouts:CceClusterV3Timeouts"},"timezone":{"description":"Cluster timezone in string format. Changing this parameter will create a new cluster resource.\n","type":"string"},"vpcId":{"description":"The ID of the VPC used to create the node. Changing this parameter will create a new cluster resource.\n","type":"string"}},"required":["billingMode","cceClusterV3Id","certificateClusters","certificateUsers","clusterType","clusterVersion","containerNetworkCidr","containerNetworkType","customSans","description","enableVolumeEncryption","eniSubnetCidr","eniSubnetId","external","externalOtc","flavorId","highwaySubnetId","installedAddons","internal","kubeProxyMode","kubernetesSvcIpRange","name","region","securityGroupControl","securityGroupId","securityGroupNode","status","subnetId","supportIstio","timezone","vpcId"],"requiredInputs":["clusterType","containerNetworkType","flavorId","subnetId","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering CceClusterV3 resources.\n","properties":{"annotations":{"additionalProperties":{"type":"string"},"description":"Cluster annotation, key/value pair format. Changing this parameter will create a new cluster resource.\n","type":"object"},"apiAccessTrustlists":{"description":"Specifies the trustlist of network CIDRs that are allowed to access cluster APIs. Specified when creating a CCE cluster.\nChanging this parameter will create a new cluster resource.\n","items":{"type":"string"},"type":"array"},"authenticatingProxy":{"$ref":"#/types/opentelekomcloud:index%2FCceClusterV3AuthenticatingProxy:CceClusterV3AuthenticatingProxy","description":"Authenticating proxy configuration. Required if <span pulumi-lang-nodejs=\"`authenticationMode`\" pulumi-lang-dotnet=\"`AuthenticationMode`\" pulumi-lang-go=\"`authenticationMode`\" pulumi-lang-python=\"`authentication_mode`\" pulumi-lang-yaml=\"`authenticationMode`\" pulumi-lang-java=\"`authenticationMode`\">`authentication_mode`</span> is set to <span pulumi-lang-nodejs=\"`authenticatingProxy`\" pulumi-lang-dotnet=\"`AuthenticatingProxy`\" pulumi-lang-go=\"`authenticatingProxy`\" pulumi-lang-python=\"`authenticating_proxy`\" pulumi-lang-yaml=\"`authenticatingProxy`\" pulumi-lang-java=\"`authenticatingProxy`\">`authenticating_proxy`</span>.\n"},"authenticatingProxyCa":{"deprecationMessage":"Deprecated","description":"CA root certificate provided in the <span pulumi-lang-nodejs=\"`authenticatingProxy`\" pulumi-lang-dotnet=\"`AuthenticatingProxy`\" pulumi-lang-go=\"`authenticatingProxy`\" pulumi-lang-python=\"`authenticating_proxy`\" pulumi-lang-yaml=\"`authenticatingProxy`\" pulumi-lang-java=\"`authenticatingProxy`\">`authenticating_proxy`</span> mode.\nDeprecated, use <span pulumi-lang-nodejs=\"`authenticatingProxy`\" pulumi-lang-dotnet=\"`AuthenticatingProxy`\" pulumi-lang-go=\"`authenticatingProxy`\" pulumi-lang-python=\"`authenticating_proxy`\" pulumi-lang-yaml=\"`authenticatingProxy`\" pulumi-lang-java=\"`authenticatingProxy`\">`authenticating_proxy`</span> instead.\n","type":"string"},"authenticationMode":{"description":"Cluster authentication mode.\n* Clusters of Kubernetes v1.11 and earlier\nPossible values: <span pulumi-lang-nodejs=\"`x509`\" pulumi-lang-dotnet=\"`X509`\" pulumi-lang-go=\"`x509`\" pulumi-lang-python=\"`x509`\" pulumi-lang-yaml=\"`x509`\" pulumi-lang-java=\"`x509`\">`x509`</span>, <span pulumi-lang-nodejs=\"`rbac`\" pulumi-lang-dotnet=\"`Rbac`\" pulumi-lang-go=\"`rbac`\" pulumi-lang-python=\"`rbac`\" pulumi-lang-yaml=\"`rbac`\" pulumi-lang-java=\"`rbac`\">`rbac`</span>, and <span pulumi-lang-nodejs=\"`authenticatingProxy`\" pulumi-lang-dotnet=\"`AuthenticatingProxy`\" pulumi-lang-go=\"`authenticatingProxy`\" pulumi-lang-python=\"`authenticating_proxy`\" pulumi-lang-yaml=\"`authenticatingProxy`\" pulumi-lang-java=\"`authenticatingProxy`\">`authenticating_proxy`</span>\n* Clusters of Kubernetes v1.13 and later\nPossible values: <span pulumi-lang-nodejs=\"`rbac`\" pulumi-lang-dotnet=\"`Rbac`\" pulumi-lang-go=\"`rbac`\" pulumi-lang-python=\"`rbac`\" pulumi-lang-yaml=\"`rbac`\" pulumi-lang-java=\"`rbac`\">`rbac`</span> and <span pulumi-lang-nodejs=\"`authenticatingProxy`\" pulumi-lang-dotnet=\"`AuthenticatingProxy`\" pulumi-lang-go=\"`authenticatingProxy`\" pulumi-lang-python=\"`authenticating_proxy`\" pulumi-lang-yaml=\"`authenticatingProxy`\" pulumi-lang-java=\"`authenticatingProxy`\">`authenticating_proxy`</span>\n\nDefault value: <span pulumi-lang-nodejs=\"`rbac`\" pulumi-lang-dotnet=\"`Rbac`\" pulumi-lang-go=\"`rbac`\" pulumi-lang-python=\"`rbac`\" pulumi-lang-yaml=\"`rbac`\" pulumi-lang-java=\"`rbac`\">`rbac`</span>\nChanging this parameter will create a new cluster resource.\n","type":"string"},"billingMode":{"description":"Charging mode of the cluster, which is 0 (on demand). Changing this parameter will create a new cluster resource.\n","type":"number"},"cceClusterV3Id":{"description":"ID of the cluster resource.\n","type":"string"},"certificateClusters":{"items":{"$ref":"#/types/opentelekomcloud:index%2FCceClusterV3CertificateCluster:CceClusterV3CertificateCluster"},"type":"array"},"certificateUsers":{"items":{"$ref":"#/types/opentelekomcloud:index%2FCceClusterV3CertificateUser:CceClusterV3CertificateUser"},"type":"array"},"clusterType":{"description":"Cluster Type, possible values are `VirtualMachine` and `BareMetal`. Changing this parameter will create a new cluster resource.\n","type":"string"},"clusterVersion":{"description":"For the cluster version, possible values are `v1.29`, `v1.28`, `v1.27`, `v1.25`.\nIf this parameter is not set, the cluster of the latest version is created by default.\nChanging this parameter will create a new cluster resource. [OTC-API](https://docs.otc.t-systems.com/en-us/api2/cce/cce_02_0236.html)\n","type":"string"},"componentConfigurations":{"description":"Specifies the kubernetes component configurations.\nFor details, see [documentation](https://docs.otc.t-systems.com/cloud-container-engine/umn/clusters/managing_clusters/modifying_cluster_configurations.html#cce-10-0213).\nThe object structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCceClusterV3ComponentConfiguration:CceClusterV3ComponentConfiguration"},"type":"array"},"containerNetworkCidr":{"description":"Container network segment. Changing this parameter will create a new cluster resource.\n","type":"string"},"containerNetworkType":{"description":"Container network type.\n","type":"string"},"customSans":{"description":"Specifies the custom san to add to certificate (array of string).\n","items":{"type":"string"},"type":"array"},"deleteAllNetwork":{"description":"Specified whether to delete all associated network resources when deleting the CCE\ncluster. valid values are **true**, **try** and **false**. Default is **false**.\n\n<a name=<span pulumi-lang-nodejs=\"\"cceClusterMasters\"\" pulumi-lang-dotnet=\"\"CceClusterMasters\"\" pulumi-lang-go=\"\"cceClusterMasters\"\" pulumi-lang-python=\"\"cce_cluster_masters\"\" pulumi-lang-yaml=\"\"cceClusterMasters\"\" pulumi-lang-java=\"\"cceClusterMasters\"\">\"cce_cluster_masters\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`masters`\" pulumi-lang-dotnet=\"`Masters`\" pulumi-lang-go=\"`masters`\" pulumi-lang-python=\"`masters`\" pulumi-lang-yaml=\"`masters`\" pulumi-lang-java=\"`masters`\">`masters`</span> block supports:\n","type":"string"},"deleteAllStorage":{"description":"Specified whether to delete all associated storage resources when deleting the CCE\ncluster. valid values are **true**, **try** and **false**. Default is **false**.\n","type":"string"},"deleteEfs":{"description":"Specified whether to unbind associated SFS Turbo file systems when deleting the CCE\ncluster. valid values are **true**, **try** and **false**. Default is **false**.\n","type":"string"},"deleteEni":{"description":"Specified whether to delete ENI ports when deleting the CCE\ncluster. valid values are **true**, **try** and **false**. Default is **false**.\n","type":"string"},"deleteEvs":{"description":"Specified whether to delete associated EVS disks when deleting the CCE cluster.\nvalid values are **true**, **try** and **false**. Default is **false**.\n","type":"string"},"deleteNet":{"description":"Specified whether to delete cluster Service/ingress-related resources, such as ELB when deleting the CCE\ncluster. valid values are **true**, **try** and **false**. Default is **false**.\n","type":"string"},"deleteObs":{"description":"Specified whether to delete associated OBS buckets when deleting the CCE cluster.\nvalid values are **true**, **try** and **false**. Default is **false**.\n","type":"string"},"deleteSfs":{"description":"Specified whether to delete associated SFS file systems when deleting the CCE\ncluster. valid values are **true**, **try** and **false**. Default is **false**.\n","type":"string"},"description":{"description":"Cluster description.\n","type":"string"},"eip":{"description":"EIP address of the cluster.\n","type":"string"},"enableDeletionProtection":{"description":"Enable cluster deletion protection. Only effective during cluster creation. Changing this parameter will create a new cluster resource.\n","type":"boolean"},"enableVolumeEncryption":{"description":"System and data disks encryption of master nodes. Changing this parameter will create a new cluster resource.\n","type":"boolean"},"eniSubnetCidr":{"description":"Specifies the ENI network segment. Specified when creating a CCE Turbo cluster. Changing this parameter will create a new cluster resource.\n","type":"string"},"eniSubnetId":{"description":"- (Optional, String, ForceNew) Specifies the ENI subnet ID. Specified when creating a CCE Turbo cluster. Changing this parameter will create a new cluster resource.\n","type":"string"},"extendParam":{"additionalProperties":{"type":"string"},"description":"Extended parameter. Changing this parameter will create a new cluster resource.\n[List of cluster extended params.](https://docs.otc.t-systems.com/cloud-container-engine/api-ref/apis/cluster_management/creating_a_cluster.html#cce-02-0236-table17575013586)\n","type":"object"},"external":{"description":"The external network address.\n","type":"string"},"externalOtc":{"description":"The endpoint of the cluster to be accessed through API Gateway.\n","type":"string"},"flavorId":{"description":"Cluster specifications. Changing this parameter will create a new cluster resource.\n* `cce.s1.small` - small-scale single cluster (up to 50 nodes).\n* `cce.s1.medium` - medium-scale single cluster (up to 200 nodes).\n* `cce.s2.small` - small-scale HA cluster (up to 50 nodes).\n* `cce.s2.medium` - medium-scale HA cluster (up to 200 nodes).\n* `cce.s2.large` - large-scale HA cluster (up to 1000 nodes).\n* `cce.s2.xlarge` - ultra-large-scale, high availability cluster (<= 2,000 nodes).\n","type":"string"},"highwaySubnetId":{"description":"The ID of the high speed network used to create bare metal nodes. Changing this parameter will create a new cluster resource.\n","type":"string"},"ignoreAddons":{"description":"Skip all cluster addons operations.\n","type":"boolean"},"ignoreCertificateClustersData":{"description":"Skip sensitive cluster data.\n","type":"boolean"},"ignoreCertificateUsersData":{"description":"Skip sensitive user data.\n","type":"boolean"},"installedAddons":{"description":"List of installed addon IDs. Empty if <span pulumi-lang-nodejs=\"`ignoreAddons`\" pulumi-lang-dotnet=\"`IgnoreAddons`\" pulumi-lang-go=\"`ignoreAddons`\" pulumi-lang-python=\"`ignore_addons`\" pulumi-lang-yaml=\"`ignoreAddons`\" pulumi-lang-java=\"`ignoreAddons`\">`ignore_addons`</span> is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","items":{"type":"string"},"type":"array"},"internal":{"description":"The internal network address.\n","type":"string"},"ipv6Enable":{"description":"Specifies whether the cluster supports IPv6 addresses. This field is supported in clusters of v1.25 and later versions. Default: <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. If <span pulumi-lang-nodejs=\"`ipv6Enable`\" pulumi-lang-dotnet=\"`Ipv6Enable`\" pulumi-lang-go=\"`ipv6Enable`\" pulumi-lang-python=\"`ipv6_enable`\" pulumi-lang-yaml=\"`ipv6Enable`\" pulumi-lang-java=\"`ipv6Enable`\">`ipv6_enable`</span> is true, subnet should have ipv6 enabled and <span pulumi-lang-nodejs=\"`kubeProxyMode`\" pulumi-lang-dotnet=\"`KubeProxyMode`\" pulumi-lang-go=\"`kubeProxyMode`\" pulumi-lang-python=\"`kube_proxy_mode`\" pulumi-lang-yaml=\"`kubeProxyMode`\" pulumi-lang-java=\"`kubeProxyMode`\">`kube_proxy_mode`</span> value can only be <span pulumi-lang-nodejs=\"`ipvs`\" pulumi-lang-dotnet=\"`Ipvs`\" pulumi-lang-go=\"`ipvs`\" pulumi-lang-python=\"`ipvs`\" pulumi-lang-yaml=\"`ipvs`\" pulumi-lang-java=\"`ipvs`\">`ipvs`</span>.\n","type":"boolean"},"kubeProxyMode":{"description":"Service forwarding mode. Two modes are available:\n","type":"string"},"kubernetesSvcIpRange":{"description":"Service CIDR block, or the IP address range which the kubernetes\nclusterIp must fall within. This parameter is available only for clusters of v1.11.7 and later.\n","type":"string"},"labels":{"additionalProperties":{"type":"string"},"description":"Cluster tag, key/value pair format. Changing this parameter will create a new cluster resource.\n","type":"object"},"masters":{"description":"Specifies the advanced configuration of master nodes.\nThe object structure is documented below.\nThis parameter and <span pulumi-lang-nodejs=\"`multiAz`\" pulumi-lang-dotnet=\"`MultiAz`\" pulumi-lang-go=\"`multiAz`\" pulumi-lang-python=\"`multi_az`\" pulumi-lang-yaml=\"`multiAz`\" pulumi-lang-java=\"`multiAz`\">`multi_az`</span> are alternative. Changing this parameter will create a new cluster resource.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCceClusterV3Master:CceClusterV3Master"},"type":"array"},"multiAz":{"description":"Enable multiple AZs for the cluster, only when using HA flavors. Changing this parameter will create a new cluster resource.\nThis parameter and <span pulumi-lang-nodejs=\"`masters`\" pulumi-lang-dotnet=\"`Masters`\" pulumi-lang-go=\"`masters`\" pulumi-lang-python=\"`masters`\" pulumi-lang-yaml=\"`masters`\" pulumi-lang-java=\"`masters`\">`masters`</span> are alternative.\n","type":"boolean"},"name":{"description":"Specifies the component name.\n","type":"string"},"noAddons":{"description":"Remove addons installed by the default after the cluster creation.\n","type":"boolean"},"region":{"type":"string"},"securityGroupControl":{"description":"ID of the autogenerated security group for the CCE master port.\n","type":"string"},"securityGroupId":{"description":"Default worker node security group ID of the cluster. If specified, the cluster will be bound to the target security group.\nOtherwise, the system will automatically create a default worker node security group for you.\nThe default worker node security group needs to allow access from certain ports to ensure normal communications.\nChanging this parameter will create a new cluster resource.\n","type":"string"},"securityGroupNode":{"description":"ID of the autogenerated security group for the CCE nodes.\n","type":"string"},"status":{"description":"Cluster status information.\n","type":"string"},"subnetId":{"description":"The Network ID of the subnet used to create the node. Changing this parameter will create a new cluster resource.\n","type":"string"},"supportIstio":{"description":"Whether Istio is supported in the cluster.\n","type":"boolean"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCceClusterV3Timeouts:CceClusterV3Timeouts"},"timezone":{"description":"Cluster timezone in string format. Changing this parameter will create a new cluster resource.\n","type":"string"},"vpcId":{"description":"The ID of the VPC used to create the node. Changing this parameter will create a new cluster resource.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cceNodeAttachV3:CceNodeAttachV3":{"description":"Up-to-date reference of API arguments for CCE cluster node you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-container-engine/api-ref/apis/cluster_management)\n\nAdd a node from an existing ECS server to a CCE cluster.\n\n> **Note:** When using the <span pulumi-lang-nodejs=\"`opentelekomcloud.CceNodeAttachV3`\" pulumi-lang-dotnet=\"`opentelekomcloud.CceNodeAttachV3`\" pulumi-lang-go=\"`CceNodeAttachV3`\" pulumi-lang-python=\"`CceNodeAttachV3`\" pulumi-lang-yaml=\"`opentelekomcloud.CceNodeAttachV3`\" pulumi-lang-java=\"`opentelekomcloud.CceNodeAttachV3`\">`opentelekomcloud.CceNodeAttachV3`</span> resource with<span pulumi-lang-nodejs=\" serverId \" pulumi-lang-dotnet=\" ServerId \" pulumi-lang-go=\" serverId \" pulumi-lang-python=\" server_id \" pulumi-lang-yaml=\" serverId \" pulumi-lang-java=\" serverId \"> server_id </span>dependent resource, the following\nattributes should be included in lifecycle.ignore_changes: <span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span>, <span pulumi-lang-nodejs=\"`imageId`\" pulumi-lang-dotnet=\"`ImageId`\" pulumi-lang-go=\"`imageId`\" pulumi-lang-python=\"`image_id`\" pulumi-lang-yaml=\"`imageId`\" pulumi-lang-java=\"`imageId`\">`image_id`</span>, <span pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\">`password`</span>, <span pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\">`key_name`</span>, <span pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\">`tags`</span>, and <span pulumi-lang-nodejs=\"`nics`\" pulumi-lang-dotnet=\"`Nics`\" pulumi-lang-go=\"`nics`\" pulumi-lang-python=\"`nics`\" pulumi-lang-yaml=\"`nics`\" pulumi-lang-java=\"`nics`\">`nics`</span>.\nThese attributes are subject to modification during instance lifecycle and should be ignored to prevent undesired resource recreation.\n\n## Basic Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst clusterId = config.requireObject<any>(\"clusterId\");\nconst serverName = config.requireObject<any>(\"serverName\");\nconst serverId = config.requireObject<any>(\"serverId\");\nconst keypairName = config.requireObject<any>(\"keypairName\");\nconst flavorId = config.requireObject<any>(\"flavorId\");\nconst imageId = config.requireObject<any>(\"imageId\");\nconst instance1 = new opentelekomcloud.EcsInstanceV1(\"instance_1\", {\n    name: serverName,\n    imageId: imageId,\n    flavor: flavorId,\n    vpcId: sharedSubnet.vpcId,\n    nics: [{\n        networkId: sharedSubnet.networkId,\n    }],\n    availabilityZone: \"eu-de-01\",\n    dataDisks: [{\n        type: \"SSD\",\n        size: 60,\n    }],\n    password: \"Password@123\",\n    deleteDisksOnTermination: true,\n});\nconst test = new opentelekomcloud.CceNodeAttachV3(\"test\", {\n    clusterId: clusterId,\n    serverId: instance1.ecsInstanceV1Id,\n    keyPair: keypairName,\n    os: \"EulerOS 2.5\",\n    tags: {\n        foo: \"bar\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ncluster_id = config.require_object(\"clusterId\")\nserver_name = config.require_object(\"serverName\")\nserver_id = config.require_object(\"serverId\")\nkeypair_name = config.require_object(\"keypairName\")\nflavor_id = config.require_object(\"flavorId\")\nimage_id = config.require_object(\"imageId\")\ninstance1 = opentelekomcloud.EcsInstanceV1(\"instance_1\",\n    name=server_name,\n    image_id=image_id,\n    flavor=flavor_id,\n    vpc_id=shared_subnet[\"vpcId\"],\n    nics=[{\n        \"network_id\": shared_subnet[\"networkId\"],\n    }],\n    availability_zone=\"eu-de-01\",\n    data_disks=[{\n        \"type\": \"SSD\",\n        \"size\": 60,\n    }],\n    password=\"Password@123\",\n    delete_disks_on_termination=True)\ntest = opentelekomcloud.CceNodeAttachV3(\"test\",\n    cluster_id=cluster_id,\n    server_id=instance1.ecs_instance_v1_id,\n    key_pair=keypair_name,\n    os=\"EulerOS 2.5\",\n    tags={\n        \"foo\": \"bar\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var clusterId = config.RequireObject<dynamic>(\"clusterId\");\n    var serverName = config.RequireObject<dynamic>(\"serverName\");\n    var serverId = config.RequireObject<dynamic>(\"serverId\");\n    var keypairName = config.RequireObject<dynamic>(\"keypairName\");\n    var flavorId = config.RequireObject<dynamic>(\"flavorId\");\n    var imageId = config.RequireObject<dynamic>(\"imageId\");\n    var instance1 = new Opentelekomcloud.EcsInstanceV1(\"instance_1\", new()\n    {\n        Name = serverName,\n        ImageId = imageId,\n        Flavor = flavorId,\n        VpcId = sharedSubnet.VpcId,\n        Nics = new[]\n        {\n            new Opentelekomcloud.Inputs.EcsInstanceV1NicArgs\n            {\n                NetworkId = sharedSubnet.NetworkId,\n            },\n        },\n        AvailabilityZone = \"eu-de-01\",\n        DataDisks = new[]\n        {\n            new Opentelekomcloud.Inputs.EcsInstanceV1DataDiskArgs\n            {\n                Type = \"SSD\",\n                Size = 60,\n            },\n        },\n        Password = \"Password@123\",\n        DeleteDisksOnTermination = true,\n    });\n\n    var test = new Opentelekomcloud.CceNodeAttachV3(\"test\", new()\n    {\n        ClusterId = clusterId,\n        ServerId = instance1.EcsInstanceV1Id,\n        KeyPair = keypairName,\n        Os = \"EulerOS 2.5\",\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tclusterId := cfg.RequireObject(\"clusterId\")\n\t\tserverName := cfg.RequireObject(\"serverName\")\n\t\tserverId := cfg.RequireObject(\"serverId\")\n\t\tkeypairName := cfg.RequireObject(\"keypairName\")\n\t\tflavorId := cfg.RequireObject(\"flavorId\")\n\t\timageId := cfg.RequireObject(\"imageId\")\n\t\tinstance1, err := opentelekomcloud.NewEcsInstanceV1(ctx, \"instance_1\", &opentelekomcloud.EcsInstanceV1Args{\n\t\t\tName:    pulumi.Any(serverName),\n\t\t\tImageId: pulumi.Any(imageId),\n\t\t\tFlavor:  pulumi.Any(flavorId),\n\t\t\tVpcId:   pulumi.Any(sharedSubnet.VpcId),\n\t\t\tNics: opentelekomcloud.EcsInstanceV1NicArray{\n\t\t\t\t&opentelekomcloud.EcsInstanceV1NicArgs{\n\t\t\t\t\tNetworkId: pulumi.Any(sharedSubnet.NetworkId),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAvailabilityZone: pulumi.String(\"eu-de-01\"),\n\t\t\tDataDisks: opentelekomcloud.EcsInstanceV1DataDiskArray{\n\t\t\t\t&opentelekomcloud.EcsInstanceV1DataDiskArgs{\n\t\t\t\t\tType: pulumi.String(\"SSD\"),\n\t\t\t\t\tSize: pulumi.Float64(60),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPassword:                 pulumi.String(\"Password@123\"),\n\t\t\tDeleteDisksOnTermination: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewCceNodeAttachV3(ctx, \"test\", &opentelekomcloud.CceNodeAttachV3Args{\n\t\t\tClusterId: pulumi.Any(clusterId),\n\t\t\tServerId:  instance1.EcsInstanceV1Id,\n\t\t\tKeyPair:   pulumi.Any(keypairName),\n\t\t\tOs:        pulumi.String(\"EulerOS 2.5\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.EcsInstanceV1;\nimport com.pulumi.opentelekomcloud.EcsInstanceV1Args;\nimport com.pulumi.opentelekomcloud.inputs.EcsInstanceV1NicArgs;\nimport com.pulumi.opentelekomcloud.inputs.EcsInstanceV1DataDiskArgs;\nimport com.pulumi.opentelekomcloud.CceNodeAttachV3;\nimport com.pulumi.opentelekomcloud.CceNodeAttachV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var clusterId = config.get(\"clusterId\");\n        final var serverName = config.get(\"serverName\");\n        final var serverId = config.get(\"serverId\");\n        final var keypairName = config.get(\"keypairName\");\n        final var flavorId = config.get(\"flavorId\");\n        final var imageId = config.get(\"imageId\");\n        var instance1 = new EcsInstanceV1(\"instance1\", EcsInstanceV1Args.builder()\n            .name(serverName)\n            .imageId(imageId)\n            .flavor(flavorId)\n            .vpcId(sharedSubnet.vpcId())\n            .nics(EcsInstanceV1NicArgs.builder()\n                .networkId(sharedSubnet.networkId())\n                .build())\n            .availabilityZone(\"eu-de-01\")\n            .dataDisks(EcsInstanceV1DataDiskArgs.builder()\n                .type(\"SSD\")\n                .size(60.0)\n                .build())\n            .password(\"Password@123\")\n            .deleteDisksOnTermination(true)\n            .build());\n\n        var test = new CceNodeAttachV3(\"test\", CceNodeAttachV3Args.builder()\n            .clusterId(clusterId)\n            .serverId(instance1.ecsInstanceV1Id())\n            .keyPair(keypairName)\n            .os(\"EulerOS 2.5\")\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  clusterId:\n    type: dynamic\n  serverName:\n    type: dynamic\n  serverId:\n    type: dynamic\n  keypairName:\n    type: dynamic\n  flavorId:\n    type: dynamic\n  imageId:\n    type: dynamic\nresources:\n  instance1:\n    type: opentelekomcloud:EcsInstanceV1\n    name: instance_1\n    properties:\n      name: ${serverName}\n      imageId: ${imageId}\n      flavor: ${flavorId}\n      vpcId: ${sharedSubnet.vpcId}\n      nics:\n        - networkId: ${sharedSubnet.networkId}\n      availabilityZone: eu-de-01\n      dataDisks:\n        - type: SSD\n          size: 60\n      password: Password@123\n      deleteDisksOnTermination: true\n  test:\n    type: opentelekomcloud:CceNodeAttachV3\n    properties:\n      clusterId: ${clusterId}\n      serverId: ${instance1.ecsInstanceV1Id}\n      keyPair: ${keypairName}\n      os: EulerOS 2.5\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"cceNodeAttachV3Id":{"description":"The resource ID in UUID format.\n","type":"string"},"clusterId":{"description":"Specifies the ID of the cluster. Changing this parameter will create a new\nresource.\n","type":"string"},"dockerBaseSize":{"description":"Specifies the available disk space of a single docker container on the\nnode in device mapper mode. Changing this parameter will reset the node.\n","type":"number"},"k8sTags":{"additionalProperties":{"type":"string"},"description":"Specifies the tags of a Kubernetes node, key/value pair format.\nChanging this parameter will reset the node.\n","type":"object"},"keyPair":{"description":"Specifies the key pair name when logging in to select the key pair mode.\nThis parameter and <span pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\">`password`</span> are alternative.\n","type":"string"},"lvmConfig":{"description":"Specifies the docker data disk configurations.\nThis parameter is alternative to <span pulumi-lang-nodejs=\"`storage`\" pulumi-lang-dotnet=\"`Storage`\" pulumi-lang-go=\"`storage`\" pulumi-lang-python=\"`storage`\" pulumi-lang-yaml=\"`storage`\" pulumi-lang-java=\"`storage`\">`storage`</span>, and it's recommended to use <span pulumi-lang-nodejs=\"`storage`\" pulumi-lang-dotnet=\"`Storage`\" pulumi-lang-go=\"`storage`\" pulumi-lang-python=\"`storage`\" pulumi-lang-yaml=\"`storage`\" pulumi-lang-java=\"`storage`\">`storage`</span>.\nThe following is an\nexample:\n\n","type":"string"},"maxPods":{"description":"Specifies the maximum number of instances a node is allowed to create.\nChanging this parameter will reset the node.\n","type":"number"},"name":{"description":"Specifies the Node Name.\n","type":"string"},"os":{"description":"Specifies the operating System of the node. Changing this parameter will reset the node.\nThe value can be **EulerOS 2.5**, **EulerOS 2.9**, **Ubuntu 22.04**, or **HCE OS 2.0**. For more details,\nplease see [documentation](https://docs.otc.t-systems.com/cloud-container-engine/umn/nodes/node_oss.html).\n","type":"string"},"password":{"description":"Specifies the root password when logging in to select the password mode.\nThe password consists of 8 to 26 characters and must contain at least three of following: uppercase letters,\nlowercase letters, digits, special characters(!@$%^-_=+[{}]:,./?~#*).\nThis parameter can be plain or salted and is alternative to <span pulumi-lang-nodejs=\"`keyPair`\" pulumi-lang-dotnet=\"`KeyPair`\" pulumi-lang-go=\"`keyPair`\" pulumi-lang-python=\"`key_pair`\" pulumi-lang-yaml=\"`keyPair`\" pulumi-lang-java=\"`keyPair`\">`key_pair`</span>.\n","secret":true,"type":"string"},"postinstall":{"description":"Specifies the script required after installation. The input value can be\na Base64 encoded string or not. Changing this parameter will reset the node.\n","type":"string"},"preinstall":{"description":"Specifies the script required before installation. The input value can be\na Base64 encoded string or not. Changing this parameter will reset the node.\n","type":"string"},"privateKey":{"description":"Specifies the private key of the in used <span pulumi-lang-nodejs=\"`keyPair`\" pulumi-lang-dotnet=\"`KeyPair`\" pulumi-lang-go=\"`keyPair`\" pulumi-lang-python=\"`key_pair`\" pulumi-lang-yaml=\"`keyPair`\" pulumi-lang-java=\"`keyPair`\">`key_pair`</span>. This parameter is mandatory\nwhen replacing or unbinding a keypair if the CCE node is in **Active** state.\n","secret":true,"type":"string"},"runtime":{"description":"Specifies the runtime of the CCE node. Valid values are *docker* and\n*containerd*. Changing this parameter will reset the node.\n","type":"string"},"serverId":{"description":"Specifies the ecs server ID. Changing this parameter will create a new\nresource.\n","type":"string"},"storage":{"$ref":"#/types/opentelekomcloud:index%2FCceNodeAttachV3Storage:CceNodeAttachV3Storage","description":"Specifies the disk initialization management parameter.\nThis parameter is alternative to <span pulumi-lang-nodejs=\"`lvmConfig`\" pulumi-lang-dotnet=\"`LvmConfig`\" pulumi-lang-go=\"`lvmConfig`\" pulumi-lang-python=\"`lvm_config`\" pulumi-lang-yaml=\"`lvmConfig`\" pulumi-lang-java=\"`lvmConfig`\">`lvm_config`</span> and supported for clusters of v1.15.11 and later.\nChanging this parameter will reset the node.\n"},"systemDiskKmsKeyId":{"description":"Specifies the KMS key ID. This is used to encrypt the root volume.\nChanging this parameter will reset the node.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the tags of a VM node, key/value pair format.\n","type":"object"},"taints":{"description":"Specifies the taints configuration of the nodes to set anti-affinity.\nChanging this parameter will reset the node. Each taint contains the following parameters:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCceNodeAttachV3Taint:CceNodeAttachV3Taint"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCceNodeAttachV3Timeouts:CceNodeAttachV3Timeouts"}},"properties":{"availabilityZone":{"description":"The name of the available partition (AZ).\n","type":"string"},"billingMode":{"type":"number"},"cceNodeAttachV3Id":{"description":"The resource ID in UUID format.\n","type":"string"},"clusterId":{"description":"Specifies the ID of the cluster. Changing this parameter will create a new\nresource.\n","type":"string"},"dataVolumes":{"description":"The configurations of the data disk.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCceNodeAttachV3DataVolume:CceNodeAttachV3DataVolume"},"type":"array"},"dockerBaseSize":{"description":"Specifies the available disk space of a single docker container on the\nnode in device mapper mode. Changing this parameter will reset the node.\n","type":"number"},"flavorId":{"description":"The flavor ID of the CCE node.\n","type":"string"},"k8sTags":{"additionalProperties":{"type":"string"},"description":"Specifies the tags of a Kubernetes node, key/value pair format.\nChanging this parameter will reset the node.\n","type":"object"},"keyPair":{"description":"Specifies the key pair name when logging in to select the key pair mode.\nThis parameter and <span pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\">`password`</span> are alternative.\n","type":"string"},"lvmConfig":{"description":"Specifies the docker data disk configurations.\nThis parameter is alternative to <span pulumi-lang-nodejs=\"`storage`\" pulumi-lang-dotnet=\"`Storage`\" pulumi-lang-go=\"`storage`\" pulumi-lang-python=\"`storage`\" pulumi-lang-yaml=\"`storage`\" pulumi-lang-java=\"`storage`\">`storage`</span>, and it's recommended to use <span pulumi-lang-nodejs=\"`storage`\" pulumi-lang-dotnet=\"`Storage`\" pulumi-lang-go=\"`storage`\" pulumi-lang-python=\"`storage`\" pulumi-lang-yaml=\"`storage`\" pulumi-lang-java=\"`storage`\">`storage`</span>.\nThe following is an\nexample:\n\n","type":"string"},"maxPods":{"description":"Specifies the maximum number of instances a node is allowed to create.\nChanging this parameter will reset the node.\n","type":"number"},"name":{"description":"Specifies the Node Name.\n","type":"string"},"os":{"description":"Specifies the operating System of the node. Changing this parameter will reset the node.\nThe value can be **EulerOS 2.5**, **EulerOS 2.9**, **Ubuntu 22.04**, or **HCE OS 2.0**. For more details,\nplease see [documentation](https://docs.otc.t-systems.com/cloud-container-engine/umn/nodes/node_oss.html).\n","type":"string"},"password":{"description":"Specifies the root password when logging in to select the password mode.\nThe password consists of 8 to 26 characters and must contain at least three of following: uppercase letters,\nlowercase letters, digits, special characters(!@$%^-_=+[{}]:,./?~#*).\nThis parameter can be plain or salted and is alternative to <span pulumi-lang-nodejs=\"`keyPair`\" pulumi-lang-dotnet=\"`KeyPair`\" pulumi-lang-go=\"`keyPair`\" pulumi-lang-python=\"`key_pair`\" pulumi-lang-yaml=\"`keyPair`\" pulumi-lang-java=\"`keyPair`\">`key_pair`</span>.\n","secret":true,"type":"string"},"postinstall":{"description":"Specifies the script required after installation. The input value can be\na Base64 encoded string or not. Changing this parameter will reset the node.\n","type":"string"},"preinstall":{"description":"Specifies the script required before installation. The input value can be\na Base64 encoded string or not. Changing this parameter will reset the node.\n","type":"string"},"privateIp":{"description":"Private IP of the CCE node.\n","type":"string"},"privateKey":{"description":"Specifies the private key of the in used <span pulumi-lang-nodejs=\"`keyPair`\" pulumi-lang-dotnet=\"`KeyPair`\" pulumi-lang-go=\"`keyPair`\" pulumi-lang-python=\"`key_pair`\" pulumi-lang-yaml=\"`keyPair`\" pulumi-lang-java=\"`keyPair`\">`key_pair`</span>. This parameter is mandatory\nwhen replacing or unbinding a keypair if the CCE node is in **Active** state.\n","secret":true,"type":"string"},"publicIp":{"description":"Public IP of the CCE node.\n","type":"string"},"region":{"description":"The region in which nodes is created.\n","type":"string"},"rootVolumes":{"description":"The configuration of the system disk.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCceNodeAttachV3RootVolume:CceNodeAttachV3RootVolume"},"type":"array"},"runtime":{"description":"Specifies the runtime of the CCE node. Valid values are *docker* and\n*containerd*. Changing this parameter will reset the node.\n","type":"string"},"serverId":{"description":"Specifies the ecs server ID. Changing this parameter will create a new\nresource.\n","type":"string"},"status":{"description":"Node status information.\n","type":"string"},"storage":{"$ref":"#/types/opentelekomcloud:index%2FCceNodeAttachV3Storage:CceNodeAttachV3Storage","description":"Specifies the disk initialization management parameter.\nThis parameter is alternative to <span pulumi-lang-nodejs=\"`lvmConfig`\" pulumi-lang-dotnet=\"`LvmConfig`\" pulumi-lang-go=\"`lvmConfig`\" pulumi-lang-python=\"`lvm_config`\" pulumi-lang-yaml=\"`lvmConfig`\" pulumi-lang-java=\"`lvmConfig`\">`lvm_config`</span> and supported for clusters of v1.15.11 and later.\nChanging this parameter will reset the node.\n"},"subnetId":{"description":"The ID of the subnet to which the NIC belongs.\n","type":"string"},"systemDiskKmsKeyId":{"description":"Specifies the KMS key ID. This is used to encrypt the root volume.\nChanging this parameter will reset the node.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the tags of a VM node, key/value pair format.\n","type":"object"},"taints":{"description":"Specifies the taints configuration of the nodes to set anti-affinity.\nChanging this parameter will reset the node. Each taint contains the following parameters:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCceNodeAttachV3Taint:CceNodeAttachV3Taint"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCceNodeAttachV3Timeouts:CceNodeAttachV3Timeouts"}},"required":["availabilityZone","billingMode","cceNodeAttachV3Id","clusterId","dataVolumes","flavorId","name","os","privateIp","publicIp","region","rootVolumes","runtime","serverId","status","subnetId"],"requiredInputs":["clusterId","os","serverId"],"stateInputs":{"description":"Input properties used for looking up and filtering CceNodeAttachV3 resources.\n","properties":{"availabilityZone":{"description":"The name of the available partition (AZ).\n","type":"string"},"billingMode":{"type":"number"},"cceNodeAttachV3Id":{"description":"The resource ID in UUID format.\n","type":"string"},"clusterId":{"description":"Specifies the ID of the cluster. Changing this parameter will create a new\nresource.\n","type":"string"},"dataVolumes":{"description":"The configurations of the data disk.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCceNodeAttachV3DataVolume:CceNodeAttachV3DataVolume"},"type":"array"},"dockerBaseSize":{"description":"Specifies the available disk space of a single docker container on the\nnode in device mapper mode. Changing this parameter will reset the node.\n","type":"number"},"flavorId":{"description":"The flavor ID of the CCE node.\n","type":"string"},"k8sTags":{"additionalProperties":{"type":"string"},"description":"Specifies the tags of a Kubernetes node, key/value pair format.\nChanging this parameter will reset the node.\n","type":"object"},"keyPair":{"description":"Specifies the key pair name when logging in to select the key pair mode.\nThis parameter and <span pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\">`password`</span> are alternative.\n","type":"string"},"lvmConfig":{"description":"Specifies the docker data disk configurations.\nThis parameter is alternative to <span pulumi-lang-nodejs=\"`storage`\" pulumi-lang-dotnet=\"`Storage`\" pulumi-lang-go=\"`storage`\" pulumi-lang-python=\"`storage`\" pulumi-lang-yaml=\"`storage`\" pulumi-lang-java=\"`storage`\">`storage`</span>, and it's recommended to use <span pulumi-lang-nodejs=\"`storage`\" pulumi-lang-dotnet=\"`Storage`\" pulumi-lang-go=\"`storage`\" pulumi-lang-python=\"`storage`\" pulumi-lang-yaml=\"`storage`\" pulumi-lang-java=\"`storage`\">`storage`</span>.\nThe following is an\nexample:\n\n","type":"string"},"maxPods":{"description":"Specifies the maximum number of instances a node is allowed to create.\nChanging this parameter will reset the node.\n","type":"number"},"name":{"description":"Specifies the Node Name.\n","type":"string"},"os":{"description":"Specifies the operating System of the node. Changing this parameter will reset the node.\nThe value can be **EulerOS 2.5**, **EulerOS 2.9**, **Ubuntu 22.04**, or **HCE OS 2.0**. For more details,\nplease see [documentation](https://docs.otc.t-systems.com/cloud-container-engine/umn/nodes/node_oss.html).\n","type":"string"},"password":{"description":"Specifies the root password when logging in to select the password mode.\nThe password consists of 8 to 26 characters and must contain at least three of following: uppercase letters,\nlowercase letters, digits, special characters(!@$%^-_=+[{}]:,./?~#*).\nThis parameter can be plain or salted and is alternative to <span pulumi-lang-nodejs=\"`keyPair`\" pulumi-lang-dotnet=\"`KeyPair`\" pulumi-lang-go=\"`keyPair`\" pulumi-lang-python=\"`key_pair`\" pulumi-lang-yaml=\"`keyPair`\" pulumi-lang-java=\"`keyPair`\">`key_pair`</span>.\n","secret":true,"type":"string"},"postinstall":{"description":"Specifies the script required after installation. The input value can be\na Base64 encoded string or not. Changing this parameter will reset the node.\n","type":"string"},"preinstall":{"description":"Specifies the script required before installation. The input value can be\na Base64 encoded string or not. Changing this parameter will reset the node.\n","type":"string"},"privateIp":{"description":"Private IP of the CCE node.\n","type":"string"},"privateKey":{"description":"Specifies the private key of the in used <span pulumi-lang-nodejs=\"`keyPair`\" pulumi-lang-dotnet=\"`KeyPair`\" pulumi-lang-go=\"`keyPair`\" pulumi-lang-python=\"`key_pair`\" pulumi-lang-yaml=\"`keyPair`\" pulumi-lang-java=\"`keyPair`\">`key_pair`</span>. This parameter is mandatory\nwhen replacing or unbinding a keypair if the CCE node is in **Active** state.\n","secret":true,"type":"string"},"publicIp":{"description":"Public IP of the CCE node.\n","type":"string"},"region":{"description":"The region in which nodes is created.\n","type":"string"},"rootVolumes":{"description":"The configuration of the system disk.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCceNodeAttachV3RootVolume:CceNodeAttachV3RootVolume"},"type":"array"},"runtime":{"description":"Specifies the runtime of the CCE node. Valid values are *docker* and\n*containerd*. Changing this parameter will reset the node.\n","type":"string"},"serverId":{"description":"Specifies the ecs server ID. Changing this parameter will create a new\nresource.\n","type":"string"},"status":{"description":"Node status information.\n","type":"string"},"storage":{"$ref":"#/types/opentelekomcloud:index%2FCceNodeAttachV3Storage:CceNodeAttachV3Storage","description":"Specifies the disk initialization management parameter.\nThis parameter is alternative to <span pulumi-lang-nodejs=\"`lvmConfig`\" pulumi-lang-dotnet=\"`LvmConfig`\" pulumi-lang-go=\"`lvmConfig`\" pulumi-lang-python=\"`lvm_config`\" pulumi-lang-yaml=\"`lvmConfig`\" pulumi-lang-java=\"`lvmConfig`\">`lvm_config`</span> and supported for clusters of v1.15.11 and later.\nChanging this parameter will reset the node.\n"},"subnetId":{"description":"The ID of the subnet to which the NIC belongs.\n","type":"string"},"systemDiskKmsKeyId":{"description":"Specifies the KMS key ID. This is used to encrypt the root volume.\nChanging this parameter will reset the node.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the tags of a VM node, key/value pair format.\n","type":"object"},"taints":{"description":"Specifies the taints configuration of the nodes to set anti-affinity.\nChanging this parameter will reset the node. Each taint contains the following parameters:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCceNodeAttachV3Taint:CceNodeAttachV3Taint"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCceNodeAttachV3Timeouts:CceNodeAttachV3Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cceNodePoolConfigV3:CceNodePoolConfigV3":{"description":"Up-to-date reference of API arguments for CCE node pool configuration you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-container-engine/api-ref/apis/configuration_management)\n\nProvides a node pool configuration resource of a CCE container cluster.\n\n## Example Usage\n\n### Basic example\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst clusterId = config.requireObject<any>(\"clusterId\");\nconst nodepoolId = config.requireObject<any>(\"nodepoolId\");\nconst nodePoolConfig = new opentelekomcloud.CceNodePoolConfigV3(\"node_pool_config\", {\n    clusterId: clusterId,\n    nodepoolId: nodepoolId,\n    name: \"configuration\",\n    packages: [{\n        name: \"kubelet\",\n        configurations: [{\n            name: \"system-reserved-mem\",\n            value: \"600\",\n        }],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ncluster_id = config.require_object(\"clusterId\")\nnodepool_id = config.require_object(\"nodepoolId\")\nnode_pool_config = opentelekomcloud.CceNodePoolConfigV3(\"node_pool_config\",\n    cluster_id=cluster_id,\n    nodepool_id=nodepool_id,\n    name=\"configuration\",\n    packages=[{\n        \"name\": \"kubelet\",\n        \"configurations\": [{\n            \"name\": \"system-reserved-mem\",\n            \"value\": \"600\",\n        }],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var clusterId = config.RequireObject<dynamic>(\"clusterId\");\n    var nodepoolId = config.RequireObject<dynamic>(\"nodepoolId\");\n    var nodePoolConfig = new Opentelekomcloud.CceNodePoolConfigV3(\"node_pool_config\", new()\n    {\n        ClusterId = clusterId,\n        NodepoolId = nodepoolId,\n        Name = \"configuration\",\n        Packages = new[]\n        {\n            new Opentelekomcloud.Inputs.CceNodePoolConfigV3PackageArgs\n            {\n                Name = \"kubelet\",\n                Configurations = new[]\n                {\n                    new Opentelekomcloud.Inputs.CceNodePoolConfigV3PackageConfigurationArgs\n                    {\n                        Name = \"system-reserved-mem\",\n                        Value = \"600\",\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tclusterId := cfg.RequireObject(\"clusterId\")\n\t\tnodepoolId := cfg.RequireObject(\"nodepoolId\")\n\t\t_, err := opentelekomcloud.NewCceNodePoolConfigV3(ctx, \"node_pool_config\", &opentelekomcloud.CceNodePoolConfigV3Args{\n\t\t\tClusterId:  pulumi.Any(clusterId),\n\t\t\tNodepoolId: pulumi.Any(nodepoolId),\n\t\t\tName:       pulumi.String(\"configuration\"),\n\t\t\tPackages: opentelekomcloud.CceNodePoolConfigV3PackageArray{\n\t\t\t\t&opentelekomcloud.CceNodePoolConfigV3PackageArgs{\n\t\t\t\t\tName: pulumi.String(\"kubelet\"),\n\t\t\t\t\tConfigurations: opentelekomcloud.CceNodePoolConfigV3PackageConfigurationArray{\n\t\t\t\t\t\t&opentelekomcloud.CceNodePoolConfigV3PackageConfigurationArgs{\n\t\t\t\t\t\t\tName:  pulumi.String(\"system-reserved-mem\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"600\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CceNodePoolConfigV3;\nimport com.pulumi.opentelekomcloud.CceNodePoolConfigV3Args;\nimport com.pulumi.opentelekomcloud.inputs.CceNodePoolConfigV3PackageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var clusterId = config.get(\"clusterId\");\n        final var nodepoolId = config.get(\"nodepoolId\");\n        var nodePoolConfig = new CceNodePoolConfigV3(\"nodePoolConfig\", CceNodePoolConfigV3Args.builder()\n            .clusterId(clusterId)\n            .nodepoolId(nodepoolId)\n            .name(\"configuration\")\n            .packages(CceNodePoolConfigV3PackageArgs.builder()\n                .name(\"kubelet\")\n                .configurations(CceNodePoolConfigV3PackageConfigurationArgs.builder()\n                    .name(\"system-reserved-mem\")\n                    .value(\"600\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  clusterId:\n    type: dynamic\n  nodepoolId:\n    type: dynamic\nresources:\n  nodePoolConfig:\n    type: opentelekomcloud:CceNodePoolConfigV3\n    name: node_pool_config\n    properties:\n      clusterId: ${clusterId}\n      nodepoolId: ${nodepoolId}\n      name: configuration\n      packages:\n        - name: kubelet\n          configurations:\n            - name: system-reserved-mem\n              value: 600\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"cceNodePoolConfigV3Id":{"description":"Specifies a resource ID in UUID format.\n","type":"string"},"clusterId":{"description":"Specifies the ID of the CCE cluster.\n","type":"string"},"labels":{"additionalProperties":{"type":"string"},"description":"Specifies the configuration labels in a key-value pair.\n","type":"object"},"name":{"description":"Specifies the configuration name.\n","type":"string"},"nodepoolId":{"description":"Specifies the node pool ID.\n","type":"string"},"packages":{"description":"Specifies the vomponent configuration item details. The packages structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCceNodePoolConfigV3Package:CceNodePoolConfigV3Package"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCceNodePoolConfigV3Timeouts:CceNodePoolConfigV3Timeouts"}},"properties":{"cceNodePoolConfigV3Id":{"description":"Specifies a resource ID in UUID format.\n","type":"string"},"clusterId":{"description":"Specifies the ID of the CCE cluster.\n","type":"string"},"labels":{"additionalProperties":{"type":"string"},"description":"Specifies the configuration labels in a key-value pair.\n","type":"object"},"name":{"description":"Specifies the configuration name.\n","type":"string"},"nodepoolId":{"description":"Specifies the node pool ID.\n","type":"string"},"packages":{"description":"Specifies the vomponent configuration item details. The packages structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCceNodePoolConfigV3Package:CceNodePoolConfigV3Package"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCceNodePoolConfigV3Timeouts:CceNodePoolConfigV3Timeouts"}},"required":["cceNodePoolConfigV3Id","clusterId","name","nodepoolId","packages"],"requiredInputs":["clusterId","nodepoolId","packages"],"stateInputs":{"description":"Input properties used for looking up and filtering CceNodePoolConfigV3 resources.\n","properties":{"cceNodePoolConfigV3Id":{"description":"Specifies a resource ID in UUID format.\n","type":"string"},"clusterId":{"description":"Specifies the ID of the CCE cluster.\n","type":"string"},"labels":{"additionalProperties":{"type":"string"},"description":"Specifies the configuration labels in a key-value pair.\n","type":"object"},"name":{"description":"Specifies the configuration name.\n","type":"string"},"nodepoolId":{"description":"Specifies the node pool ID.\n","type":"string"},"packages":{"description":"Specifies the vomponent configuration item details. The packages structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCceNodePoolConfigV3Package:CceNodePoolConfigV3Package"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCceNodePoolConfigV3Timeouts:CceNodePoolConfigV3Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cceNodePoolV3:CceNodePoolV3":{"description":"Up-to-date reference of API arguments for CCE cluster node pool you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-container-engine/api-ref/apis/cluster_management)\n\nProvides a node pool resource management of a container cluster.\n\n## Example Usage\n\n### Basic example\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst clusterId = config.requireObject<any>(\"clusterId\");\nconst sshKey = config.requireObject<any>(\"sshKey\");\nconst availabilityZone = config.requireObject<any>(\"availabilityZone\");\nconst nodePool1 = new opentelekomcloud.CceNodePoolV3(\"node_pool_1\", {\n    clusterId: clusterId,\n    name: \"opentelekomcloud-cce-node-pool-test\",\n    os: \"EulerOS 2.9\",\n    flavor: \"s2.xlarge.2\",\n    initialNodeCount: 2,\n    availabilityZone: availabilityZone,\n    keyPair: sshKey,\n    scaleEnable: true,\n    minNodeCount: 2,\n    maxNodeCount: 9,\n    scaleDownCooldownTime: 100,\n    priority: 1,\n    runtime: \"containerd\",\n    agencyName: \"test-agency\",\n    rootVolume: {\n        size: 40,\n        volumetype: \"SSD\",\n    },\n    dataVolumes: [\n        {\n            size: 100,\n            volumetype: \"SSD\",\n        },\n        {\n            size: 100,\n            volumetype: \"SSD\",\n            extendParams: {\n                useType: \"docker\",\n            },\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ncluster_id = config.require_object(\"clusterId\")\nssh_key = config.require_object(\"sshKey\")\navailability_zone = config.require_object(\"availabilityZone\")\nnode_pool1 = opentelekomcloud.CceNodePoolV3(\"node_pool_1\",\n    cluster_id=cluster_id,\n    name=\"opentelekomcloud-cce-node-pool-test\",\n    os=\"EulerOS 2.9\",\n    flavor=\"s2.xlarge.2\",\n    initial_node_count=2,\n    availability_zone=availability_zone,\n    key_pair=ssh_key,\n    scale_enable=True,\n    min_node_count=2,\n    max_node_count=9,\n    scale_down_cooldown_time=100,\n    priority=1,\n    runtime=\"containerd\",\n    agency_name=\"test-agency\",\n    root_volume={\n        \"size\": 40,\n        \"volumetype\": \"SSD\",\n    },\n    data_volumes=[\n        {\n            \"size\": 100,\n            \"volumetype\": \"SSD\",\n        },\n        {\n            \"size\": 100,\n            \"volumetype\": \"SSD\",\n            \"extend_params\": {\n                \"useType\": \"docker\",\n            },\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var clusterId = config.RequireObject<dynamic>(\"clusterId\");\n    var sshKey = config.RequireObject<dynamic>(\"sshKey\");\n    var availabilityZone = config.RequireObject<dynamic>(\"availabilityZone\");\n    var nodePool1 = new Opentelekomcloud.CceNodePoolV3(\"node_pool_1\", new()\n    {\n        ClusterId = clusterId,\n        Name = \"opentelekomcloud-cce-node-pool-test\",\n        Os = \"EulerOS 2.9\",\n        Flavor = \"s2.xlarge.2\",\n        InitialNodeCount = 2,\n        AvailabilityZone = availabilityZone,\n        KeyPair = sshKey,\n        ScaleEnable = true,\n        MinNodeCount = 2,\n        MaxNodeCount = 9,\n        ScaleDownCooldownTime = 100,\n        Priority = 1,\n        Runtime = \"containerd\",\n        AgencyName = \"test-agency\",\n        RootVolume = new Opentelekomcloud.Inputs.CceNodePoolV3RootVolumeArgs\n        {\n            Size = 40,\n            Volumetype = \"SSD\",\n        },\n        DataVolumes = new[]\n        {\n            new Opentelekomcloud.Inputs.CceNodePoolV3DataVolumeArgs\n            {\n                Size = 100,\n                Volumetype = \"SSD\",\n            },\n            new Opentelekomcloud.Inputs.CceNodePoolV3DataVolumeArgs\n            {\n                Size = 100,\n                Volumetype = \"SSD\",\n                ExtendParams = \n                {\n                    { \"useType\", \"docker\" },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tclusterId := cfg.RequireObject(\"clusterId\")\n\t\tsshKey := cfg.RequireObject(\"sshKey\")\n\t\tavailabilityZone := cfg.RequireObject(\"availabilityZone\")\n\t\t_, err := opentelekomcloud.NewCceNodePoolV3(ctx, \"node_pool_1\", &opentelekomcloud.CceNodePoolV3Args{\n\t\t\tClusterId:             pulumi.Any(clusterId),\n\t\t\tName:                  pulumi.String(\"opentelekomcloud-cce-node-pool-test\"),\n\t\t\tOs:                    pulumi.String(\"EulerOS 2.9\"),\n\t\t\tFlavor:                pulumi.String(\"s2.xlarge.2\"),\n\t\t\tInitialNodeCount:      pulumi.Float64(2),\n\t\t\tAvailabilityZone:      pulumi.Any(availabilityZone),\n\t\t\tKeyPair:               pulumi.Any(sshKey),\n\t\t\tScaleEnable:           pulumi.Bool(true),\n\t\t\tMinNodeCount:          pulumi.Float64(2),\n\t\t\tMaxNodeCount:          pulumi.Float64(9),\n\t\t\tScaleDownCooldownTime: pulumi.Float64(100),\n\t\t\tPriority:              pulumi.Float64(1),\n\t\t\tRuntime:               pulumi.String(\"containerd\"),\n\t\t\tAgencyName:            pulumi.String(\"test-agency\"),\n\t\t\tRootVolume: &opentelekomcloud.CceNodePoolV3RootVolumeArgs{\n\t\t\t\tSize:       pulumi.Float64(40),\n\t\t\t\tVolumetype: pulumi.String(\"SSD\"),\n\t\t\t},\n\t\t\tDataVolumes: opentelekomcloud.CceNodePoolV3DataVolumeArray{\n\t\t\t\t&opentelekomcloud.CceNodePoolV3DataVolumeArgs{\n\t\t\t\t\tSize:       pulumi.Float64(100),\n\t\t\t\t\tVolumetype: pulumi.String(\"SSD\"),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.CceNodePoolV3DataVolumeArgs{\n\t\t\t\t\tSize:       pulumi.Float64(100),\n\t\t\t\t\tVolumetype: pulumi.String(\"SSD\"),\n\t\t\t\t\tExtendParams: pulumi.StringMap{\n\t\t\t\t\t\t\"useType\": pulumi.String(\"docker\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CceNodePoolV3;\nimport com.pulumi.opentelekomcloud.CceNodePoolV3Args;\nimport com.pulumi.opentelekomcloud.inputs.CceNodePoolV3RootVolumeArgs;\nimport com.pulumi.opentelekomcloud.inputs.CceNodePoolV3DataVolumeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var clusterId = config.get(\"clusterId\");\n        final var sshKey = config.get(\"sshKey\");\n        final var availabilityZone = config.get(\"availabilityZone\");\n        var nodePool1 = new CceNodePoolV3(\"nodePool1\", CceNodePoolV3Args.builder()\n            .clusterId(clusterId)\n            .name(\"opentelekomcloud-cce-node-pool-test\")\n            .os(\"EulerOS 2.9\")\n            .flavor(\"s2.xlarge.2\")\n            .initialNodeCount(2.0)\n            .availabilityZone(availabilityZone)\n            .keyPair(sshKey)\n            .scaleEnable(true)\n            .minNodeCount(2.0)\n            .maxNodeCount(9.0)\n            .scaleDownCooldownTime(100.0)\n            .priority(1.0)\n            .runtime(\"containerd\")\n            .agencyName(\"test-agency\")\n            .rootVolume(CceNodePoolV3RootVolumeArgs.builder()\n                .size(40.0)\n                .volumetype(\"SSD\")\n                .build())\n            .dataVolumes(            \n                CceNodePoolV3DataVolumeArgs.builder()\n                    .size(100.0)\n                    .volumetype(\"SSD\")\n                    .build(),\n                CceNodePoolV3DataVolumeArgs.builder()\n                    .size(100.0)\n                    .volumetype(\"SSD\")\n                    .extendParams(Map.of(\"useType\", \"docker\"))\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  clusterId:\n    type: dynamic\n  sshKey:\n    type: dynamic\n  availabilityZone:\n    type: dynamic\nresources:\n  nodePool1:\n    type: opentelekomcloud:CceNodePoolV3\n    name: node_pool_1\n    properties:\n      clusterId: ${clusterId}\n      name: opentelekomcloud-cce-node-pool-test\n      os: EulerOS 2.9\n      flavor: s2.xlarge.2\n      initialNodeCount: 2\n      availabilityZone: ${availabilityZone}\n      keyPair: ${sshKey}\n      scaleEnable: true\n      minNodeCount: 2\n      maxNodeCount: 9\n      scaleDownCooldownTime: 100\n      priority: 1\n      runtime: containerd\n      agencyName: test-agency\n      rootVolume:\n        size: 40\n        volumetype: SSD\n      dataVolumes:\n        - size: 100\n          volumetype: SSD\n        - size: 100\n          volumetype: SSD\n          extendParams:\n            useType: docker\n```\n<!--End PulumiCodeChooser -->\n\n### Node pool with storage settings\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst clusterId = config.requireObject<any>(\"clusterId\");\nconst sshKey = config.requireObject<any>(\"sshKey\");\nconst kmsKeyId = config.requireObject<any>(\"kmsKeyId\");\nconst availabilityZone = config.requireObject<any>(\"availabilityZone\");\nconst nodePool = new opentelekomcloud.CceNodePoolV3(\"node_pool\", {\n    clusterId: clusterId,\n    name: \"opentelekomcloud-cce-node-pool\",\n    os: \"EulerOS 2.9\",\n    flavor: \"s2.large.2\",\n    initialNodeCount: 1,\n    keyPair: sshKey,\n    availabilityZone: \"random\",\n    rootVolume: {\n        size: 40,\n        volumetype: \"SSD\",\n    },\n    dataVolumes: [{\n        size: 100,\n        volumetype: \"SSD\",\n    }],\n    storage: JSON.stringify({\n        storageSelectors: [{\n            name: \"cceUse\",\n            storageType: \"evs\",\n            matchLabels: {\n                size: \"100\",\n                volumeType: \"SSD\",\n                count: \"1\",\n                metadataEncrypted: \"1\",\n                metadataCmkid: kmsKeyId,\n            },\n        }],\n        storageGroups: [{\n            name: \"vgpaas\",\n            selectorNames: [\"cceUse\"],\n            cceManaged: true,\n            virtualSpaces: [\n                {\n                    name: \"runtime\",\n                    size: \"90%\",\n                },\n                {\n                    name: \"kubernetes\",\n                    size: \"10%\",\n                },\n            ],\n        }],\n    }),\n    maxPods: 16,\n    dockerBaseSize: 32,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ncluster_id = config.require_object(\"clusterId\")\nssh_key = config.require_object(\"sshKey\")\nkms_key_id = config.require_object(\"kmsKeyId\")\navailability_zone = config.require_object(\"availabilityZone\")\nnode_pool = opentelekomcloud.CceNodePoolV3(\"node_pool\",\n    cluster_id=cluster_id,\n    name=\"opentelekomcloud-cce-node-pool\",\n    os=\"EulerOS 2.9\",\n    flavor=\"s2.large.2\",\n    initial_node_count=1,\n    key_pair=ssh_key,\n    availability_zone=\"random\",\n    root_volume={\n        \"size\": 40,\n        \"volumetype\": \"SSD\",\n    },\n    data_volumes=[{\n        \"size\": 100,\n        \"volumetype\": \"SSD\",\n    }],\n    storage=json.dumps({\n        \"storageSelectors\": [{\n            \"name\": \"cceUse\",\n            \"storageType\": \"evs\",\n            \"matchLabels\": {\n                \"size\": \"100\",\n                \"volumeType\": \"SSD\",\n                \"count\": \"1\",\n                \"metadataEncrypted\": \"1\",\n                \"metadataCmkid\": kms_key_id,\n            },\n        }],\n        \"storageGroups\": [{\n            \"name\": \"vgpaas\",\n            \"selectorNames\": [\"cceUse\"],\n            \"cceManaged\": True,\n            \"virtualSpaces\": [\n                {\n                    \"name\": \"runtime\",\n                    \"size\": \"90%\",\n                },\n                {\n                    \"name\": \"kubernetes\",\n                    \"size\": \"10%\",\n                },\n            ],\n        }],\n    }),\n    max_pods=16,\n    docker_base_size=32)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var clusterId = config.RequireObject<dynamic>(\"clusterId\");\n    var sshKey = config.RequireObject<dynamic>(\"sshKey\");\n    var kmsKeyId = config.RequireObject<dynamic>(\"kmsKeyId\");\n    var availabilityZone = config.RequireObject<dynamic>(\"availabilityZone\");\n    var nodePool = new Opentelekomcloud.CceNodePoolV3(\"node_pool\", new()\n    {\n        ClusterId = clusterId,\n        Name = \"opentelekomcloud-cce-node-pool\",\n        Os = \"EulerOS 2.9\",\n        Flavor = \"s2.large.2\",\n        InitialNodeCount = 1,\n        KeyPair = sshKey,\n        AvailabilityZone = \"random\",\n        RootVolume = new Opentelekomcloud.Inputs.CceNodePoolV3RootVolumeArgs\n        {\n            Size = 40,\n            Volumetype = \"SSD\",\n        },\n        DataVolumes = new[]\n        {\n            new Opentelekomcloud.Inputs.CceNodePoolV3DataVolumeArgs\n            {\n                Size = 100,\n                Volumetype = \"SSD\",\n            },\n        },\n        Storage = JsonSerializer.Serialize(new Dictionary<string, object?>\n        {\n            [\"storageSelectors\"] = new[]\n            {\n                new Dictionary<string, object?>\n                {\n                    [\"name\"] = \"cceUse\",\n                    [\"storageType\"] = \"evs\",\n                    [\"matchLabels\"] = new Dictionary<string, object?>\n                    {\n                        [\"size\"] = \"100\",\n                        [\"volumeType\"] = \"SSD\",\n                        [\"count\"] = \"1\",\n                        [\"metadataEncrypted\"] = \"1\",\n                        [\"metadataCmkid\"] = kmsKeyId,\n                    },\n                },\n            },\n            [\"storageGroups\"] = new[]\n            {\n                new Dictionary<string, object?>\n                {\n                    [\"name\"] = \"vgpaas\",\n                    [\"selectorNames\"] = new[]\n                    {\n                        \"cceUse\",\n                    },\n                    [\"cceManaged\"] = true,\n                    [\"virtualSpaces\"] = new[]\n                    {\n                        new Dictionary<string, object?>\n                        {\n                            [\"name\"] = \"runtime\",\n                            [\"size\"] = \"90%\",\n                        },\n                        new Dictionary<string, object?>\n                        {\n                            [\"name\"] = \"kubernetes\",\n                            [\"size\"] = \"10%\",\n                        },\n                    },\n                },\n            },\n        }),\n        MaxPods = 16,\n        DockerBaseSize = 32,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tclusterId := cfg.RequireObject(\"clusterId\")\n\t\tsshKey := cfg.RequireObject(\"sshKey\")\n\t\tkmsKeyId := cfg.RequireObject(\"kmsKeyId\")\n\t\tavailabilityZone := cfg.RequireObject(\"availabilityZone\")\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"storageSelectors\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"name\":        \"cceUse\",\n\t\t\t\t\t\"storageType\": \"evs\",\n\t\t\t\t\t\"matchLabels\": map[string]interface{}{\n\t\t\t\t\t\t\"size\":              \"100\",\n\t\t\t\t\t\t\"volumeType\":        \"SSD\",\n\t\t\t\t\t\t\"count\":             \"1\",\n\t\t\t\t\t\t\"metadataEncrypted\": \"1\",\n\t\t\t\t\t\t\"metadataCmkid\":     kmsKeyId,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"storageGroups\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"name\": \"vgpaas\",\n\t\t\t\t\t\"selectorNames\": []string{\n\t\t\t\t\t\t\"cceUse\",\n\t\t\t\t\t},\n\t\t\t\t\t\"cceManaged\": true,\n\t\t\t\t\t\"virtualSpaces\": []map[string]interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"name\": \"runtime\",\n\t\t\t\t\t\t\t\"size\": \"90%\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"name\": \"kubernetes\",\n\t\t\t\t\t\t\t\"size\": \"10%\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = opentelekomcloud.NewCceNodePoolV3(ctx, \"node_pool\", &opentelekomcloud.CceNodePoolV3Args{\n\t\t\tClusterId:        pulumi.Any(clusterId),\n\t\t\tName:             pulumi.String(\"opentelekomcloud-cce-node-pool\"),\n\t\t\tOs:               pulumi.String(\"EulerOS 2.9\"),\n\t\t\tFlavor:           pulumi.String(\"s2.large.2\"),\n\t\t\tInitialNodeCount: pulumi.Float64(1),\n\t\t\tKeyPair:          pulumi.Any(sshKey),\n\t\t\tAvailabilityZone: pulumi.String(\"random\"),\n\t\t\tRootVolume: &opentelekomcloud.CceNodePoolV3RootVolumeArgs{\n\t\t\t\tSize:       pulumi.Float64(40),\n\t\t\t\tVolumetype: pulumi.String(\"SSD\"),\n\t\t\t},\n\t\t\tDataVolumes: opentelekomcloud.CceNodePoolV3DataVolumeArray{\n\t\t\t\t&opentelekomcloud.CceNodePoolV3DataVolumeArgs{\n\t\t\t\t\tSize:       pulumi.Float64(100),\n\t\t\t\t\tVolumetype: pulumi.String(\"SSD\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tStorage:        pulumi.String(json0),\n\t\t\tMaxPods:        pulumi.Float64(16),\n\t\t\tDockerBaseSize: pulumi.Float64(32),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CceNodePoolV3;\nimport com.pulumi.opentelekomcloud.CceNodePoolV3Args;\nimport com.pulumi.opentelekomcloud.inputs.CceNodePoolV3RootVolumeArgs;\nimport com.pulumi.opentelekomcloud.inputs.CceNodePoolV3DataVolumeArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var clusterId = config.get(\"clusterId\");\n        final var sshKey = config.get(\"sshKey\");\n        final var kmsKeyId = config.get(\"kmsKeyId\");\n        final var availabilityZone = config.get(\"availabilityZone\");\n        var nodePool = new CceNodePoolV3(\"nodePool\", CceNodePoolV3Args.builder()\n            .clusterId(clusterId)\n            .name(\"opentelekomcloud-cce-node-pool\")\n            .os(\"EulerOS 2.9\")\n            .flavor(\"s2.large.2\")\n            .initialNodeCount(1.0)\n            .keyPair(sshKey)\n            .availabilityZone(\"random\")\n            .rootVolume(CceNodePoolV3RootVolumeArgs.builder()\n                .size(40.0)\n                .volumetype(\"SSD\")\n                .build())\n            .dataVolumes(CceNodePoolV3DataVolumeArgs.builder()\n                .size(100.0)\n                .volumetype(\"SSD\")\n                .build())\n            .storage(serializeJson(\n                jsonObject(\n                    jsonProperty(\"storageSelectors\", jsonArray(jsonObject(\n                        jsonProperty(\"name\", \"cceUse\"),\n                        jsonProperty(\"storageType\", \"evs\"),\n                        jsonProperty(\"matchLabels\", jsonObject(\n                            jsonProperty(\"size\", \"100\"),\n                            jsonProperty(\"volumeType\", \"SSD\"),\n                            jsonProperty(\"count\", \"1\"),\n                            jsonProperty(\"metadataEncrypted\", \"1\"),\n                            jsonProperty(\"metadataCmkid\", kmsKeyId)\n                        ))\n                    ))),\n                    jsonProperty(\"storageGroups\", jsonArray(jsonObject(\n                        jsonProperty(\"name\", \"vgpaas\"),\n                        jsonProperty(\"selectorNames\", jsonArray(\"cceUse\")),\n                        jsonProperty(\"cceManaged\", true),\n                        jsonProperty(\"virtualSpaces\", jsonArray(\n                            jsonObject(\n                                jsonProperty(\"name\", \"runtime\"),\n                                jsonProperty(\"size\", \"90%\")\n                            ), \n                            jsonObject(\n                                jsonProperty(\"name\", \"kubernetes\"),\n                                jsonProperty(\"size\", \"10%\")\n                            )\n                        ))\n                    )))\n                )))\n            .maxPods(16.0)\n            .dockerBaseSize(32.0)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  clusterId:\n    type: dynamic\n  sshKey:\n    type: dynamic\n  kmsKeyId:\n    type: dynamic\n  availabilityZone:\n    type: dynamic\nresources:\n  nodePool:\n    type: opentelekomcloud:CceNodePoolV3\n    name: node_pool\n    properties:\n      clusterId: ${clusterId}\n      name: opentelekomcloud-cce-node-pool\n      os: EulerOS 2.9\n      flavor: s2.large.2\n      initialNodeCount: 1\n      keyPair: ${sshKey}\n      availabilityZone: random\n      rootVolume:\n        size: 40\n        volumetype: SSD\n      dataVolumes:\n        - size: 100\n          volumetype: SSD\n      storage:\n        fn::toJSON:\n          storageSelectors:\n            - name: cceUse\n              storageType: evs\n              matchLabels:\n                size: '100'\n                volumeType: SSD\n                count: '1'\n                metadataEncrypted: '1'\n                metadataCmkid: ${kmsKeyId}\n          storageGroups:\n            - name: vgpaas\n              selectorNames:\n                - cceUse\n              cceManaged: true\n              virtualSpaces:\n                - name: runtime\n                  size: 90%\n                - name: kubernetes\n                  size: 10%\n      maxPods: 16\n      dockerBaseSize: 32\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCCE NodePool can be imported using the `cluster_id/node_pool_id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/cceNodePoolV3:CceNodePoolV3 pool_1 14a80bc7-c12c-4fe0-a38a-cb77eeac9bd6/89c60255-9bd6-460c-822a-e2b959ede9d2\n```\n\n","inputProperties":{"agencyName":{"description":"IAM agency name. Changing this parameter will create a new resource.\n","type":"string"},"availabilityZone":{"description":"Specify the name of the available partition (AZ). If zone is not\nspecified than <span pulumi-lang-nodejs=\"`nodePool`\" pulumi-lang-dotnet=\"`NodePool`\" pulumi-lang-go=\"`nodePool`\" pulumi-lang-python=\"`node_pool`\" pulumi-lang-yaml=\"`nodePool`\" pulumi-lang-java=\"`nodePool`\">`node_pool`</span> will be in randomly selected AZ. The default value is <span pulumi-lang-nodejs=\"`random`\" pulumi-lang-dotnet=\"`Random`\" pulumi-lang-go=\"`random`\" pulumi-lang-python=\"`random`\" pulumi-lang-yaml=\"`random`\" pulumi-lang-java=\"`random`\">`random`</span>. Changing\nthis parameter will create a new resource.\n\n->\nIf AZ is set to <span pulumi-lang-nodejs=\"`random`\" pulumi-lang-dotnet=\"`Random`\" pulumi-lang-go=\"`random`\" pulumi-lang-python=\"`random`\" pulumi-lang-yaml=\"`random`\" pulumi-lang-java=\"`random`\">`random`</span>, when you create a node pool or update the number of nodes in a node pool, a scaling task is\ntriggered. The system selects an AZ from all AZs where scaling is allowed to add nodes based on priorities. AZs with a\nsmaller the number of existing nodes have a higher priority. If AZs have the same number of nodes, the system selects\nthe AZ based on the AZ sequence. For more details see\n[API documentation](https://docs.otc.t-systems.com/en-us/api2/cce/cce_02_0354.html#cce_02_0354__table620623542313)\n","type":"string"},"cceNodePoolV3Id":{"description":"Specifies a resource ID in UUID format.\n","type":"string"},"clusterId":{"description":"ID of the cluster. Changing this parameter will create a new resource.\n","type":"string"},"dataVolumes":{"description":"Represents the data disk to be created. Changing this parameter will create a new resource.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCceNodePoolV3DataVolume:CceNodePoolV3DataVolume"},"type":"array"},"dockerBaseSize":{"description":"Available disk space of a single Docker container on the node using the device mapper.\nChanging this parameter will create a new node pool.\n","type":"number"},"dockerLvmConfigOverride":{"description":"`ConfigMap` of the Docker data disk.\nChanging this parameter will create a new node.\n","type":"string"},"flavor":{"description":"Specifies the flavor id. Changing this parameter will create a new resource.\n","type":"string"},"initialNodeCount":{"description":"Initial number of expected nodes in the node pool.\n","type":"number"},"k8sTags":{"additionalProperties":{"type":"string"},"description":"Tags of a Kubernetes node, key/value pair format.\n","type":"object"},"keyPair":{"description":"Key pair name when logging in to select the key pair mode.\nThis parameter and password are alternative. Changing this parameter will create a new resource.\n","type":"string"},"maxNodeCount":{"description":"Maximum number of nodes allowed if auto scaling is enabled.\n","type":"number"},"maxPods":{"description":"The maximum number of instances a node is allowed to create.\nChanging this parameter will create a new node pool.\n","type":"number"},"minNodeCount":{"description":"Minimum number of nodes allowed if auto scaling is enabled.\n","type":"number"},"name":{"description":"Node Pool Name.\n","type":"string"},"os":{"description":"Node OS. Changing this parameter will create a new resource.\n\nSupported OS depends on kubernetes version of the cluster.\n| OS           | Kubernetes version |\n| :----------- | :----------------- |\n| HCE OS 2.0   | `v1.30`, `v1.29`, `v1.28`, `v1.27` |\n| Ubuntu 22.04 | `v1.30`, `v1.29`, `v1.28`, `v1.27` |\n| EulerOS release 2.9 | `v1.30`, `v1.29`, `v1.28`, `v1.27` |\n\nFor detailed information, visit the CCE node operating systems [reference document](https://docs.otc.t-systems.com/cloud-container-engine/umn/nodes/node_oss.html).\n","type":"string"},"password":{"description":"Password used for node login.\nThis parameter and password are alternative. Changing this parameter will create a new resource.\n> **NOTE:** This field is not supported for the current version.\n","secret":true,"type":"string"},"postinstall":{"description":"Script required after installation. The input value can be a Base64 encoded string or not.\nChanging this parameter will create a new resource.\n","type":"string"},"preinstall":{"description":"Script required before installation. The input value can be a Base64 encoded string or not.\nChanging this parameter will create a new resource.\n","type":"string"},"priority":{"description":"Weight of a node pool. A node pool with a higher weight has a higher priority during scaling.\n","type":"number"},"rootVolume":{"$ref":"#/types/opentelekomcloud:index%2FCceNodePoolV3RootVolume:CceNodePoolV3RootVolume","description":"It corresponds to the system disk related configuration. Changing this parameter will create a new resource.\n"},"runtime":{"description":"Container runtime. Changing this parameter will create a new resource.\nUse with high-caution, may trigger resource recreation. Options are:\n<span pulumi-lang-nodejs=\"`docker`\" pulumi-lang-dotnet=\"`Docker`\" pulumi-lang-go=\"`docker`\" pulumi-lang-python=\"`docker`\" pulumi-lang-yaml=\"`docker`\" pulumi-lang-java=\"`docker`\">`docker`</span> - Docker\n<span pulumi-lang-nodejs=\"`containerd`\" pulumi-lang-dotnet=\"`Containerd`\" pulumi-lang-go=\"`containerd`\" pulumi-lang-python=\"`containerd`\" pulumi-lang-yaml=\"`containerd`\" pulumi-lang-java=\"`containerd`\">`containerd`</span> - Containerd\n","type":"string"},"scaleDownCooldownTime":{"description":"Interval between two scaling operations, in minutes.\n","type":"number"},"scaleEnable":{"description":"Whether to enable auto scaling. If Autoscaler is enabled, install the autoscaler add-on to use the auto scaling feature.\n","type":"boolean"},"securityGroupIds":{"description":"Specifies the list of custom security group IDs for the node pool.\nIf specified, the nodes will be put in these security groups. When specifying a security group, do not modify\nthe rules of the port on which CCE running depends.\n","items":{"type":"string"},"type":"array"},"serverGroupReference":{"description":"ECS group ID. If this parameter is specified, all nodes in the node pool will be created in this ECS group.\n","type":"string"},"storage":{"description":"Specifies the json string vary depending on CCE node pools storage options.\n> Please refer to the [documentation](https://docs.otc.t-systems.com/cloud-container-engine/api-ref/apis/cluster_management/querying_a_specified_node_pool.html#cce-02-0355-response-storage)\nfor actual fields.\n","type":"string"},"subnetId":{"description":"The ID of the subnet to which the NIC belongs. Changing this parameter will create a new resource.\n","type":"string"},"taints":{"description":"Taints to created nodes to configure anti-affinity.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCceNodePoolV3Taint:CceNodePoolV3Taint"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCceNodePoolV3Timeouts:CceNodePoolV3Timeouts"},"userTags":{"additionalProperties":{"type":"string"},"description":"Tag of a VM, key/value pair format.\n","type":"object"}},"properties":{"agencyName":{"description":"IAM agency name. Changing this parameter will create a new resource.\n","type":"string"},"availabilityZone":{"description":"Specify the name of the available partition (AZ). If zone is not\nspecified than <span pulumi-lang-nodejs=\"`nodePool`\" pulumi-lang-dotnet=\"`NodePool`\" pulumi-lang-go=\"`nodePool`\" pulumi-lang-python=\"`node_pool`\" pulumi-lang-yaml=\"`nodePool`\" pulumi-lang-java=\"`nodePool`\">`node_pool`</span> will be in randomly selected AZ. The default value is <span pulumi-lang-nodejs=\"`random`\" pulumi-lang-dotnet=\"`Random`\" pulumi-lang-go=\"`random`\" pulumi-lang-python=\"`random`\" pulumi-lang-yaml=\"`random`\" pulumi-lang-java=\"`random`\">`random`</span>. Changing\nthis parameter will create a new resource.\n\n->\nIf AZ is set to <span pulumi-lang-nodejs=\"`random`\" pulumi-lang-dotnet=\"`Random`\" pulumi-lang-go=\"`random`\" pulumi-lang-python=\"`random`\" pulumi-lang-yaml=\"`random`\" pulumi-lang-java=\"`random`\">`random`</span>, when you create a node pool or update the number of nodes in a node pool, a scaling task is\ntriggered. The system selects an AZ from all AZs where scaling is allowed to add nodes based on priorities. AZs with a\nsmaller the number of existing nodes have a higher priority. If AZs have the same number of nodes, the system selects\nthe AZ based on the AZ sequence. For more details see\n[API documentation](https://docs.otc.t-systems.com/en-us/api2/cce/cce_02_0354.html#cce_02_0354__table620623542313)\n","type":"string"},"cceNodePoolV3Id":{"description":"Specifies a resource ID in UUID format.\n","type":"string"},"clusterId":{"description":"ID of the cluster. Changing this parameter will create a new resource.\n","type":"string"},"dataVolumes":{"description":"Represents the data disk to be created. Changing this parameter will create a new resource.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCceNodePoolV3DataVolume:CceNodePoolV3DataVolume"},"type":"array"},"dockerBaseSize":{"description":"Available disk space of a single Docker container on the node using the device mapper.\nChanging this parameter will create a new node pool.\n","type":"number"},"dockerLvmConfigOverride":{"description":"`ConfigMap` of the Docker data disk.\nChanging this parameter will create a new node.\n","type":"string"},"flavor":{"description":"Specifies the flavor id. Changing this parameter will create a new resource.\n","type":"string"},"initialNodeCount":{"description":"Initial number of expected nodes in the node pool.\n","type":"number"},"k8sTags":{"additionalProperties":{"type":"string"},"description":"Tags of a Kubernetes node, key/value pair format.\n","type":"object"},"keyPair":{"description":"Key pair name when logging in to select the key pair mode.\nThis parameter and password are alternative. Changing this parameter will create a new resource.\n","type":"string"},"maxNodeCount":{"description":"Maximum number of nodes allowed if auto scaling is enabled.\n","type":"number"},"maxPods":{"description":"The maximum number of instances a node is allowed to create.\nChanging this parameter will create a new node pool.\n","type":"number"},"minNodeCount":{"description":"Minimum number of nodes allowed if auto scaling is enabled.\n","type":"number"},"name":{"description":"Node Pool Name.\n","type":"string"},"os":{"description":"Node OS. Changing this parameter will create a new resource.\n\nSupported OS depends on kubernetes version of the cluster.\n| OS           | Kubernetes version |\n| :----------- | :----------------- |\n| HCE OS 2.0   | `v1.30`, `v1.29`, `v1.28`, `v1.27` |\n| Ubuntu 22.04 | `v1.30`, `v1.29`, `v1.28`, `v1.27` |\n| EulerOS release 2.9 | `v1.30`, `v1.29`, `v1.28`, `v1.27` |\n\nFor detailed information, visit the CCE node operating systems [reference document](https://docs.otc.t-systems.com/cloud-container-engine/umn/nodes/node_oss.html).\n","type":"string"},"password":{"description":"Password used for node login.\nThis parameter and password are alternative. Changing this parameter will create a new resource.\n> **NOTE:** This field is not supported for the current version.\n","secret":true,"type":"string"},"postinstall":{"description":"Script required after installation. The input value can be a Base64 encoded string or not.\nChanging this parameter will create a new resource.\n","type":"string"},"preinstall":{"description":"Script required before installation. The input value can be a Base64 encoded string or not.\nChanging this parameter will create a new resource.\n","type":"string"},"priority":{"description":"Weight of a node pool. A node pool with a higher weight has a higher priority during scaling.\n","type":"number"},"rootVolume":{"$ref":"#/types/opentelekomcloud:index%2FCceNodePoolV3RootVolume:CceNodePoolV3RootVolume","description":"It corresponds to the system disk related configuration. Changing this parameter will create a new resource.\n"},"runtime":{"description":"Container runtime. Changing this parameter will create a new resource.\nUse with high-caution, may trigger resource recreation. Options are:\n<span pulumi-lang-nodejs=\"`docker`\" pulumi-lang-dotnet=\"`Docker`\" pulumi-lang-go=\"`docker`\" pulumi-lang-python=\"`docker`\" pulumi-lang-yaml=\"`docker`\" pulumi-lang-java=\"`docker`\">`docker`</span> - Docker\n<span pulumi-lang-nodejs=\"`containerd`\" pulumi-lang-dotnet=\"`Containerd`\" pulumi-lang-go=\"`containerd`\" pulumi-lang-python=\"`containerd`\" pulumi-lang-yaml=\"`containerd`\" pulumi-lang-java=\"`containerd`\">`containerd`</span> - Containerd\n","type":"string"},"scaleDownCooldownTime":{"description":"Interval between two scaling operations, in minutes.\n","type":"number"},"scaleEnable":{"description":"Whether to enable auto scaling. If Autoscaler is enabled, install the autoscaler add-on to use the auto scaling feature.\n","type":"boolean"},"securityGroupIds":{"description":"Specifies the list of custom security group IDs for the node pool.\nIf specified, the nodes will be put in these security groups. When specifying a security group, do not modify\nthe rules of the port on which CCE running depends.\n","items":{"type":"string"},"type":"array"},"serverGroupReference":{"description":"ECS group ID. If this parameter is specified, all nodes in the node pool will be created in this ECS group.\n","type":"string"},"status":{"description":"Node status information.\n","type":"string"},"storage":{"description":"Specifies the json string vary depending on CCE node pools storage options.\n> Please refer to the [documentation](https://docs.otc.t-systems.com/cloud-container-engine/api-ref/apis/cluster_management/querying_a_specified_node_pool.html#cce-02-0355-response-storage)\nfor actual fields.\n","type":"string"},"subnetId":{"description":"The ID of the subnet to which the NIC belongs. Changing this parameter will create a new resource.\n","type":"string"},"taints":{"description":"Taints to created nodes to configure anti-affinity.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCceNodePoolV3Taint:CceNodePoolV3Taint"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCceNodePoolV3Timeouts:CceNodePoolV3Timeouts"},"userTags":{"additionalProperties":{"type":"string"},"description":"Tag of a VM, key/value pair format.\n","type":"object"}},"required":["cceNodePoolV3Id","clusterId","dataVolumes","flavor","initialNodeCount","k8sTags","maxPods","name","os","postinstall","preinstall","rootVolume","runtime","securityGroupIds","status","subnetId"],"requiredInputs":["clusterId","dataVolumes","flavor","initialNodeCount","rootVolume"],"stateInputs":{"description":"Input properties used for looking up and filtering CceNodePoolV3 resources.\n","properties":{"agencyName":{"description":"IAM agency name. Changing this parameter will create a new resource.\n","type":"string"},"availabilityZone":{"description":"Specify the name of the available partition (AZ). If zone is not\nspecified than <span pulumi-lang-nodejs=\"`nodePool`\" pulumi-lang-dotnet=\"`NodePool`\" pulumi-lang-go=\"`nodePool`\" pulumi-lang-python=\"`node_pool`\" pulumi-lang-yaml=\"`nodePool`\" pulumi-lang-java=\"`nodePool`\">`node_pool`</span> will be in randomly selected AZ. The default value is <span pulumi-lang-nodejs=\"`random`\" pulumi-lang-dotnet=\"`Random`\" pulumi-lang-go=\"`random`\" pulumi-lang-python=\"`random`\" pulumi-lang-yaml=\"`random`\" pulumi-lang-java=\"`random`\">`random`</span>. Changing\nthis parameter will create a new resource.\n\n->\nIf AZ is set to <span pulumi-lang-nodejs=\"`random`\" pulumi-lang-dotnet=\"`Random`\" pulumi-lang-go=\"`random`\" pulumi-lang-python=\"`random`\" pulumi-lang-yaml=\"`random`\" pulumi-lang-java=\"`random`\">`random`</span>, when you create a node pool or update the number of nodes in a node pool, a scaling task is\ntriggered. The system selects an AZ from all AZs where scaling is allowed to add nodes based on priorities. AZs with a\nsmaller the number of existing nodes have a higher priority. If AZs have the same number of nodes, the system selects\nthe AZ based on the AZ sequence. For more details see\n[API documentation](https://docs.otc.t-systems.com/en-us/api2/cce/cce_02_0354.html#cce_02_0354__table620623542313)\n","type":"string"},"cceNodePoolV3Id":{"description":"Specifies a resource ID in UUID format.\n","type":"string"},"clusterId":{"description":"ID of the cluster. Changing this parameter will create a new resource.\n","type":"string"},"dataVolumes":{"description":"Represents the data disk to be created. Changing this parameter will create a new resource.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCceNodePoolV3DataVolume:CceNodePoolV3DataVolume"},"type":"array"},"dockerBaseSize":{"description":"Available disk space of a single Docker container on the node using the device mapper.\nChanging this parameter will create a new node pool.\n","type":"number"},"dockerLvmConfigOverride":{"description":"`ConfigMap` of the Docker data disk.\nChanging this parameter will create a new node.\n","type":"string"},"flavor":{"description":"Specifies the flavor id. Changing this parameter will create a new resource.\n","type":"string"},"initialNodeCount":{"description":"Initial number of expected nodes in the node pool.\n","type":"number"},"k8sTags":{"additionalProperties":{"type":"string"},"description":"Tags of a Kubernetes node, key/value pair format.\n","type":"object"},"keyPair":{"description":"Key pair name when logging in to select the key pair mode.\nThis parameter and password are alternative. Changing this parameter will create a new resource.\n","type":"string"},"maxNodeCount":{"description":"Maximum number of nodes allowed if auto scaling is enabled.\n","type":"number"},"maxPods":{"description":"The maximum number of instances a node is allowed to create.\nChanging this parameter will create a new node pool.\n","type":"number"},"minNodeCount":{"description":"Minimum number of nodes allowed if auto scaling is enabled.\n","type":"number"},"name":{"description":"Node Pool Name.\n","type":"string"},"os":{"description":"Node OS. Changing this parameter will create a new resource.\n\nSupported OS depends on kubernetes version of the cluster.\n| OS           | Kubernetes version |\n| :----------- | :----------------- |\n| HCE OS 2.0   | `v1.30`, `v1.29`, `v1.28`, `v1.27` |\n| Ubuntu 22.04 | `v1.30`, `v1.29`, `v1.28`, `v1.27` |\n| EulerOS release 2.9 | `v1.30`, `v1.29`, `v1.28`, `v1.27` |\n\nFor detailed information, visit the CCE node operating systems [reference document](https://docs.otc.t-systems.com/cloud-container-engine/umn/nodes/node_oss.html).\n","type":"string"},"password":{"description":"Password used for node login.\nThis parameter and password are alternative. Changing this parameter will create a new resource.\n> **NOTE:** This field is not supported for the current version.\n","secret":true,"type":"string"},"postinstall":{"description":"Script required after installation. The input value can be a Base64 encoded string or not.\nChanging this parameter will create a new resource.\n","type":"string"},"preinstall":{"description":"Script required before installation. The input value can be a Base64 encoded string or not.\nChanging this parameter will create a new resource.\n","type":"string"},"priority":{"description":"Weight of a node pool. A node pool with a higher weight has a higher priority during scaling.\n","type":"number"},"rootVolume":{"$ref":"#/types/opentelekomcloud:index%2FCceNodePoolV3RootVolume:CceNodePoolV3RootVolume","description":"It corresponds to the system disk related configuration. Changing this parameter will create a new resource.\n"},"runtime":{"description":"Container runtime. Changing this parameter will create a new resource.\nUse with high-caution, may trigger resource recreation. Options are:\n<span pulumi-lang-nodejs=\"`docker`\" pulumi-lang-dotnet=\"`Docker`\" pulumi-lang-go=\"`docker`\" pulumi-lang-python=\"`docker`\" pulumi-lang-yaml=\"`docker`\" pulumi-lang-java=\"`docker`\">`docker`</span> - Docker\n<span pulumi-lang-nodejs=\"`containerd`\" pulumi-lang-dotnet=\"`Containerd`\" pulumi-lang-go=\"`containerd`\" pulumi-lang-python=\"`containerd`\" pulumi-lang-yaml=\"`containerd`\" pulumi-lang-java=\"`containerd`\">`containerd`</span> - Containerd\n","type":"string"},"scaleDownCooldownTime":{"description":"Interval between two scaling operations, in minutes.\n","type":"number"},"scaleEnable":{"description":"Whether to enable auto scaling. If Autoscaler is enabled, install the autoscaler add-on to use the auto scaling feature.\n","type":"boolean"},"securityGroupIds":{"description":"Specifies the list of custom security group IDs for the node pool.\nIf specified, the nodes will be put in these security groups. When specifying a security group, do not modify\nthe rules of the port on which CCE running depends.\n","items":{"type":"string"},"type":"array"},"serverGroupReference":{"description":"ECS group ID. If this parameter is specified, all nodes in the node pool will be created in this ECS group.\n","type":"string"},"status":{"description":"Node status information.\n","type":"string"},"storage":{"description":"Specifies the json string vary depending on CCE node pools storage options.\n> Please refer to the [documentation](https://docs.otc.t-systems.com/cloud-container-engine/api-ref/apis/cluster_management/querying_a_specified_node_pool.html#cce-02-0355-response-storage)\nfor actual fields.\n","type":"string"},"subnetId":{"description":"The ID of the subnet to which the NIC belongs. Changing this parameter will create a new resource.\n","type":"string"},"taints":{"description":"Taints to created nodes to configure anti-affinity.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCceNodePoolV3Taint:CceNodePoolV3Taint"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCceNodePoolV3Timeouts:CceNodePoolV3Timeouts"},"userTags":{"additionalProperties":{"type":"string"},"description":"Tag of a VM, key/value pair format.\n","type":"object"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cceNodeV3:CceNodeV3":{"description":"Up-to-date reference of API arguments for CCE cluster node you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-container-engine/api-ref/apis/cluster_management)\n\nAdd a node to a container cluster.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst clusterId = config.requireObject<any>(\"clusterId\");\nconst sshKey = config.requireObject<any>(\"sshKey\");\nconst availabilityZone = config.requireObject<any>(\"availabilityZone\");\nconst node1 = new opentelekomcloud.CceNodeV3(\"node_1\", {\n    name: \"node1\",\n    clusterId: clusterId,\n    availabilityZone: availabilityZone,\n    os: \"EulerOS 2.9\",\n    flavorId: \"s2.large.2\",\n    keyPair: sshKey,\n    runtime: \"containerd\",\n    agencyName: \"test-agency\",\n    bandwidthSize: 100,\n    rootVolume: {\n        size: 40,\n        volumetype: \"SAS\",\n    },\n    dataVolumes: [\n        {\n            size: 100,\n            volumetype: \"SAS\",\n        },\n        {\n            size: 100,\n            volumetype: \"SSD\",\n            extendParams: {\n                useType: \"docker\",\n            },\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ncluster_id = config.require_object(\"clusterId\")\nssh_key = config.require_object(\"sshKey\")\navailability_zone = config.require_object(\"availabilityZone\")\nnode1 = opentelekomcloud.CceNodeV3(\"node_1\",\n    name=\"node1\",\n    cluster_id=cluster_id,\n    availability_zone=availability_zone,\n    os=\"EulerOS 2.9\",\n    flavor_id=\"s2.large.2\",\n    key_pair=ssh_key,\n    runtime=\"containerd\",\n    agency_name=\"test-agency\",\n    bandwidth_size=100,\n    root_volume={\n        \"size\": 40,\n        \"volumetype\": \"SAS\",\n    },\n    data_volumes=[\n        {\n            \"size\": 100,\n            \"volumetype\": \"SAS\",\n        },\n        {\n            \"size\": 100,\n            \"volumetype\": \"SSD\",\n            \"extend_params\": {\n                \"useType\": \"docker\",\n            },\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var clusterId = config.RequireObject<dynamic>(\"clusterId\");\n    var sshKey = config.RequireObject<dynamic>(\"sshKey\");\n    var availabilityZone = config.RequireObject<dynamic>(\"availabilityZone\");\n    var node1 = new Opentelekomcloud.CceNodeV3(\"node_1\", new()\n    {\n        Name = \"node1\",\n        ClusterId = clusterId,\n        AvailabilityZone = availabilityZone,\n        Os = \"EulerOS 2.9\",\n        FlavorId = \"s2.large.2\",\n        KeyPair = sshKey,\n        Runtime = \"containerd\",\n        AgencyName = \"test-agency\",\n        BandwidthSize = 100,\n        RootVolume = new Opentelekomcloud.Inputs.CceNodeV3RootVolumeArgs\n        {\n            Size = 40,\n            Volumetype = \"SAS\",\n        },\n        DataVolumes = new[]\n        {\n            new Opentelekomcloud.Inputs.CceNodeV3DataVolumeArgs\n            {\n                Size = 100,\n                Volumetype = \"SAS\",\n            },\n            new Opentelekomcloud.Inputs.CceNodeV3DataVolumeArgs\n            {\n                Size = 100,\n                Volumetype = \"SSD\",\n                ExtendParams = \n                {\n                    { \"useType\", \"docker\" },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tclusterId := cfg.RequireObject(\"clusterId\")\n\t\tsshKey := cfg.RequireObject(\"sshKey\")\n\t\tavailabilityZone := cfg.RequireObject(\"availabilityZone\")\n\t\t_, err := opentelekomcloud.NewCceNodeV3(ctx, \"node_1\", &opentelekomcloud.CceNodeV3Args{\n\t\t\tName:             pulumi.String(\"node1\"),\n\t\t\tClusterId:        pulumi.Any(clusterId),\n\t\t\tAvailabilityZone: pulumi.Any(availabilityZone),\n\t\t\tOs:               pulumi.String(\"EulerOS 2.9\"),\n\t\t\tFlavorId:         pulumi.String(\"s2.large.2\"),\n\t\t\tKeyPair:          pulumi.Any(sshKey),\n\t\t\tRuntime:          pulumi.String(\"containerd\"),\n\t\t\tAgencyName:       pulumi.String(\"test-agency\"),\n\t\t\tBandwidthSize:    pulumi.Float64(100),\n\t\t\tRootVolume: &opentelekomcloud.CceNodeV3RootVolumeArgs{\n\t\t\t\tSize:       pulumi.Float64(40),\n\t\t\t\tVolumetype: pulumi.String(\"SAS\"),\n\t\t\t},\n\t\t\tDataVolumes: opentelekomcloud.CceNodeV3DataVolumeArray{\n\t\t\t\t&opentelekomcloud.CceNodeV3DataVolumeArgs{\n\t\t\t\t\tSize:       pulumi.Float64(100),\n\t\t\t\t\tVolumetype: pulumi.String(\"SAS\"),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.CceNodeV3DataVolumeArgs{\n\t\t\t\t\tSize:       pulumi.Float64(100),\n\t\t\t\t\tVolumetype: pulumi.String(\"SSD\"),\n\t\t\t\t\tExtendParams: pulumi.StringMap{\n\t\t\t\t\t\t\"useType\": pulumi.String(\"docker\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CceNodeV3;\nimport com.pulumi.opentelekomcloud.CceNodeV3Args;\nimport com.pulumi.opentelekomcloud.inputs.CceNodeV3RootVolumeArgs;\nimport com.pulumi.opentelekomcloud.inputs.CceNodeV3DataVolumeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var clusterId = config.get(\"clusterId\");\n        final var sshKey = config.get(\"sshKey\");\n        final var availabilityZone = config.get(\"availabilityZone\");\n        var node1 = new CceNodeV3(\"node1\", CceNodeV3Args.builder()\n            .name(\"node1\")\n            .clusterId(clusterId)\n            .availabilityZone(availabilityZone)\n            .os(\"EulerOS 2.9\")\n            .flavorId(\"s2.large.2\")\n            .keyPair(sshKey)\n            .runtime(\"containerd\")\n            .agencyName(\"test-agency\")\n            .bandwidthSize(100.0)\n            .rootVolume(CceNodeV3RootVolumeArgs.builder()\n                .size(40.0)\n                .volumetype(\"SAS\")\n                .build())\n            .dataVolumes(            \n                CceNodeV3DataVolumeArgs.builder()\n                    .size(100.0)\n                    .volumetype(\"SAS\")\n                    .build(),\n                CceNodeV3DataVolumeArgs.builder()\n                    .size(100.0)\n                    .volumetype(\"SSD\")\n                    .extendParams(Map.of(\"useType\", \"docker\"))\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  clusterId:\n    type: dynamic\n  sshKey:\n    type: dynamic\n  availabilityZone:\n    type: dynamic\nresources:\n  node1:\n    type: opentelekomcloud:CceNodeV3\n    name: node_1\n    properties:\n      name: node1\n      clusterId: ${clusterId}\n      availabilityZone: ${availabilityZone}\n      os: EulerOS 2.9\n      flavorId: s2.large.2\n      keyPair: ${sshKey}\n      runtime: containerd\n      agencyName: test-agency\n      bandwidthSize: 100\n      rootVolume:\n        size: 40\n        volumetype: SAS\n      dataVolumes:\n        - size: 100\n          volumetype: SAS\n        - size: 100\n          volumetype: SSD\n          extendParams:\n            useType: docker\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCCE node can be imported using the cluster ID and node ID separated by a slash, e.g.:\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/cceNodeV3:CceNodeV3 my_node 5c20fdad-7288-11eb-b817-0255ac10158b/e9287dff-7288-11eb-b817-0255ac10158b\n```\n\nNote that the imported state may not be identical to your resource definition, due to some attributes missing from the\n\nAPI response, security or some other reason. The missing attributes include:\n\n`key_pair`, `private_ip`, `eip_id`, `iptype`, `bandwidth_charge_mode`,\n\n`bandwidth_size`, `share_type`, `extend_params`, `dedicated_host_id`, `labels`, `taints`\n\nand arguments for pre-paid. It is generally recommended running `pulumi preview` after importing a node.\n\nYou can then decide if changes should be applied to the node, or the resource definition should be updated to align\n\nwith the node. Also you can ignore changes as below.\n\nhcl\n\nresource \"opentelekomcloud_cce_node_v3\" \"my_node\" {\n\n  lifecycle {\n\n    ignore_changes = [\n\n      extend_params, labels,\n\n    ]\n\n  }\n\n}\n\n","inputProperties":{"agencyName":{"description":"IAM agency name. Changing this parameter will create a new resource.\n> **NOTE:** The IAM agency requires `tms:resourceTags:list` in order to properly read resource state.\n","type":"string"},"annotations":{"additionalProperties":{"type":"string"},"description":"Node annotation, key/value pair format. Changing this parameter will create a new resource\n","type":"object"},"availabilityZone":{"description":"specify the name of the available partition (AZ). Changing this parameter will create a new resource.\n","type":"string"},"bandwidthChargeMode":{"description":"Bandwidth billing type.\n","type":"string"},"bandwidthSize":{"description":"Bandwidth size.\n\n> If the <span pulumi-lang-nodejs=\"`bandwidthSize`\" pulumi-lang-dotnet=\"`BandwidthSize`\" pulumi-lang-go=\"`bandwidthSize`\" pulumi-lang-python=\"`bandwidth_size`\" pulumi-lang-yaml=\"`bandwidthSize`\" pulumi-lang-java=\"`bandwidthSize`\">`bandwidth_size`</span> parameter is configured, you do not need to configure the\n<span pulumi-lang-nodejs=\"`eipCount`\" pulumi-lang-dotnet=\"`EipCount`\" pulumi-lang-go=\"`eipCount`\" pulumi-lang-python=\"`eip_count`\" pulumi-lang-yaml=\"`eipCount`\" pulumi-lang-java=\"`eipCount`\">`eip_count`</span>, <span pulumi-lang-nodejs=\"`bandwidthChargeMode`\" pulumi-lang-dotnet=\"`BandwidthChargeMode`\" pulumi-lang-go=\"`bandwidthChargeMode`\" pulumi-lang-python=\"`bandwidth_charge_mode`\" pulumi-lang-yaml=\"`bandwidthChargeMode`\" pulumi-lang-java=\"`bandwidthChargeMode`\">`bandwidth_charge_mode`</span>, <span pulumi-lang-nodejs=\"`sharetype`\" pulumi-lang-dotnet=\"`Sharetype`\" pulumi-lang-go=\"`sharetype`\" pulumi-lang-python=\"`sharetype`\" pulumi-lang-yaml=\"`sharetype`\" pulumi-lang-java=\"`sharetype`\">`sharetype`</span> and <span pulumi-lang-nodejs=\"`iptype`\" pulumi-lang-dotnet=\"`Iptype`\" pulumi-lang-go=\"`iptype`\" pulumi-lang-python=\"`iptype`\" pulumi-lang-yaml=\"`iptype`\" pulumi-lang-java=\"`iptype`\">`iptype`</span> parameters.\n","type":"number"},"billingMode":{"description":"Node's billing mode: The value is <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (on demand). Changing this parameter will create a new resource.\n","type":"number"},"cceNodeV3Id":{"type":"string"},"clusterId":{"description":"ID of the cluster. Changing this parameter will create a new resource.\n","type":"string"},"dataVolumes":{"description":"Represents the data disk to be created. Changing this parameter will create a new resource.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCceNodeV3DataVolume:CceNodeV3DataVolume"},"type":"array"},"dedicatedHostId":{"description":"Specifies the ID of the DeH to which the node is scheduled.\n","type":"string"},"dockerBaseSize":{"description":"Available disk space of a single Docker container on the node using the device mapper.\nChanging this parameter will create a new node.\n","type":"number"},"dockerLvmConfigOverride":{"description":"`ConfigMap` of the Docker data disk.\nChanging this parameter will create a new node.\n\nExample:\n\n`dockerThinpool=vgpaas/90%VG;kubernetesLV=vgpaas/10%VG;diskType=evs;lvType=linear`\n\nIn this example:\n\n- `userLV`: size of the user space, for example, vgpaas/20%VG.\n- `userPath`: mount path of the user space, for example, /home/wqt-test.\n- `diskType`: disk type. Currently, only the evs, hdd, and ssd are supported.\n- `lvType`: type of a logic volume. Currently, the value can be linear or striped.\n- `dockerThinpool`: Docker space size, for example, vgpaas/60%VG.\n- `kubernetesLV`: kubelet space size, for example, vgpaas/20%VG.\n","type":"string"},"ecsPerformanceType":{"description":"Classification of cloud server specifications. Changing this parameter will create a new cluster resource.\n","type":"string"},"eipCount":{"description":"Number of elastic IPs to be dynamically created.\n","type":"number"},"eipIds":{"description":"List of existing elastic IP IDs.\n\n> If the <span pulumi-lang-nodejs=\"`eipIds`\" pulumi-lang-dotnet=\"`EipIds`\" pulumi-lang-go=\"`eipIds`\" pulumi-lang-python=\"`eip_ids`\" pulumi-lang-yaml=\"`eipIds`\" pulumi-lang-java=\"`eipIds`\">`eip_ids`</span> parameter is configured, you do not need to configure the <span pulumi-lang-nodejs=\"`eipCount`\" pulumi-lang-dotnet=\"`EipCount`\" pulumi-lang-go=\"`eipCount`\" pulumi-lang-python=\"`eip_count`\" pulumi-lang-yaml=\"`eipCount`\" pulumi-lang-java=\"`eipCount`\">`eip_count`</span> and <span pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\">`bandwidth`</span> parameters:\n<span pulumi-lang-nodejs=\"`iptype`\" pulumi-lang-dotnet=\"`Iptype`\" pulumi-lang-go=\"`iptype`\" pulumi-lang-python=\"`iptype`\" pulumi-lang-yaml=\"`iptype`\" pulumi-lang-java=\"`iptype`\">`iptype`</span>, <span pulumi-lang-nodejs=\"`bandwidthChargeMode`\" pulumi-lang-dotnet=\"`BandwidthChargeMode`\" pulumi-lang-go=\"`bandwidthChargeMode`\" pulumi-lang-python=\"`bandwidth_charge_mode`\" pulumi-lang-yaml=\"`bandwidthChargeMode`\" pulumi-lang-java=\"`bandwidthChargeMode`\">`bandwidth_charge_mode`</span>, <span pulumi-lang-nodejs=\"`bandwidthSize`\" pulumi-lang-dotnet=\"`BandwidthSize`\" pulumi-lang-go=\"`bandwidthSize`\" pulumi-lang-python=\"`bandwidth_size`\" pulumi-lang-yaml=\"`bandwidthSize`\" pulumi-lang-java=\"`bandwidthSize`\">`bandwidth_size`</span> and <span pulumi-lang-nodejs=\"`shareType`\" pulumi-lang-dotnet=\"`ShareType`\" pulumi-lang-go=\"`shareType`\" pulumi-lang-python=\"`share_type`\" pulumi-lang-yaml=\"`shareType`\" pulumi-lang-java=\"`shareType`\">`share_type`</span>.\n","items":{"type":"string"},"type":"array"},"extendParamChargingMode":{"description":"Node charging mode, 0 is on-demand charging. Changing this parameter will create a new cluster resource.\n","type":"number"},"flavorId":{"description":"Specifies the flavor id. Changing this parameter will create a new resource.\n","type":"string"},"iptype":{"description":"Elastic IP type.\n","type":"string"},"k8sTags":{"additionalProperties":{"type":"string"},"description":"Tags of a Kubernetes node, key/value pair format.\n","type":"object"},"keyPair":{"description":"Key pair name when logging in to select the key pair mode. Changing this parameter will create a new resource.\n","type":"string"},"labels":{"additionalProperties":{"type":"string"},"description":"Node tag, key/value pair format. Changing this parameter will create a new resource.\n","type":"object"},"maxPods":{"description":"The maximum number of instances a node is allowed to create. Changing this parameter will create a new node resource.\n","type":"number"},"name":{"description":"Node Name.\n","type":"string"},"orderId":{"description":"Order ID, mandatory when the node payment type is the automatic payment package period type.\nChanging this parameter will create a new cluster resource.\n","type":"string"},"os":{"description":"Node OS. Changing this parameter will create a new resource.\n\nSupported OS depends on kubernetes version of the cluster.\n| OS           | Kubernetes version |\n| :----------- | :----------------- |\n| HCE OS 2.0   | `v1.30`, `v1.29`, `v1.28`, `v1.27` |\n| Ubuntu 22.04 | `v1.30`, `v1.29`, `v1.28`, `v1.27` |\n| EulerOS release 2.9 | `v1.30`, `v1.29`, `v1.28`, `v1.27` |\n\nFor detailed information, visit the CCE node operating systems [reference document](https://docs.otc.t-systems.com/cloud-container-engine/umn/nodes/node_oss.html).\n","type":"string"},"postinstall":{"description":"Script required after installation. The input value can be a Base64 encoded string or not.\nChanging this parameter will create a new resource.\n","type":"string"},"preinstall":{"description":"Script required before installation. The input value can be a Base64 encoded string or not.\nChanging this parameter will create a new resource.\n","type":"string"},"privateIp":{"description":"Private IP of the CCE node. Changing this parameter will create a new resource.\n","type":"string"},"productId":{"description":"The Product ID. Changing this parameter will create a new cluster resource.\n","type":"string"},"publicKey":{"description":"The Public key. Changing this parameter will create a new cluster resource.\n","type":"string"},"region":{"type":"string"},"rootVolume":{"$ref":"#/types/opentelekomcloud:index%2FCceNodeV3RootVolume:CceNodeV3RootVolume","description":"It corresponds to the system disk related configuration. Changing this parameter will create a new resource.\n"},"runtime":{"description":"Container runtime. Changing this parameter will create a new resource.\nUse with high-caution, may trigger resource recreation. Options are:\n<span pulumi-lang-nodejs=\"`docker`\" pulumi-lang-dotnet=\"`Docker`\" pulumi-lang-go=\"`docker`\" pulumi-lang-python=\"`docker`\" pulumi-lang-yaml=\"`docker`\" pulumi-lang-java=\"`docker`\">`docker`</span> - Docker\n<span pulumi-lang-nodejs=\"`containerd`\" pulumi-lang-dotnet=\"`Containerd`\" pulumi-lang-go=\"`containerd`\" pulumi-lang-python=\"`containerd`\" pulumi-lang-yaml=\"`containerd`\" pulumi-lang-java=\"`containerd`\">`containerd`</span> - Containerd\n","type":"string"},"sharetype":{"description":"Bandwidth sharing type.\n","type":"string"},"subnetId":{"description":"The ID of the subnet to which the NIC belongs. Changing this parameter will create a new resource.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The field is alternative to <span pulumi-lang-nodejs=\"`labels`\" pulumi-lang-dotnet=\"`Labels`\" pulumi-lang-go=\"`labels`\" pulumi-lang-python=\"`labels`\" pulumi-lang-yaml=\"`labels`\" pulumi-lang-java=\"`labels`\">`labels`</span>, key/value pair format.\n","type":"object"},"taints":{"description":"Taints to created nodes to configure anti-affinity.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCceNodeV3Taint:CceNodeV3Taint"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCceNodeV3Timeouts:CceNodeV3Timeouts"}},"properties":{"agencyName":{"description":"IAM agency name. Changing this parameter will create a new resource.\n> **NOTE:** The IAM agency requires `tms:resourceTags:list` in order to properly read resource state.\n","type":"string"},"annotations":{"additionalProperties":{"type":"string"},"description":"Node annotation, key/value pair format. Changing this parameter will create a new resource\n","type":"object"},"availabilityZone":{"description":"specify the name of the available partition (AZ). Changing this parameter will create a new resource.\n","type":"string"},"bandwidthChargeMode":{"description":"Bandwidth billing type.\n","type":"string"},"bandwidthSize":{"description":"Bandwidth size.\n\n> If the <span pulumi-lang-nodejs=\"`bandwidthSize`\" pulumi-lang-dotnet=\"`BandwidthSize`\" pulumi-lang-go=\"`bandwidthSize`\" pulumi-lang-python=\"`bandwidth_size`\" pulumi-lang-yaml=\"`bandwidthSize`\" pulumi-lang-java=\"`bandwidthSize`\">`bandwidth_size`</span> parameter is configured, you do not need to configure the\n<span pulumi-lang-nodejs=\"`eipCount`\" pulumi-lang-dotnet=\"`EipCount`\" pulumi-lang-go=\"`eipCount`\" pulumi-lang-python=\"`eip_count`\" pulumi-lang-yaml=\"`eipCount`\" pulumi-lang-java=\"`eipCount`\">`eip_count`</span>, <span pulumi-lang-nodejs=\"`bandwidthChargeMode`\" pulumi-lang-dotnet=\"`BandwidthChargeMode`\" pulumi-lang-go=\"`bandwidthChargeMode`\" pulumi-lang-python=\"`bandwidth_charge_mode`\" pulumi-lang-yaml=\"`bandwidthChargeMode`\" pulumi-lang-java=\"`bandwidthChargeMode`\">`bandwidth_charge_mode`</span>, <span pulumi-lang-nodejs=\"`sharetype`\" pulumi-lang-dotnet=\"`Sharetype`\" pulumi-lang-go=\"`sharetype`\" pulumi-lang-python=\"`sharetype`\" pulumi-lang-yaml=\"`sharetype`\" pulumi-lang-java=\"`sharetype`\">`sharetype`</span> and <span pulumi-lang-nodejs=\"`iptype`\" pulumi-lang-dotnet=\"`Iptype`\" pulumi-lang-go=\"`iptype`\" pulumi-lang-python=\"`iptype`\" pulumi-lang-yaml=\"`iptype`\" pulumi-lang-java=\"`iptype`\">`iptype`</span> parameters.\n","type":"number"},"billingMode":{"description":"Node's billing mode: The value is <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (on demand). Changing this parameter will create a new resource.\n","type":"number"},"cceNodeV3Id":{"type":"string"},"clusterId":{"description":"ID of the cluster. Changing this parameter will create a new resource.\n","type":"string"},"dataVolumes":{"description":"Represents the data disk to be created. Changing this parameter will create a new resource.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCceNodeV3DataVolume:CceNodeV3DataVolume"},"type":"array"},"dedicatedHostId":{"description":"Specifies the ID of the DeH to which the node is scheduled.\n","type":"string"},"dockerBaseSize":{"description":"Available disk space of a single Docker container on the node using the device mapper.\nChanging this parameter will create a new node.\n","type":"number"},"dockerLvmConfigOverride":{"description":"`ConfigMap` of the Docker data disk.\nChanging this parameter will create a new node.\n\nExample:\n\n`dockerThinpool=vgpaas/90%VG;kubernetesLV=vgpaas/10%VG;diskType=evs;lvType=linear`\n\nIn this example:\n\n- `userLV`: size of the user space, for example, vgpaas/20%VG.\n- `userPath`: mount path of the user space, for example, /home/wqt-test.\n- `diskType`: disk type. Currently, only the evs, hdd, and ssd are supported.\n- `lvType`: type of a logic volume. Currently, the value can be linear or striped.\n- `dockerThinpool`: Docker space size, for example, vgpaas/60%VG.\n- `kubernetesLV`: kubelet space size, for example, vgpaas/20%VG.\n","type":"string"},"ecsPerformanceType":{"description":"Classification of cloud server specifications. Changing this parameter will create a new cluster resource.\n","type":"string"},"eipCount":{"description":"Number of elastic IPs to be dynamically created.\n","type":"number"},"eipIds":{"description":"List of existing elastic IP IDs.\n\n> If the <span pulumi-lang-nodejs=\"`eipIds`\" pulumi-lang-dotnet=\"`EipIds`\" pulumi-lang-go=\"`eipIds`\" pulumi-lang-python=\"`eip_ids`\" pulumi-lang-yaml=\"`eipIds`\" pulumi-lang-java=\"`eipIds`\">`eip_ids`</span> parameter is configured, you do not need to configure the <span pulumi-lang-nodejs=\"`eipCount`\" pulumi-lang-dotnet=\"`EipCount`\" pulumi-lang-go=\"`eipCount`\" pulumi-lang-python=\"`eip_count`\" pulumi-lang-yaml=\"`eipCount`\" pulumi-lang-java=\"`eipCount`\">`eip_count`</span> and <span pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\">`bandwidth`</span> parameters:\n<span pulumi-lang-nodejs=\"`iptype`\" pulumi-lang-dotnet=\"`Iptype`\" pulumi-lang-go=\"`iptype`\" pulumi-lang-python=\"`iptype`\" pulumi-lang-yaml=\"`iptype`\" pulumi-lang-java=\"`iptype`\">`iptype`</span>, <span pulumi-lang-nodejs=\"`bandwidthChargeMode`\" pulumi-lang-dotnet=\"`BandwidthChargeMode`\" pulumi-lang-go=\"`bandwidthChargeMode`\" pulumi-lang-python=\"`bandwidth_charge_mode`\" pulumi-lang-yaml=\"`bandwidthChargeMode`\" pulumi-lang-java=\"`bandwidthChargeMode`\">`bandwidth_charge_mode`</span>, <span pulumi-lang-nodejs=\"`bandwidthSize`\" pulumi-lang-dotnet=\"`BandwidthSize`\" pulumi-lang-go=\"`bandwidthSize`\" pulumi-lang-python=\"`bandwidth_size`\" pulumi-lang-yaml=\"`bandwidthSize`\" pulumi-lang-java=\"`bandwidthSize`\">`bandwidth_size`</span> and <span pulumi-lang-nodejs=\"`shareType`\" pulumi-lang-dotnet=\"`ShareType`\" pulumi-lang-go=\"`shareType`\" pulumi-lang-python=\"`share_type`\" pulumi-lang-yaml=\"`shareType`\" pulumi-lang-java=\"`shareType`\">`share_type`</span>.\n","items":{"type":"string"},"type":"array"},"extendParamChargingMode":{"description":"Node charging mode, 0 is on-demand charging. Changing this parameter will create a new cluster resource.\n","type":"number"},"flavorId":{"description":"Specifies the flavor id. Changing this parameter will create a new resource.\n","type":"string"},"iptype":{"description":"Elastic IP type.\n","type":"string"},"k8sTags":{"additionalProperties":{"type":"string"},"description":"Tags of a Kubernetes node, key/value pair format.\n","type":"object"},"keyPair":{"description":"Key pair name when logging in to select the key pair mode. Changing this parameter will create a new resource.\n","type":"string"},"labels":{"additionalProperties":{"type":"string"},"description":"Node tag, key/value pair format. Changing this parameter will create a new resource.\n","type":"object"},"maxPods":{"description":"The maximum number of instances a node is allowed to create. Changing this parameter will create a new node resource.\n","type":"number"},"name":{"description":"Node Name.\n","type":"string"},"orderId":{"description":"Order ID, mandatory when the node payment type is the automatic payment package period type.\nChanging this parameter will create a new cluster resource.\n","type":"string"},"os":{"description":"Node OS. Changing this parameter will create a new resource.\n\nSupported OS depends on kubernetes version of the cluster.\n| OS           | Kubernetes version |\n| :----------- | :----------------- |\n| HCE OS 2.0   | `v1.30`, `v1.29`, `v1.28`, `v1.27` |\n| Ubuntu 22.04 | `v1.30`, `v1.29`, `v1.28`, `v1.27` |\n| EulerOS release 2.9 | `v1.30`, `v1.29`, `v1.28`, `v1.27` |\n\nFor detailed information, visit the CCE node operating systems [reference document](https://docs.otc.t-systems.com/cloud-container-engine/umn/nodes/node_oss.html).\n","type":"string"},"postinstall":{"description":"Script required after installation. The input value can be a Base64 encoded string or not.\nChanging this parameter will create a new resource.\n","type":"string"},"preinstall":{"description":"Script required before installation. The input value can be a Base64 encoded string or not.\nChanging this parameter will create a new resource.\n","type":"string"},"privateIp":{"description":"Private IP of the CCE node. Changing this parameter will create a new resource.\n","type":"string"},"productId":{"description":"The Product ID. Changing this parameter will create a new cluster resource.\n","type":"string"},"publicIp":{"description":"Public IP of the CCE node.\n","type":"string"},"publicKey":{"description":"The Public key. Changing this parameter will create a new cluster resource.\n","type":"string"},"region":{"type":"string"},"rootVolume":{"$ref":"#/types/opentelekomcloud:index%2FCceNodeV3RootVolume:CceNodeV3RootVolume","description":"It corresponds to the system disk related configuration. Changing this parameter will create a new resource.\n"},"runtime":{"description":"Container runtime. Changing this parameter will create a new resource.\nUse with high-caution, may trigger resource recreation. Options are:\n<span pulumi-lang-nodejs=\"`docker`\" pulumi-lang-dotnet=\"`Docker`\" pulumi-lang-go=\"`docker`\" pulumi-lang-python=\"`docker`\" pulumi-lang-yaml=\"`docker`\" pulumi-lang-java=\"`docker`\">`docker`</span> - Docker\n<span pulumi-lang-nodejs=\"`containerd`\" pulumi-lang-dotnet=\"`Containerd`\" pulumi-lang-go=\"`containerd`\" pulumi-lang-python=\"`containerd`\" pulumi-lang-yaml=\"`containerd`\" pulumi-lang-java=\"`containerd`\">`containerd`</span> - Containerd\n","type":"string"},"serverId":{"description":"ID of the ECS where the node resides.\n","type":"string"},"sharetype":{"description":"Bandwidth sharing type.\n","type":"string"},"status":{"description":"Node status information.\n","type":"string"},"subnetId":{"description":"The ID of the subnet to which the NIC belongs. Changing this parameter will create a new resource.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The field is alternative to <span pulumi-lang-nodejs=\"`labels`\" pulumi-lang-dotnet=\"`Labels`\" pulumi-lang-go=\"`labels`\" pulumi-lang-python=\"`labels`\" pulumi-lang-yaml=\"`labels`\" pulumi-lang-java=\"`labels`\">`labels`</span>, key/value pair format.\n","type":"object"},"taints":{"description":"Taints to created nodes to configure anti-affinity.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCceNodeV3Taint:CceNodeV3Taint"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCceNodeV3Timeouts:CceNodeV3Timeouts"}},"required":["availabilityZone","bandwidthChargeMode","billingMode","cceNodeV3Id","clusterId","dataVolumes","eipCount","flavorId","iptype","k8sTags","keyPair","name","os","privateIp","publicIp","region","rootVolume","runtime","serverId","sharetype","status","subnetId"],"requiredInputs":["availabilityZone","clusterId","dataVolumes","flavorId","keyPair","rootVolume"],"stateInputs":{"description":"Input properties used for looking up and filtering CceNodeV3 resources.\n","properties":{"agencyName":{"description":"IAM agency name. Changing this parameter will create a new resource.\n> **NOTE:** The IAM agency requires `tms:resourceTags:list` in order to properly read resource state.\n","type":"string"},"annotations":{"additionalProperties":{"type":"string"},"description":"Node annotation, key/value pair format. Changing this parameter will create a new resource\n","type":"object"},"availabilityZone":{"description":"specify the name of the available partition (AZ). Changing this parameter will create a new resource.\n","type":"string"},"bandwidthChargeMode":{"description":"Bandwidth billing type.\n","type":"string"},"bandwidthSize":{"description":"Bandwidth size.\n\n> If the <span pulumi-lang-nodejs=\"`bandwidthSize`\" pulumi-lang-dotnet=\"`BandwidthSize`\" pulumi-lang-go=\"`bandwidthSize`\" pulumi-lang-python=\"`bandwidth_size`\" pulumi-lang-yaml=\"`bandwidthSize`\" pulumi-lang-java=\"`bandwidthSize`\">`bandwidth_size`</span> parameter is configured, you do not need to configure the\n<span pulumi-lang-nodejs=\"`eipCount`\" pulumi-lang-dotnet=\"`EipCount`\" pulumi-lang-go=\"`eipCount`\" pulumi-lang-python=\"`eip_count`\" pulumi-lang-yaml=\"`eipCount`\" pulumi-lang-java=\"`eipCount`\">`eip_count`</span>, <span pulumi-lang-nodejs=\"`bandwidthChargeMode`\" pulumi-lang-dotnet=\"`BandwidthChargeMode`\" pulumi-lang-go=\"`bandwidthChargeMode`\" pulumi-lang-python=\"`bandwidth_charge_mode`\" pulumi-lang-yaml=\"`bandwidthChargeMode`\" pulumi-lang-java=\"`bandwidthChargeMode`\">`bandwidth_charge_mode`</span>, <span pulumi-lang-nodejs=\"`sharetype`\" pulumi-lang-dotnet=\"`Sharetype`\" pulumi-lang-go=\"`sharetype`\" pulumi-lang-python=\"`sharetype`\" pulumi-lang-yaml=\"`sharetype`\" pulumi-lang-java=\"`sharetype`\">`sharetype`</span> and <span pulumi-lang-nodejs=\"`iptype`\" pulumi-lang-dotnet=\"`Iptype`\" pulumi-lang-go=\"`iptype`\" pulumi-lang-python=\"`iptype`\" pulumi-lang-yaml=\"`iptype`\" pulumi-lang-java=\"`iptype`\">`iptype`</span> parameters.\n","type":"number"},"billingMode":{"description":"Node's billing mode: The value is <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (on demand). Changing this parameter will create a new resource.\n","type":"number"},"cceNodeV3Id":{"type":"string"},"clusterId":{"description":"ID of the cluster. Changing this parameter will create a new resource.\n","type":"string"},"dataVolumes":{"description":"Represents the data disk to be created. Changing this parameter will create a new resource.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCceNodeV3DataVolume:CceNodeV3DataVolume"},"type":"array"},"dedicatedHostId":{"description":"Specifies the ID of the DeH to which the node is scheduled.\n","type":"string"},"dockerBaseSize":{"description":"Available disk space of a single Docker container on the node using the device mapper.\nChanging this parameter will create a new node.\n","type":"number"},"dockerLvmConfigOverride":{"description":"`ConfigMap` of the Docker data disk.\nChanging this parameter will create a new node.\n\nExample:\n\n`dockerThinpool=vgpaas/90%VG;kubernetesLV=vgpaas/10%VG;diskType=evs;lvType=linear`\n\nIn this example:\n\n- `userLV`: size of the user space, for example, vgpaas/20%VG.\n- `userPath`: mount path of the user space, for example, /home/wqt-test.\n- `diskType`: disk type. Currently, only the evs, hdd, and ssd are supported.\n- `lvType`: type of a logic volume. Currently, the value can be linear or striped.\n- `dockerThinpool`: Docker space size, for example, vgpaas/60%VG.\n- `kubernetesLV`: kubelet space size, for example, vgpaas/20%VG.\n","type":"string"},"ecsPerformanceType":{"description":"Classification of cloud server specifications. Changing this parameter will create a new cluster resource.\n","type":"string"},"eipCount":{"description":"Number of elastic IPs to be dynamically created.\n","type":"number"},"eipIds":{"description":"List of existing elastic IP IDs.\n\n> If the <span pulumi-lang-nodejs=\"`eipIds`\" pulumi-lang-dotnet=\"`EipIds`\" pulumi-lang-go=\"`eipIds`\" pulumi-lang-python=\"`eip_ids`\" pulumi-lang-yaml=\"`eipIds`\" pulumi-lang-java=\"`eipIds`\">`eip_ids`</span> parameter is configured, you do not need to configure the <span pulumi-lang-nodejs=\"`eipCount`\" pulumi-lang-dotnet=\"`EipCount`\" pulumi-lang-go=\"`eipCount`\" pulumi-lang-python=\"`eip_count`\" pulumi-lang-yaml=\"`eipCount`\" pulumi-lang-java=\"`eipCount`\">`eip_count`</span> and <span pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\">`bandwidth`</span> parameters:\n<span pulumi-lang-nodejs=\"`iptype`\" pulumi-lang-dotnet=\"`Iptype`\" pulumi-lang-go=\"`iptype`\" pulumi-lang-python=\"`iptype`\" pulumi-lang-yaml=\"`iptype`\" pulumi-lang-java=\"`iptype`\">`iptype`</span>, <span pulumi-lang-nodejs=\"`bandwidthChargeMode`\" pulumi-lang-dotnet=\"`BandwidthChargeMode`\" pulumi-lang-go=\"`bandwidthChargeMode`\" pulumi-lang-python=\"`bandwidth_charge_mode`\" pulumi-lang-yaml=\"`bandwidthChargeMode`\" pulumi-lang-java=\"`bandwidthChargeMode`\">`bandwidth_charge_mode`</span>, <span pulumi-lang-nodejs=\"`bandwidthSize`\" pulumi-lang-dotnet=\"`BandwidthSize`\" pulumi-lang-go=\"`bandwidthSize`\" pulumi-lang-python=\"`bandwidth_size`\" pulumi-lang-yaml=\"`bandwidthSize`\" pulumi-lang-java=\"`bandwidthSize`\">`bandwidth_size`</span> and <span pulumi-lang-nodejs=\"`shareType`\" pulumi-lang-dotnet=\"`ShareType`\" pulumi-lang-go=\"`shareType`\" pulumi-lang-python=\"`share_type`\" pulumi-lang-yaml=\"`shareType`\" pulumi-lang-java=\"`shareType`\">`share_type`</span>.\n","items":{"type":"string"},"type":"array"},"extendParamChargingMode":{"description":"Node charging mode, 0 is on-demand charging. Changing this parameter will create a new cluster resource.\n","type":"number"},"flavorId":{"description":"Specifies the flavor id. Changing this parameter will create a new resource.\n","type":"string"},"iptype":{"description":"Elastic IP type.\n","type":"string"},"k8sTags":{"additionalProperties":{"type":"string"},"description":"Tags of a Kubernetes node, key/value pair format.\n","type":"object"},"keyPair":{"description":"Key pair name when logging in to select the key pair mode. Changing this parameter will create a new resource.\n","type":"string"},"labels":{"additionalProperties":{"type":"string"},"description":"Node tag, key/value pair format. Changing this parameter will create a new resource.\n","type":"object"},"maxPods":{"description":"The maximum number of instances a node is allowed to create. Changing this parameter will create a new node resource.\n","type":"number"},"name":{"description":"Node Name.\n","type":"string"},"orderId":{"description":"Order ID, mandatory when the node payment type is the automatic payment package period type.\nChanging this parameter will create a new cluster resource.\n","type":"string"},"os":{"description":"Node OS. Changing this parameter will create a new resource.\n\nSupported OS depends on kubernetes version of the cluster.\n| OS           | Kubernetes version |\n| :----------- | :----------------- |\n| HCE OS 2.0   | `v1.30`, `v1.29`, `v1.28`, `v1.27` |\n| Ubuntu 22.04 | `v1.30`, `v1.29`, `v1.28`, `v1.27` |\n| EulerOS release 2.9 | `v1.30`, `v1.29`, `v1.28`, `v1.27` |\n\nFor detailed information, visit the CCE node operating systems [reference document](https://docs.otc.t-systems.com/cloud-container-engine/umn/nodes/node_oss.html).\n","type":"string"},"postinstall":{"description":"Script required after installation. The input value can be a Base64 encoded string or not.\nChanging this parameter will create a new resource.\n","type":"string"},"preinstall":{"description":"Script required before installation. The input value can be a Base64 encoded string or not.\nChanging this parameter will create a new resource.\n","type":"string"},"privateIp":{"description":"Private IP of the CCE node. Changing this parameter will create a new resource.\n","type":"string"},"productId":{"description":"The Product ID. Changing this parameter will create a new cluster resource.\n","type":"string"},"publicIp":{"description":"Public IP of the CCE node.\n","type":"string"},"publicKey":{"description":"The Public key. Changing this parameter will create a new cluster resource.\n","type":"string"},"region":{"type":"string"},"rootVolume":{"$ref":"#/types/opentelekomcloud:index%2FCceNodeV3RootVolume:CceNodeV3RootVolume","description":"It corresponds to the system disk related configuration. Changing this parameter will create a new resource.\n"},"runtime":{"description":"Container runtime. Changing this parameter will create a new resource.\nUse with high-caution, may trigger resource recreation. Options are:\n<span pulumi-lang-nodejs=\"`docker`\" pulumi-lang-dotnet=\"`Docker`\" pulumi-lang-go=\"`docker`\" pulumi-lang-python=\"`docker`\" pulumi-lang-yaml=\"`docker`\" pulumi-lang-java=\"`docker`\">`docker`</span> - Docker\n<span pulumi-lang-nodejs=\"`containerd`\" pulumi-lang-dotnet=\"`Containerd`\" pulumi-lang-go=\"`containerd`\" pulumi-lang-python=\"`containerd`\" pulumi-lang-yaml=\"`containerd`\" pulumi-lang-java=\"`containerd`\">`containerd`</span> - Containerd\n","type":"string"},"serverId":{"description":"ID of the ECS where the node resides.\n","type":"string"},"sharetype":{"description":"Bandwidth sharing type.\n","type":"string"},"status":{"description":"Node status information.\n","type":"string"},"subnetId":{"description":"The ID of the subnet to which the NIC belongs. Changing this parameter will create a new resource.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The field is alternative to <span pulumi-lang-nodejs=\"`labels`\" pulumi-lang-dotnet=\"`Labels`\" pulumi-lang-go=\"`labels`\" pulumi-lang-python=\"`labels`\" pulumi-lang-yaml=\"`labels`\" pulumi-lang-java=\"`labels`\">`labels`</span>, key/value pair format.\n","type":"object"},"taints":{"description":"Taints to created nodes to configure anti-affinity.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCceNodeV3Taint:CceNodeV3Taint"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCceNodeV3Timeouts:CceNodeV3Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cciConfigmapV2:CciConfigmapV2":{"description":"Up-to-date reference of API arguments for CCI ConfigMap you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-container-instance/api-ref/proprietary_apis/index.html)\n\nManages a CCI v2 ConfigMap resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Basic ConfigMap\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = new opentelekomcloud.CciConfigmapV2(\"test\", {\n    namespace: testOpentelekomcloudCciNamespaceV2.name,\n    name: \"my-configmap\",\n    data: {\n        \"app.properties\": `debug=false\nlog_level=info`,\n        timeout: \"30s\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.CciConfigmapV2(\"test\",\n    namespace=test_opentelekomcloud_cci_namespace_v2[\"name\"],\n    name=\"my-configmap\",\n    data={\n        \"app.properties\": \"\"\"debug=false\nlog_level=info\"\"\",\n        \"timeout\": \"30s\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = new Opentelekomcloud.CciConfigmapV2(\"test\", new()\n    {\n        Namespace = testOpentelekomcloudCciNamespaceV2.Name,\n        Name = \"my-configmap\",\n        Data = \n        {\n            { \"app.properties\", @\"debug=false\nlog_level=info\" },\n            { \"timeout\", \"30s\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewCciConfigmapV2(ctx, \"test\", &opentelekomcloud.CciConfigmapV2Args{\n\t\t\tNamespace: pulumi.Any(testOpentelekomcloudCciNamespaceV2.Name),\n\t\t\tName:      pulumi.String(\"my-configmap\"),\n\t\t\tData: pulumi.StringMap{\n\t\t\t\t\"app.properties\": pulumi.String(\"debug=false\\nlog_level=info\"),\n\t\t\t\t\"timeout\":        pulumi.String(\"30s\"),\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.opentelekomcloud.CciConfigmapV2;\nimport com.pulumi.opentelekomcloud.CciConfigmapV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new CciConfigmapV2(\"test\", CciConfigmapV2Args.builder()\n            .namespace(testOpentelekomcloudCciNamespaceV2.name())\n            .name(\"my-configmap\")\n            .data(Map.ofEntries(\n                Map.entry(\"app.properties\", \"\"\"\ndebug=false\nlog_level=info                \"\"\"),\n                Map.entry(\"timeout\", \"30s\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: opentelekomcloud:CciConfigmapV2\n    properties:\n      namespace: ${testOpentelekomcloudCciNamespaceV2.name}\n      name: my-configmap\n      data:\n        app.properties: |-\n          debug=false\n          log_level=info\n        timeout: 30s\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe CCI v2 ConfigMap can be imported using `namespace` and `name`, separated by a slash, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/cciConfigmapV2:CciConfigmapV2 test <namespace>/<name>\n```\n\n","inputProperties":{"binaryData":{"additionalProperties":{"type":"string"},"description":"Specifies the binary data of the CCI ConfigMap.\nEach value must be a base64-encoded string.\n","type":"object"},"cciConfigmapV2Id":{"description":"The resource ID in format `<namespace>/<name>`.\n","type":"string"},"data":{"additionalProperties":{"type":"string"},"description":"Specifies the configuration data of the CCI ConfigMap.\nEach value must be a UTF-8 string.\n","type":"object"},"name":{"description":"Specifies the name of the CCI ConfigMap.\n","type":"string"},"namespace":{"description":"Specifies the namespace of the CCI ConfigMap.\n","type":"string"}},"properties":{"annotations":{"additionalProperties":{"type":"string"},"description":"The annotations of the CCI ConfigMap.\n","type":"object"},"apiVersion":{"description":"The API version of the CCI ConfigMap.\n","type":"string"},"binaryData":{"additionalProperties":{"type":"string"},"description":"Specifies the binary data of the CCI ConfigMap.\nEach value must be a base64-encoded string.\n","type":"object"},"cciConfigmapV2Id":{"description":"The resource ID in format `<namespace>/<name>`.\n","type":"string"},"creationTimestamp":{"description":"The creation timestamp of the CCI ConfigMap.\n","type":"string"},"data":{"additionalProperties":{"type":"string"},"description":"Specifies the configuration data of the CCI ConfigMap.\nEach value must be a UTF-8 string.\n","type":"object"},"immutable":{"description":"Whether the CCI ConfigMap is immutable.\n","type":"boolean"},"kind":{"description":"The kind of the CCI ConfigMap.\n","type":"string"},"labels":{"additionalProperties":{"type":"string"},"description":"The labels of the CCI ConfigMap.\n","type":"object"},"name":{"description":"Specifies the name of the CCI ConfigMap.\n","type":"string"},"namespace":{"description":"Specifies the namespace of the CCI ConfigMap.\n","type":"string"},"region":{"description":"The region of the CCI ConfigMap.\n","type":"string"},"resourceVersion":{"description":"The resource version of the CCI ConfigMap.\n","type":"string"},"uid":{"description":"The UID of the CCI ConfigMap.\n","type":"string"}},"required":["annotations","apiVersion","binaryData","cciConfigmapV2Id","creationTimestamp","data","immutable","kind","labels","name","namespace","region","resourceVersion","uid"],"requiredInputs":["namespace"],"stateInputs":{"description":"Input properties used for looking up and filtering CciConfigmapV2 resources.\n","properties":{"annotations":{"additionalProperties":{"type":"string"},"description":"The annotations of the CCI ConfigMap.\n","type":"object"},"apiVersion":{"description":"The API version of the CCI ConfigMap.\n","type":"string"},"binaryData":{"additionalProperties":{"type":"string"},"description":"Specifies the binary data of the CCI ConfigMap.\nEach value must be a base64-encoded string.\n","type":"object"},"cciConfigmapV2Id":{"description":"The resource ID in format `<namespace>/<name>`.\n","type":"string"},"creationTimestamp":{"description":"The creation timestamp of the CCI ConfigMap.\n","type":"string"},"data":{"additionalProperties":{"type":"string"},"description":"Specifies the configuration data of the CCI ConfigMap.\nEach value must be a UTF-8 string.\n","type":"object"},"immutable":{"description":"Whether the CCI ConfigMap is immutable.\n","type":"boolean"},"kind":{"description":"The kind of the CCI ConfigMap.\n","type":"string"},"labels":{"additionalProperties":{"type":"string"},"description":"The labels of the CCI ConfigMap.\n","type":"object"},"name":{"description":"Specifies the name of the CCI ConfigMap.\n","type":"string"},"namespace":{"description":"Specifies the namespace of the CCI ConfigMap.\n","type":"string"},"region":{"description":"The region of the CCI ConfigMap.\n","type":"string"},"resourceVersion":{"description":"The resource version of the CCI ConfigMap.\n","type":"string"},"uid":{"description":"The UID of the CCI ConfigMap.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cciNamespaceV2:CciNamespaceV2":{"description":"Up-to-date reference of API arguments for CCI namespace you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-container-instance/api-ref/proprietary_apis/index.html)\n\nManages a CCI v2 namespace resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst name = config.requireObject<any>(\"name\");\nconst test = new opentelekomcloud.CciNamespaceV2(\"test\", {name: name});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nname = config.require_object(\"name\")\ntest = opentelekomcloud.CciNamespaceV2(\"test\", name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var name = config.RequireObject<dynamic>(\"name\");\n    var test = new Opentelekomcloud.CciNamespaceV2(\"test\", new()\n    {\n        Name = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := cfg.RequireObject(\"name\")\n\t\t_, err := opentelekomcloud.NewCciNamespaceV2(ctx, \"test\", &opentelekomcloud.CciNamespaceV2Args{\n\t\t\tName: pulumi.Any(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CciNamespaceV2;\nimport com.pulumi.opentelekomcloud.CciNamespaceV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\");\n        var test = new CciNamespaceV2(\"test\", CciNamespaceV2Args.builder()\n            .name(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:CciNamespaceV2\n    properties:\n      name: ${name}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe CCI v2 namespace can be imported using `name`, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/cciNamespaceV2:CciNamespaceV2 test <name>\n```\n\n","inputProperties":{"cciNamespaceV2Id":{"description":"The resource ID. The value is also the name of the namespace.\n","type":"string"},"name":{"description":"Specifies the unique name of the namespace.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCciNamespaceV2Timeouts:CciNamespaceV2Timeouts"}},"properties":{"annotations":{"additionalProperties":{"type":"string"},"description":"The annotations of the namespace.\n","type":"object"},"apiVersion":{"description":"The API version of the namespace.\n","type":"string"},"cciNamespaceV2Id":{"description":"The resource ID. The value is also the name of the namespace.\n","type":"string"},"creationTimestamp":{"description":"The creation timestamp of the namespace.\n","type":"string"},"finalizers":{"description":"The finalizers of the namespace.\n","items":{"type":"string"},"type":"array"},"kind":{"description":"The kind of the namespace.\n","type":"string"},"labels":{"additionalProperties":{"type":"string"},"description":"The labels of the namespace.\n","type":"object"},"name":{"description":"Specifies the unique name of the namespace.\n","type":"string"},"region":{"description":"The region of the namespace\n","type":"string"},"resourceVersion":{"description":"The resource version of the namespace.\n","type":"string"},"status":{"description":"The status of the namespace.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCciNamespaceV2Timeouts:CciNamespaceV2Timeouts"},"uid":{"description":"The uid of the namespace.\n","type":"string"}},"required":["annotations","apiVersion","cciNamespaceV2Id","creationTimestamp","finalizers","kind","labels","name","region","resourceVersion","status","uid"],"stateInputs":{"description":"Input properties used for looking up and filtering CciNamespaceV2 resources.\n","properties":{"annotations":{"additionalProperties":{"type":"string"},"description":"The annotations of the namespace.\n","type":"object"},"apiVersion":{"description":"The API version of the namespace.\n","type":"string"},"cciNamespaceV2Id":{"description":"The resource ID. The value is also the name of the namespace.\n","type":"string"},"creationTimestamp":{"description":"The creation timestamp of the namespace.\n","type":"string"},"finalizers":{"description":"The finalizers of the namespace.\n","items":{"type":"string"},"type":"array"},"kind":{"description":"The kind of the namespace.\n","type":"string"},"labels":{"additionalProperties":{"type":"string"},"description":"The labels of the namespace.\n","type":"object"},"name":{"description":"Specifies the unique name of the namespace.\n","type":"string"},"region":{"description":"The region of the namespace\n","type":"string"},"resourceVersion":{"description":"The resource version of the namespace.\n","type":"string"},"status":{"description":"The status of the namespace.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCciNamespaceV2Timeouts:CciNamespaceV2Timeouts"},"uid":{"description":"The uid of the namespace.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cciNetworkV2:CciNetworkV2":{"description":"Up-to-date reference of API arguments for CCI network you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-container-instance/api-ref/proprietary_apis/index.html)\n\nManages a CCI Network resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst namespace = config.requireObject<any>(\"namespace\");\nconst name = config.requireObject<any>(\"name\");\nconst projectId = config.requireObject<any>(\"projectId\");\nconst domainId = config.requireObject<any>(\"domainId\");\nconst subnetId = config.requireObject<any>(\"subnetId\");\nconst securityGroupId = config.requireObject<any>(\"securityGroupId\");\nconst test = new opentelekomcloud.CciNetworkV2(\"test\", {\n    namespace: namespace,\n    name: name,\n    annotations: {\n        \"yangtse.io/project-id\": projectId,\n        \"yangtse.io/domain-id\": domainId,\n        \"yangtse.io/warm-pool-size\": \"10\",\n        \"yangtse.io/warm-pool-recycle-interval\": \"2\",\n    },\n    subnets: [{\n        subnetId: subnetId,\n    }],\n    securityGroupIds: [securityGroupId],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nnamespace = config.require_object(\"namespace\")\nname = config.require_object(\"name\")\nproject_id = config.require_object(\"projectId\")\ndomain_id = config.require_object(\"domainId\")\nsubnet_id = config.require_object(\"subnetId\")\nsecurity_group_id = config.require_object(\"securityGroupId\")\ntest = opentelekomcloud.CciNetworkV2(\"test\",\n    namespace=namespace,\n    name=name,\n    annotations={\n        \"yangtse.io/project-id\": project_id,\n        \"yangtse.io/domain-id\": domain_id,\n        \"yangtse.io/warm-pool-size\": \"10\",\n        \"yangtse.io/warm-pool-recycle-interval\": \"2\",\n    },\n    subnets=[{\n        \"subnet_id\": subnet_id,\n    }],\n    security_group_ids=[security_group_id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var @namespace = config.RequireObject<dynamic>(\"namespace\");\n    var name = config.RequireObject<dynamic>(\"name\");\n    var projectId = config.RequireObject<dynamic>(\"projectId\");\n    var domainId = config.RequireObject<dynamic>(\"domainId\");\n    var subnetId = config.RequireObject<dynamic>(\"subnetId\");\n    var securityGroupId = config.RequireObject<dynamic>(\"securityGroupId\");\n    var test = new Opentelekomcloud.CciNetworkV2(\"test\", new()\n    {\n        Namespace = @namespace,\n        Name = name,\n        Annotations = \n        {\n            { \"yangtse.io/project-id\", projectId },\n            { \"yangtse.io/domain-id\", domainId },\n            { \"yangtse.io/warm-pool-size\", \"10\" },\n            { \"yangtse.io/warm-pool-recycle-interval\", \"2\" },\n        },\n        Subnets = new[]\n        {\n            new Opentelekomcloud.Inputs.CciNetworkV2SubnetArgs\n            {\n                SubnetId = subnetId,\n            },\n        },\n        SecurityGroupIds = new[]\n        {\n            securityGroupId,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tnamespace := cfg.RequireObject(\"namespace\")\n\t\tname := cfg.RequireObject(\"name\")\n\t\tprojectId := cfg.RequireObject(\"projectId\")\n\t\tdomainId := cfg.RequireObject(\"domainId\")\n\t\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\tsecurityGroupId := cfg.RequireObject(\"securityGroupId\")\n\t\t_, err := opentelekomcloud.NewCciNetworkV2(ctx, \"test\", &opentelekomcloud.CciNetworkV2Args{\n\t\t\tNamespace: pulumi.Any(namespace),\n\t\t\tName:      pulumi.Any(name),\n\t\t\tAnnotations: pulumi.StringMap{\n\t\t\t\t\"yangtse.io/project-id\":                 pulumi.Any(projectId),\n\t\t\t\t\"yangtse.io/domain-id\":                  pulumi.Any(domainId),\n\t\t\t\t\"yangtse.io/warm-pool-size\":             pulumi.String(\"10\"),\n\t\t\t\t\"yangtse.io/warm-pool-recycle-interval\": pulumi.String(\"2\"),\n\t\t\t},\n\t\t\tSubnets: opentelekomcloud.CciNetworkV2SubnetArray{\n\t\t\t\t&opentelekomcloud.CciNetworkV2SubnetArgs{\n\t\t\t\t\tSubnetId: pulumi.Any(subnetId),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tsecurityGroupId,\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.opentelekomcloud.CciNetworkV2;\nimport com.pulumi.opentelekomcloud.CciNetworkV2Args;\nimport com.pulumi.opentelekomcloud.inputs.CciNetworkV2SubnetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var namespace = config.get(\"namespace\");\n        final var name = config.get(\"name\");\n        final var projectId = config.get(\"projectId\");\n        final var domainId = config.get(\"domainId\");\n        final var subnetId = config.get(\"subnetId\");\n        final var securityGroupId = config.get(\"securityGroupId\");\n        var test = new CciNetworkV2(\"test\", CciNetworkV2Args.builder()\n            .namespace(namespace)\n            .name(name)\n            .annotations(Map.ofEntries(\n                Map.entry(\"yangtse.io/project-id\", projectId),\n                Map.entry(\"yangtse.io/domain-id\", domainId),\n                Map.entry(\"yangtse.io/warm-pool-size\", \"10\"),\n                Map.entry(\"yangtse.io/warm-pool-recycle-interval\", \"2\")\n            ))\n            .subnets(CciNetworkV2SubnetArgs.builder()\n                .subnetId(subnetId)\n                .build())\n            .securityGroupIds(securityGroupId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  namespace:\n    type: dynamic\n  name:\n    type: dynamic\n  projectId:\n    type: dynamic\n  domainId:\n    type: dynamic\n  subnetId:\n    type: dynamic\n  securityGroupId:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:CciNetworkV2\n    properties:\n      namespace: ${namespace}\n      name: ${name}\n      annotations:\n        yangtse.io/project-id: ${projectId}\n        yangtse.io/domain-id: ${domainId}\n        yangtse.io/warm-pool-size: '10'\n        yangtse.io/warm-pool-recycle-interval: '2'\n      subnets:\n        - subnetId: ${subnetId}\n      securityGroupIds:\n        - ${securityGroupId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe CCI Network can be imported using `namespace` and `name`, separated by a slash, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/cciNetworkV2:CciNetworkV2 test <namespace>/<name>\n```\n\n","inputProperties":{"annotations":{"additionalProperties":{"type":"string"},"description":"Specifies the annotations of the CCI network.\nAnnotations is an unstructured key value map that may be set by external tools to store and retrieve arbitrary\nmetadata.\n","type":"object"},"cciNetworkV2Id":{"description":"The resource ID in format `<namespace>/<name>`.\n","type":"string"},"ipFamilies":{"description":"Specifies the IP families of the CCI network.\nThe value can be `IPv4` or `IPv6`. When IPv6 is enabled, the value can be `[\"IPv4\", \"IPv6\"]`.\nChanging this creates a new resource.\n","items":{"type":"string"},"type":"array"},"name":{"description":"Specifies the name of the CCI network.\nChanging this creates a new resource.\n","type":"string"},"namespace":{"description":"Specifies the namespace of the CCI network.\nChanging this creates a new resource.\n","type":"string"},"securityGroupIds":{"description":"Specifies the security group IDs of the CCI network.\n","items":{"type":"string"},"type":"array"},"subnets":{"description":"Specifies the subnets of the CCI network.\nChanging this creates a new resource.\nThe subnets structure is documented below.\n\n<a name=<span pulumi-lang-nodejs=\"\"blockSubnets\"\" pulumi-lang-dotnet=\"\"BlockSubnets\"\" pulumi-lang-go=\"\"blockSubnets\"\" pulumi-lang-python=\"\"block_subnets\"\" pulumi-lang-yaml=\"\"blockSubnets\"\" pulumi-lang-java=\"\"blockSubnets\"\">\"block_subnets\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`subnets`\" pulumi-lang-dotnet=\"`Subnets`\" pulumi-lang-go=\"`subnets`\" pulumi-lang-python=\"`subnets`\" pulumi-lang-yaml=\"`subnets`\" pulumi-lang-java=\"`subnets`\">`subnets`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCciNetworkV2Subnet:CciNetworkV2Subnet"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCciNetworkV2Timeouts:CciNetworkV2Timeouts"}},"properties":{"annotations":{"additionalProperties":{"type":"string"},"description":"Specifies the annotations of the CCI network.\nAnnotations is an unstructured key value map that may be set by external tools to store and retrieve arbitrary\nmetadata.\n","type":"object"},"apiVersion":{"description":"The API version of the CCI network.\n","type":"string"},"cciNetworkV2Id":{"description":"The resource ID in format `<namespace>/<name>`.\n","type":"string"},"creationTimestamp":{"description":"The creation timestamp of the CCI network. The value is in RFC3339 format and is in UTC.\n","type":"string"},"finalizers":{"description":"The finalizers of the CCI network. Must be empty before the object is deleted from the registry.\n","items":{"type":"string"},"type":"array"},"ipFamilies":{"description":"Specifies the IP families of the CCI network.\nThe value can be `IPv4` or `IPv6`. When IPv6 is enabled, the value can be `[\"IPv4\", \"IPv6\"]`.\nChanging this creates a new resource.\n","items":{"type":"string"},"type":"array"},"kind":{"description":"The kind of the CCI network.\n","type":"string"},"name":{"description":"Specifies the name of the CCI network.\nChanging this creates a new resource.\n","type":"string"},"namespace":{"description":"Specifies the namespace of the CCI network.\nChanging this creates a new resource.\n","type":"string"},"region":{"description":"The region of the CCI network.\n","type":"string"},"resourceVersion":{"description":"The resource version of the CCI network.\n","type":"string"},"securityGroupIds":{"description":"Specifies the security group IDs of the CCI network.\n","items":{"type":"string"},"type":"array"},"statuses":{"description":"The status of the CCI network condition. The value can be `True`, `False`, or `Unknown`.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCciNetworkV2Status:CciNetworkV2Status"},"type":"array"},"subnets":{"description":"Specifies the subnets of the CCI network.\nChanging this creates a new resource.\nThe subnets structure is documented below.\n\n<a name=<span pulumi-lang-nodejs=\"\"blockSubnets\"\" pulumi-lang-dotnet=\"\"BlockSubnets\"\" pulumi-lang-go=\"\"blockSubnets\"\" pulumi-lang-python=\"\"block_subnets\"\" pulumi-lang-yaml=\"\"blockSubnets\"\" pulumi-lang-java=\"\"blockSubnets\"\">\"block_subnets\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`subnets`\" pulumi-lang-dotnet=\"`Subnets`\" pulumi-lang-go=\"`subnets`\" pulumi-lang-python=\"`subnets`\" pulumi-lang-yaml=\"`subnets`\" pulumi-lang-java=\"`subnets`\">`subnets`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCciNetworkV2Subnet:CciNetworkV2Subnet"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCciNetworkV2Timeouts:CciNetworkV2Timeouts"},"uid":{"description":"The uid of the CCI network.\n","type":"string"}},"required":["annotations","apiVersion","cciNetworkV2Id","creationTimestamp","finalizers","kind","name","namespace","region","resourceVersion","statuses","uid"],"requiredInputs":["namespace"],"stateInputs":{"description":"Input properties used for looking up and filtering CciNetworkV2 resources.\n","properties":{"annotations":{"additionalProperties":{"type":"string"},"description":"Specifies the annotations of the CCI network.\nAnnotations is an unstructured key value map that may be set by external tools to store and retrieve arbitrary\nmetadata.\n","type":"object"},"apiVersion":{"description":"The API version of the CCI network.\n","type":"string"},"cciNetworkV2Id":{"description":"The resource ID in format `<namespace>/<name>`.\n","type":"string"},"creationTimestamp":{"description":"The creation timestamp of the CCI network. The value is in RFC3339 format and is in UTC.\n","type":"string"},"finalizers":{"description":"The finalizers of the CCI network. Must be empty before the object is deleted from the registry.\n","items":{"type":"string"},"type":"array"},"ipFamilies":{"description":"Specifies the IP families of the CCI network.\nThe value can be `IPv4` or `IPv6`. When IPv6 is enabled, the value can be `[\"IPv4\", \"IPv6\"]`.\nChanging this creates a new resource.\n","items":{"type":"string"},"type":"array"},"kind":{"description":"The kind of the CCI network.\n","type":"string"},"name":{"description":"Specifies the name of the CCI network.\nChanging this creates a new resource.\n","type":"string"},"namespace":{"description":"Specifies the namespace of the CCI network.\nChanging this creates a new resource.\n","type":"string"},"region":{"description":"The region of the CCI network.\n","type":"string"},"resourceVersion":{"description":"The resource version of the CCI network.\n","type":"string"},"securityGroupIds":{"description":"Specifies the security group IDs of the CCI network.\n","items":{"type":"string"},"type":"array"},"statuses":{"description":"The status of the CCI network condition. The value can be `True`, `False`, or `Unknown`.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCciNetworkV2Status:CciNetworkV2Status"},"type":"array"},"subnets":{"description":"Specifies the subnets of the CCI network.\nChanging this creates a new resource.\nThe subnets structure is documented below.\n\n<a name=<span pulumi-lang-nodejs=\"\"blockSubnets\"\" pulumi-lang-dotnet=\"\"BlockSubnets\"\" pulumi-lang-go=\"\"blockSubnets\"\" pulumi-lang-python=\"\"block_subnets\"\" pulumi-lang-yaml=\"\"blockSubnets\"\" pulumi-lang-java=\"\"blockSubnets\"\">\"block_subnets\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`subnets`\" pulumi-lang-dotnet=\"`Subnets`\" pulumi-lang-go=\"`subnets`\" pulumi-lang-python=\"`subnets`\" pulumi-lang-yaml=\"`subnets`\" pulumi-lang-java=\"`subnets`\">`subnets`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCciNetworkV2Subnet:CciNetworkV2Subnet"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCciNetworkV2Timeouts:CciNetworkV2Timeouts"},"uid":{"description":"The uid of the CCI network.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cciPodV2:CciPodV2":{"description":"Up-to-date reference of API arguments for CCI pod you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-container-instance/api-ref/proprietary_apis/index.html)\n\nManages a CCI v2 Pod resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = new opentelekomcloud.CciPodV2(\"test\", {\n    namespace: exampleOpentelekomcloudCciNamespaceV2.name,\n    name: \"my-pod\",\n    annotations: {\n        \"resource.cci.io/pod-size-specs\": \"2.00_4.0\",\n        \"resource.cci.io/instance-type\": \"general-computing\",\n    },\n    containers: [{\n        name: \"nginx\",\n        image: \"swr.eu-de.otc.t-systems.com/cce-1.25/nginx:1.25.3-alpine\",\n        resources: {\n            limits: {\n                cpu: \"2\",\n                memory: \"4G\",\n            },\n            requests: {\n                cpu: \"2\",\n                memory: \"4G\",\n            },\n        },\n    }],\n    imagePullSecrets: [{\n        name: \"imagepull-secret\",\n    }],\n}, {\n    dependsOn: [example],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.CciPodV2(\"test\",\n    namespace=example_opentelekomcloud_cci_namespace_v2[\"name\"],\n    name=\"my-pod\",\n    annotations={\n        \"resource.cci.io/pod-size-specs\": \"2.00_4.0\",\n        \"resource.cci.io/instance-type\": \"general-computing\",\n    },\n    containers=[{\n        \"name\": \"nginx\",\n        \"image\": \"swr.eu-de.otc.t-systems.com/cce-1.25/nginx:1.25.3-alpine\",\n        \"resources\": {\n            \"limits\": {\n                \"cpu\": \"2\",\n                \"memory\": \"4G\",\n            },\n            \"requests\": {\n                \"cpu\": \"2\",\n                \"memory\": \"4G\",\n            },\n        },\n    }],\n    image_pull_secrets=[{\n        \"name\": \"imagepull-secret\",\n    }],\n    opts = pulumi.ResourceOptions(depends_on=[example]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = new Opentelekomcloud.CciPodV2(\"test\", new()\n    {\n        Namespace = exampleOpentelekomcloudCciNamespaceV2.Name,\n        Name = \"my-pod\",\n        Annotations = \n        {\n            { \"resource.cci.io/pod-size-specs\", \"2.00_4.0\" },\n            { \"resource.cci.io/instance-type\", \"general-computing\" },\n        },\n        Containers = new[]\n        {\n            new Opentelekomcloud.Inputs.CciPodV2ContainerArgs\n            {\n                Name = \"nginx\",\n                Image = \"swr.eu-de.otc.t-systems.com/cce-1.25/nginx:1.25.3-alpine\",\n                Resources = new Opentelekomcloud.Inputs.CciPodV2ContainerResourcesArgs\n                {\n                    Limits = \n                    {\n                        { \"cpu\", \"2\" },\n                        { \"memory\", \"4G\" },\n                    },\n                    Requests = \n                    {\n                        { \"cpu\", \"2\" },\n                        { \"memory\", \"4G\" },\n                    },\n                },\n            },\n        },\n        ImagePullSecrets = new[]\n        {\n            new Opentelekomcloud.Inputs.CciPodV2ImagePullSecretArgs\n            {\n                Name = \"imagepull-secret\",\n            },\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            example,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewCciPodV2(ctx, \"test\", &opentelekomcloud.CciPodV2Args{\n\t\t\tNamespace: pulumi.Any(exampleOpentelekomcloudCciNamespaceV2.Name),\n\t\t\tName:      pulumi.String(\"my-pod\"),\n\t\t\tAnnotations: pulumi.StringMap{\n\t\t\t\t\"resource.cci.io/pod-size-specs\": pulumi.String(\"2.00_4.0\"),\n\t\t\t\t\"resource.cci.io/instance-type\":  pulumi.String(\"general-computing\"),\n\t\t\t},\n\t\t\tContainers: opentelekomcloud.CciPodV2ContainerArray{\n\t\t\t\t&opentelekomcloud.CciPodV2ContainerArgs{\n\t\t\t\t\tName:  pulumi.String(\"nginx\"),\n\t\t\t\t\tImage: pulumi.String(\"swr.eu-de.otc.t-systems.com/cce-1.25/nginx:1.25.3-alpine\"),\n\t\t\t\t\tResources: &opentelekomcloud.CciPodV2ContainerResourcesArgs{\n\t\t\t\t\t\tLimits: pulumi.StringMap{\n\t\t\t\t\t\t\t\"cpu\":    pulumi.String(\"2\"),\n\t\t\t\t\t\t\t\"memory\": pulumi.String(\"4G\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tRequests: pulumi.StringMap{\n\t\t\t\t\t\t\t\"cpu\":    pulumi.String(\"2\"),\n\t\t\t\t\t\t\t\"memory\": pulumi.String(\"4G\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tImagePullSecrets: opentelekomcloud.CciPodV2ImagePullSecretArray{\n\t\t\t\t&opentelekomcloud.CciPodV2ImagePullSecretArgs{\n\t\t\t\t\tName: pulumi.String(\"imagepull-secret\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texample,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CciPodV2;\nimport com.pulumi.opentelekomcloud.CciPodV2Args;\nimport com.pulumi.opentelekomcloud.inputs.CciPodV2ContainerArgs;\nimport com.pulumi.opentelekomcloud.inputs.CciPodV2ContainerResourcesArgs;\nimport com.pulumi.opentelekomcloud.inputs.CciPodV2ImagePullSecretArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new CciPodV2(\"test\", CciPodV2Args.builder()\n            .namespace(exampleOpentelekomcloudCciNamespaceV2.name())\n            .name(\"my-pod\")\n            .annotations(Map.ofEntries(\n                Map.entry(\"resource.cci.io/pod-size-specs\", \"2.00_4.0\"),\n                Map.entry(\"resource.cci.io/instance-type\", \"general-computing\")\n            ))\n            .containers(CciPodV2ContainerArgs.builder()\n                .name(\"nginx\")\n                .image(\"swr.eu-de.otc.t-systems.com/cce-1.25/nginx:1.25.3-alpine\")\n                .resources(CciPodV2ContainerResourcesArgs.builder()\n                    .limits(Map.ofEntries(\n                        Map.entry(\"cpu\", \"2\"),\n                        Map.entry(\"memory\", \"4G\")\n                    ))\n                    .requests(Map.ofEntries(\n                        Map.entry(\"cpu\", \"2\"),\n                        Map.entry(\"memory\", \"4G\")\n                    ))\n                    .build())\n                .build())\n            .imagePullSecrets(CciPodV2ImagePullSecretArgs.builder()\n                .name(\"imagepull-secret\")\n                .build())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(example)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: opentelekomcloud:CciPodV2\n    properties:\n      namespace: ${exampleOpentelekomcloudCciNamespaceV2.name}\n      name: my-pod\n      annotations:\n        resource.cci.io/pod-size-specs: 2.00_4.0\n        resource.cci.io/instance-type: general-computing\n      containers:\n        - name: nginx\n          image: swr.eu-de.otc.t-systems.com/cce-1.25/nginx:1.25.3-alpine\n          resources:\n            limits:\n              cpu: 2\n              memory: 4G\n            requests:\n              cpu: 2\n              memory: 4G\n      imagePullSecrets:\n        - name: imagepull-secret\n    options:\n      dependsOn:\n        - ${example}\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"activeDeadlineSeconds":{"description":"Specifies the active deadline seconds for the pod.\n","type":"number"},"affinity":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2Affinity:CciPodV2Affinity","description":"Specifies the affinity scheduling rules of the CCI pod.\nChanging this creates a new resource.\nThe affinity structure is documented below.\n"},"annotations":{"additionalProperties":{"type":"string"},"description":"Specifies the annotations of the CCI pod.\n","type":"object"},"cciPodV2Id":{"description":"The resource ID in format `<namespace>/<name>`.\n","type":"string"},"containers":{"description":"Specifies the containers of the CCI pod.\nOnly <span pulumi-lang-nodejs=\"`image`\" pulumi-lang-dotnet=\"`Image`\" pulumi-lang-go=\"`image`\" pulumi-lang-python=\"`image`\" pulumi-lang-yaml=\"`image`\" pulumi-lang-java=\"`image`\">`image`</span> can be updated in-place; changing other container fields will trigger re-creation.\nThe containers structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2Container:CciPodV2Container"},"type":"array"},"dnsConfig":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2DnsConfig:CciPodV2DnsConfig","description":"Specifies the DNS configuration of the pod.\nChanging this creates a new resource.\nThe<span pulumi-lang-nodejs=\" dnsConfig \" pulumi-lang-dotnet=\" DnsConfig \" pulumi-lang-go=\" dnsConfig \" pulumi-lang-python=\" dns_config \" pulumi-lang-yaml=\" dnsConfig \" pulumi-lang-java=\" dnsConfig \"> dns_config </span>structure is documented below.\n"},"dnsPolicy":{"description":"Specifies the DNS policy of the pod.\nValid values are `ClusterFirst`, `ClusterFirstWithHostNet`, `Default`, or `None`.\nChanging this creates a new resource.\n","type":"string"},"ephemeralContainers":{"description":"Specifies the ephemeral containers of the CCI pod.\nChanging this creates a new resource.\nThe<span pulumi-lang-nodejs=\" ephemeralContainers \" pulumi-lang-dotnet=\" EphemeralContainers \" pulumi-lang-go=\" ephemeralContainers \" pulumi-lang-python=\" ephemeral_containers \" pulumi-lang-yaml=\" ephemeralContainers \" pulumi-lang-java=\" ephemeralContainers \"> ephemeral_containers </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2EphemeralContainer:CciPodV2EphemeralContainer"},"type":"array"},"hostAliases":{"description":"Specifies the host aliases of the CCI pod.\nChanging this creates a new resource.\nThe<span pulumi-lang-nodejs=\" hostAliases \" pulumi-lang-dotnet=\" HostAliases \" pulumi-lang-go=\" hostAliases \" pulumi-lang-python=\" host_aliases \" pulumi-lang-yaml=\" hostAliases \" pulumi-lang-java=\" hostAliases \"> host_aliases </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2HostAlias:CciPodV2HostAlias"},"type":"array"},"hostname":{"description":"Specifies the hostname of the pod.\nChanging this creates a new resource.\n","type":"string"},"imagePullSecrets":{"description":"Specifies the image pull secrets of the pod.\nChanging this creates a new resource.\nThe<span pulumi-lang-nodejs=\" imagePullSecrets \" pulumi-lang-dotnet=\" ImagePullSecrets \" pulumi-lang-go=\" imagePullSecrets \" pulumi-lang-python=\" image_pull_secrets \" pulumi-lang-yaml=\" imagePullSecrets \" pulumi-lang-java=\" imagePullSecrets \"> image_pull_secrets </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2ImagePullSecret:CciPodV2ImagePullSecret"},"type":"array"},"initContainers":{"description":"Specifies the init containers of the CCI pod.\nOnly <span pulumi-lang-nodejs=\"`image`\" pulumi-lang-dotnet=\"`Image`\" pulumi-lang-go=\"`image`\" pulumi-lang-python=\"`image`\" pulumi-lang-yaml=\"`image`\" pulumi-lang-java=\"`image`\">`image`</span> can be updated in-place; changing other fields will trigger re-creation.\nThe<span pulumi-lang-nodejs=\" initContainers \" pulumi-lang-dotnet=\" InitContainers \" pulumi-lang-go=\" initContainers \" pulumi-lang-python=\" init_containers \" pulumi-lang-yaml=\" initContainers \" pulumi-lang-java=\" initContainers \"> init_containers </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2InitContainer:CciPodV2InitContainer"},"type":"array"},"labels":{"additionalProperties":{"type":"string"},"description":"Specifies the labels of the CCI pod.\n","type":"object"},"name":{"description":"Specifies the name of the Secret.\n","type":"string"},"namespace":{"description":"Specifies the namespace of the CCI pod.\nChanging this creates a new resource.\n","type":"string"},"nodeName":{"description":"Specifies the node name of the CCI pod.\nChanging this creates a new resource.\n","type":"string"},"overhead":{"additionalProperties":{"type":"string"},"description":"Specifies the overhead resources of the CCI pod.\nChanging this creates a new resource.\n","type":"object"},"readinessGates":{"description":"Specifies the readiness gates of the CCI pod.\nChanging this creates a new resource.\nThe<span pulumi-lang-nodejs=\" readinessGates \" pulumi-lang-dotnet=\" ReadinessGates \" pulumi-lang-go=\" readinessGates \" pulumi-lang-python=\" readiness_gates \" pulumi-lang-yaml=\" readinessGates \" pulumi-lang-java=\" readinessGates \"> readiness_gates </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2ReadinessGate:CciPodV2ReadinessGate"},"type":"array"},"restartPolicy":{"description":"The restart policy for all containers within the pod.\nValid values are `Always`, `Never`, or `OnFailure`.\nChanging this creates a new resource.\n","type":"string"},"schedulerName":{"description":"Specifies the scheduler name of the CCI pod.\nChanging this creates a new resource.\n","type":"string"},"securityContext":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2SecurityContext:CciPodV2SecurityContext","description":"Specifies the security context.\nThe<span pulumi-lang-nodejs=\" securityContext \" pulumi-lang-dotnet=\" SecurityContext \" pulumi-lang-go=\" securityContext \" pulumi-lang-python=\" security_context \" pulumi-lang-yaml=\" securityContext \" pulumi-lang-java=\" securityContext \"> security_context </span>structure is documented below.\n"},"setHostnameAsFqdn":{"description":"Specifies whether the pod hostname is configured\nas the pod FQDN. Changing this creates a new resource.\n","type":"boolean"},"shareProcessNamespace":{"description":"Specifies whether to share a single process namespace\nbetween all containers in a pod. Changing this creates a new resource.\n","type":"boolean"},"terminationGracePeriodSeconds":{"description":"Specifies the grace period in seconds before\nthe pod is forcefully terminated when the probe fails.\n\n<a name=<span pulumi-lang-nodejs=\"\"execAction\"\" pulumi-lang-dotnet=\"\"ExecAction\"\" pulumi-lang-go=\"\"execAction\"\" pulumi-lang-python=\"\"exec_action\"\" pulumi-lang-yaml=\"\"execAction\"\" pulumi-lang-java=\"\"execAction\"\">\"exec_action\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`exec`\" pulumi-lang-dotnet=\"`Exec`\" pulumi-lang-go=\"`exec`\" pulumi-lang-python=\"`exec`\" pulumi-lang-yaml=\"`exec`\" pulumi-lang-java=\"`exec`\">`exec`</span> block supports:\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2Timeouts:CciPodV2Timeouts"},"volumes":{"description":"Specifies the volumes of the CCI pod.\nChanging this creates a new resource.\nThe volumes structure is documented below.\n\n<a name=\"containers\"></a>\nThe <span pulumi-lang-nodejs=\"`containers`\" pulumi-lang-dotnet=\"`Containers`\" pulumi-lang-go=\"`containers`\" pulumi-lang-python=\"`containers`\" pulumi-lang-yaml=\"`containers`\" pulumi-lang-java=\"`containers`\">`containers`</span> and <span pulumi-lang-nodejs=\"`initContainers`\" pulumi-lang-dotnet=\"`InitContainers`\" pulumi-lang-go=\"`initContainers`\" pulumi-lang-python=\"`init_containers`\" pulumi-lang-yaml=\"`initContainers`\" pulumi-lang-java=\"`initContainers`\">`init_containers`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2Volume:CciPodV2Volume"},"type":"array"}},"properties":{"activeDeadlineSeconds":{"description":"Specifies the active deadline seconds for the pod.\n","type":"number"},"affinity":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2Affinity:CciPodV2Affinity","description":"Specifies the affinity scheduling rules of the CCI pod.\nChanging this creates a new resource.\nThe affinity structure is documented below.\n"},"annotations":{"additionalProperties":{"type":"string"},"description":"Specifies the annotations of the CCI pod.\n","type":"object"},"apiVersion":{"description":"Specifies the API version of the field path.\n\n<a name=<span pulumi-lang-nodejs=\"\"downwardApiResourceFieldRef\"\" pulumi-lang-dotnet=\"\"DownwardApiResourceFieldRef\"\" pulumi-lang-go=\"\"downwardApiResourceFieldRef\"\" pulumi-lang-python=\"\"downward_api_resource_field_ref\"\" pulumi-lang-yaml=\"\"downwardApiResourceFieldRef\"\" pulumi-lang-java=\"\"downwardApiResourceFieldRef\"\">\"downward_api_resource_field_ref\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`resourceFieldRef`\" pulumi-lang-dotnet=\"`ResourceFieldRef`\" pulumi-lang-go=\"`resourceFieldRef`\" pulumi-lang-python=\"`resource_field_ref`\" pulumi-lang-yaml=\"`resourceFieldRef`\" pulumi-lang-java=\"`resourceFieldRef`\">`resource_field_ref`</span> block supports:\n","type":"string"},"cciPodV2Id":{"description":"The resource ID in format `<namespace>/<name>`.\n","type":"string"},"containers":{"description":"Specifies the containers of the CCI pod.\nOnly <span pulumi-lang-nodejs=\"`image`\" pulumi-lang-dotnet=\"`Image`\" pulumi-lang-go=\"`image`\" pulumi-lang-python=\"`image`\" pulumi-lang-yaml=\"`image`\" pulumi-lang-java=\"`image`\">`image`</span> can be updated in-place; changing other container fields will trigger re-creation.\nThe containers structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2Container:CciPodV2Container"},"type":"array"},"creationTimestamp":{"description":"The creation timestamp of the CCI pod.\n","type":"string"},"dnsConfig":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2DnsConfig:CciPodV2DnsConfig","description":"Specifies the DNS configuration of the pod.\nChanging this creates a new resource.\nThe<span pulumi-lang-nodejs=\" dnsConfig \" pulumi-lang-dotnet=\" DnsConfig \" pulumi-lang-go=\" dnsConfig \" pulumi-lang-python=\" dns_config \" pulumi-lang-yaml=\" dnsConfig \" pulumi-lang-java=\" dnsConfig \"> dns_config </span>structure is documented below.\n"},"dnsPolicy":{"description":"Specifies the DNS policy of the pod.\nValid values are `ClusterFirst`, `ClusterFirstWithHostNet`, `Default`, or `None`.\nChanging this creates a new resource.\n","type":"string"},"ephemeralContainers":{"description":"Specifies the ephemeral containers of the CCI pod.\nChanging this creates a new resource.\nThe<span pulumi-lang-nodejs=\" ephemeralContainers \" pulumi-lang-dotnet=\" EphemeralContainers \" pulumi-lang-go=\" ephemeralContainers \" pulumi-lang-python=\" ephemeral_containers \" pulumi-lang-yaml=\" ephemeralContainers \" pulumi-lang-java=\" ephemeralContainers \"> ephemeral_containers </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2EphemeralContainer:CciPodV2EphemeralContainer"},"type":"array"},"finalizers":{"description":"The finalizers of the CCI pod.\n","items":{"type":"string"},"type":"array"},"hostAliases":{"description":"Specifies the host aliases of the CCI pod.\nChanging this creates a new resource.\nThe<span pulumi-lang-nodejs=\" hostAliases \" pulumi-lang-dotnet=\" HostAliases \" pulumi-lang-go=\" hostAliases \" pulumi-lang-python=\" host_aliases \" pulumi-lang-yaml=\" hostAliases \" pulumi-lang-java=\" hostAliases \"> host_aliases </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2HostAlias:CciPodV2HostAlias"},"type":"array"},"hostname":{"description":"Specifies the hostname of the pod.\nChanging this creates a new resource.\n","type":"string"},"imagePullSecrets":{"description":"Specifies the image pull secrets of the pod.\nChanging this creates a new resource.\nThe<span pulumi-lang-nodejs=\" imagePullSecrets \" pulumi-lang-dotnet=\" ImagePullSecrets \" pulumi-lang-go=\" imagePullSecrets \" pulumi-lang-python=\" image_pull_secrets \" pulumi-lang-yaml=\" imagePullSecrets \" pulumi-lang-java=\" imagePullSecrets \"> image_pull_secrets </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2ImagePullSecret:CciPodV2ImagePullSecret"},"type":"array"},"initContainers":{"description":"Specifies the init containers of the CCI pod.\nOnly <span pulumi-lang-nodejs=\"`image`\" pulumi-lang-dotnet=\"`Image`\" pulumi-lang-go=\"`image`\" pulumi-lang-python=\"`image`\" pulumi-lang-yaml=\"`image`\" pulumi-lang-java=\"`image`\">`image`</span> can be updated in-place; changing other fields will trigger re-creation.\nThe<span pulumi-lang-nodejs=\" initContainers \" pulumi-lang-dotnet=\" InitContainers \" pulumi-lang-go=\" initContainers \" pulumi-lang-python=\" init_containers \" pulumi-lang-yaml=\" initContainers \" pulumi-lang-java=\" initContainers \"> init_containers </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2InitContainer:CciPodV2InitContainer"},"type":"array"},"kind":{"description":"The kind of the CCI pod.\n","type":"string"},"labels":{"additionalProperties":{"type":"string"},"description":"Specifies the labels of the CCI pod.\n","type":"object"},"name":{"description":"Specifies the name of the Secret.\n","type":"string"},"namespace":{"description":"Specifies the namespace of the CCI pod.\nChanging this creates a new resource.\n","type":"string"},"nodeName":{"description":"Specifies the node name of the CCI pod.\nChanging this creates a new resource.\n","type":"string"},"overhead":{"additionalProperties":{"type":"string"},"description":"Specifies the overhead resources of the CCI pod.\nChanging this creates a new resource.\n","type":"object"},"readinessGates":{"description":"Specifies the readiness gates of the CCI pod.\nChanging this creates a new resource.\nThe<span pulumi-lang-nodejs=\" readinessGates \" pulumi-lang-dotnet=\" ReadinessGates \" pulumi-lang-go=\" readinessGates \" pulumi-lang-python=\" readiness_gates \" pulumi-lang-yaml=\" readinessGates \" pulumi-lang-java=\" readinessGates \"> readiness_gates </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2ReadinessGate:CciPodV2ReadinessGate"},"type":"array"},"region":{"description":"The region of the CCI pod.\n","type":"string"},"resourceVersion":{"description":"The resource version of the CCI pod.\n","type":"string"},"restartPolicy":{"description":"The restart policy for all containers within the pod.\nValid values are `Always`, `Never`, or `OnFailure`.\nChanging this creates a new resource.\n","type":"string"},"schedulerName":{"description":"Specifies the scheduler name of the CCI pod.\nChanging this creates a new resource.\n","type":"string"},"securityContext":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2SecurityContext:CciPodV2SecurityContext","description":"Specifies the security context.\nThe<span pulumi-lang-nodejs=\" securityContext \" pulumi-lang-dotnet=\" SecurityContext \" pulumi-lang-go=\" securityContext \" pulumi-lang-python=\" security_context \" pulumi-lang-yaml=\" securityContext \" pulumi-lang-java=\" securityContext \"> security_context </span>structure is documented below.\n"},"setHostnameAsFqdn":{"description":"Specifies whether the pod hostname is configured\nas the pod FQDN. Changing this creates a new resource.\n","type":"boolean"},"shareProcessNamespace":{"description":"Specifies whether to share a single process namespace\nbetween all containers in a pod. Changing this creates a new resource.\n","type":"boolean"},"statuses":{"description":"The status of the condition.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2Status:CciPodV2Status"},"type":"array"},"terminationGracePeriodSeconds":{"description":"Specifies the grace period in seconds before\nthe pod is forcefully terminated when the probe fails.\n\n<a name=<span pulumi-lang-nodejs=\"\"execAction\"\" pulumi-lang-dotnet=\"\"ExecAction\"\" pulumi-lang-go=\"\"execAction\"\" pulumi-lang-python=\"\"exec_action\"\" pulumi-lang-yaml=\"\"execAction\"\" pulumi-lang-java=\"\"execAction\"\">\"exec_action\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`exec`\" pulumi-lang-dotnet=\"`Exec`\" pulumi-lang-go=\"`exec`\" pulumi-lang-python=\"`exec`\" pulumi-lang-yaml=\"`exec`\" pulumi-lang-java=\"`exec`\">`exec`</span> block supports:\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2Timeouts:CciPodV2Timeouts"},"uid":{"description":"The UID of the CCI pod.\n","type":"string"},"volumes":{"description":"Specifies the volumes of the CCI pod.\nChanging this creates a new resource.\nThe volumes structure is documented below.\n\n<a name=\"containers\"></a>\nThe <span pulumi-lang-nodejs=\"`containers`\" pulumi-lang-dotnet=\"`Containers`\" pulumi-lang-go=\"`containers`\" pulumi-lang-python=\"`containers`\" pulumi-lang-yaml=\"`containers`\" pulumi-lang-java=\"`containers`\">`containers`</span> and <span pulumi-lang-nodejs=\"`initContainers`\" pulumi-lang-dotnet=\"`InitContainers`\" pulumi-lang-go=\"`initContainers`\" pulumi-lang-python=\"`init_containers`\" pulumi-lang-yaml=\"`initContainers`\" pulumi-lang-java=\"`initContainers`\">`init_containers`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2Volume:CciPodV2Volume"},"type":"array"}},"required":["activeDeadlineSeconds","annotations","apiVersion","cciPodV2Id","containers","creationTimestamp","dnsPolicy","finalizers","hostname","kind","labels","name","namespace","nodeName","overhead","region","resourceVersion","restartPolicy","schedulerName","setHostnameAsFqdn","shareProcessNamespace","statuses","terminationGracePeriodSeconds","uid"],"requiredInputs":["containers","namespace"],"stateInputs":{"description":"Input properties used for looking up and filtering CciPodV2 resources.\n","properties":{"activeDeadlineSeconds":{"description":"Specifies the active deadline seconds for the pod.\n","type":"number"},"affinity":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2Affinity:CciPodV2Affinity","description":"Specifies the affinity scheduling rules of the CCI pod.\nChanging this creates a new resource.\nThe affinity structure is documented below.\n"},"annotations":{"additionalProperties":{"type":"string"},"description":"Specifies the annotations of the CCI pod.\n","type":"object"},"apiVersion":{"description":"Specifies the API version of the field path.\n\n<a name=<span pulumi-lang-nodejs=\"\"downwardApiResourceFieldRef\"\" pulumi-lang-dotnet=\"\"DownwardApiResourceFieldRef\"\" pulumi-lang-go=\"\"downwardApiResourceFieldRef\"\" pulumi-lang-python=\"\"downward_api_resource_field_ref\"\" pulumi-lang-yaml=\"\"downwardApiResourceFieldRef\"\" pulumi-lang-java=\"\"downwardApiResourceFieldRef\"\">\"downward_api_resource_field_ref\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`resourceFieldRef`\" pulumi-lang-dotnet=\"`ResourceFieldRef`\" pulumi-lang-go=\"`resourceFieldRef`\" pulumi-lang-python=\"`resource_field_ref`\" pulumi-lang-yaml=\"`resourceFieldRef`\" pulumi-lang-java=\"`resourceFieldRef`\">`resource_field_ref`</span> block supports:\n","type":"string"},"cciPodV2Id":{"description":"The resource ID in format `<namespace>/<name>`.\n","type":"string"},"containers":{"description":"Specifies the containers of the CCI pod.\nOnly <span pulumi-lang-nodejs=\"`image`\" pulumi-lang-dotnet=\"`Image`\" pulumi-lang-go=\"`image`\" pulumi-lang-python=\"`image`\" pulumi-lang-yaml=\"`image`\" pulumi-lang-java=\"`image`\">`image`</span> can be updated in-place; changing other container fields will trigger re-creation.\nThe containers structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2Container:CciPodV2Container"},"type":"array"},"creationTimestamp":{"description":"The creation timestamp of the CCI pod.\n","type":"string"},"dnsConfig":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2DnsConfig:CciPodV2DnsConfig","description":"Specifies the DNS configuration of the pod.\nChanging this creates a new resource.\nThe<span pulumi-lang-nodejs=\" dnsConfig \" pulumi-lang-dotnet=\" DnsConfig \" pulumi-lang-go=\" dnsConfig \" pulumi-lang-python=\" dns_config \" pulumi-lang-yaml=\" dnsConfig \" pulumi-lang-java=\" dnsConfig \"> dns_config </span>structure is documented below.\n"},"dnsPolicy":{"description":"Specifies the DNS policy of the pod.\nValid values are `ClusterFirst`, `ClusterFirstWithHostNet`, `Default`, or `None`.\nChanging this creates a new resource.\n","type":"string"},"ephemeralContainers":{"description":"Specifies the ephemeral containers of the CCI pod.\nChanging this creates a new resource.\nThe<span pulumi-lang-nodejs=\" ephemeralContainers \" pulumi-lang-dotnet=\" EphemeralContainers \" pulumi-lang-go=\" ephemeralContainers \" pulumi-lang-python=\" ephemeral_containers \" pulumi-lang-yaml=\" ephemeralContainers \" pulumi-lang-java=\" ephemeralContainers \"> ephemeral_containers </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2EphemeralContainer:CciPodV2EphemeralContainer"},"type":"array"},"finalizers":{"description":"The finalizers of the CCI pod.\n","items":{"type":"string"},"type":"array"},"hostAliases":{"description":"Specifies the host aliases of the CCI pod.\nChanging this creates a new resource.\nThe<span pulumi-lang-nodejs=\" hostAliases \" pulumi-lang-dotnet=\" HostAliases \" pulumi-lang-go=\" hostAliases \" pulumi-lang-python=\" host_aliases \" pulumi-lang-yaml=\" hostAliases \" pulumi-lang-java=\" hostAliases \"> host_aliases </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2HostAlias:CciPodV2HostAlias"},"type":"array"},"hostname":{"description":"Specifies the hostname of the pod.\nChanging this creates a new resource.\n","type":"string"},"imagePullSecrets":{"description":"Specifies the image pull secrets of the pod.\nChanging this creates a new resource.\nThe<span pulumi-lang-nodejs=\" imagePullSecrets \" pulumi-lang-dotnet=\" ImagePullSecrets \" pulumi-lang-go=\" imagePullSecrets \" pulumi-lang-python=\" image_pull_secrets \" pulumi-lang-yaml=\" imagePullSecrets \" pulumi-lang-java=\" imagePullSecrets \"> image_pull_secrets </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2ImagePullSecret:CciPodV2ImagePullSecret"},"type":"array"},"initContainers":{"description":"Specifies the init containers of the CCI pod.\nOnly <span pulumi-lang-nodejs=\"`image`\" pulumi-lang-dotnet=\"`Image`\" pulumi-lang-go=\"`image`\" pulumi-lang-python=\"`image`\" pulumi-lang-yaml=\"`image`\" pulumi-lang-java=\"`image`\">`image`</span> can be updated in-place; changing other fields will trigger re-creation.\nThe<span pulumi-lang-nodejs=\" initContainers \" pulumi-lang-dotnet=\" InitContainers \" pulumi-lang-go=\" initContainers \" pulumi-lang-python=\" init_containers \" pulumi-lang-yaml=\" initContainers \" pulumi-lang-java=\" initContainers \"> init_containers </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2InitContainer:CciPodV2InitContainer"},"type":"array"},"kind":{"description":"The kind of the CCI pod.\n","type":"string"},"labels":{"additionalProperties":{"type":"string"},"description":"Specifies the labels of the CCI pod.\n","type":"object"},"name":{"description":"Specifies the name of the Secret.\n","type":"string"},"namespace":{"description":"Specifies the namespace of the CCI pod.\nChanging this creates a new resource.\n","type":"string"},"nodeName":{"description":"Specifies the node name of the CCI pod.\nChanging this creates a new resource.\n","type":"string"},"overhead":{"additionalProperties":{"type":"string"},"description":"Specifies the overhead resources of the CCI pod.\nChanging this creates a new resource.\n","type":"object"},"readinessGates":{"description":"Specifies the readiness gates of the CCI pod.\nChanging this creates a new resource.\nThe<span pulumi-lang-nodejs=\" readinessGates \" pulumi-lang-dotnet=\" ReadinessGates \" pulumi-lang-go=\" readinessGates \" pulumi-lang-python=\" readiness_gates \" pulumi-lang-yaml=\" readinessGates \" pulumi-lang-java=\" readinessGates \"> readiness_gates </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2ReadinessGate:CciPodV2ReadinessGate"},"type":"array"},"region":{"description":"The region of the CCI pod.\n","type":"string"},"resourceVersion":{"description":"The resource version of the CCI pod.\n","type":"string"},"restartPolicy":{"description":"The restart policy for all containers within the pod.\nValid values are `Always`, `Never`, or `OnFailure`.\nChanging this creates a new resource.\n","type":"string"},"schedulerName":{"description":"Specifies the scheduler name of the CCI pod.\nChanging this creates a new resource.\n","type":"string"},"securityContext":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2SecurityContext:CciPodV2SecurityContext","description":"Specifies the security context.\nThe<span pulumi-lang-nodejs=\" securityContext \" pulumi-lang-dotnet=\" SecurityContext \" pulumi-lang-go=\" securityContext \" pulumi-lang-python=\" security_context \" pulumi-lang-yaml=\" securityContext \" pulumi-lang-java=\" securityContext \"> security_context </span>structure is documented below.\n"},"setHostnameAsFqdn":{"description":"Specifies whether the pod hostname is configured\nas the pod FQDN. Changing this creates a new resource.\n","type":"boolean"},"shareProcessNamespace":{"description":"Specifies whether to share a single process namespace\nbetween all containers in a pod. Changing this creates a new resource.\n","type":"boolean"},"statuses":{"description":"The status of the condition.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2Status:CciPodV2Status"},"type":"array"},"terminationGracePeriodSeconds":{"description":"Specifies the grace period in seconds before\nthe pod is forcefully terminated when the probe fails.\n\n<a name=<span pulumi-lang-nodejs=\"\"execAction\"\" pulumi-lang-dotnet=\"\"ExecAction\"\" pulumi-lang-go=\"\"execAction\"\" pulumi-lang-python=\"\"exec_action\"\" pulumi-lang-yaml=\"\"execAction\"\" pulumi-lang-java=\"\"execAction\"\">\"exec_action\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`exec`\" pulumi-lang-dotnet=\"`Exec`\" pulumi-lang-go=\"`exec`\" pulumi-lang-python=\"`exec`\" pulumi-lang-yaml=\"`exec`\" pulumi-lang-java=\"`exec`\">`exec`</span> block supports:\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2Timeouts:CciPodV2Timeouts"},"uid":{"description":"The UID of the CCI pod.\n","type":"string"},"volumes":{"description":"Specifies the volumes of the CCI pod.\nChanging this creates a new resource.\nThe volumes structure is documented below.\n\n<a name=\"containers\"></a>\nThe <span pulumi-lang-nodejs=\"`containers`\" pulumi-lang-dotnet=\"`Containers`\" pulumi-lang-go=\"`containers`\" pulumi-lang-python=\"`containers`\" pulumi-lang-yaml=\"`containers`\" pulumi-lang-java=\"`containers`\">`containers`</span> and <span pulumi-lang-nodejs=\"`initContainers`\" pulumi-lang-dotnet=\"`InitContainers`\" pulumi-lang-go=\"`initContainers`\" pulumi-lang-python=\"`init_containers`\" pulumi-lang-yaml=\"`initContainers`\" pulumi-lang-java=\"`initContainers`\">`init_containers`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCciPodV2Volume:CciPodV2Volume"},"type":"array"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cciSecretV2:CciSecretV2":{"description":"Up-to-date reference of API arguments for CCI secret you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-container-instance/api-ref/proprietary_apis/index.html)\n\nManages a CCI v2 Secret resource within OpenTelekomCloud.\n\n## Example Usage\n\n## Import\n\nThe CCI v2 Secret can be imported using `namespace` and `name`, separated by a slash, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/cciSecretV2:CciSecretV2 test <namespace>/<name>\n```\n\n","inputProperties":{"cciSecretV2Id":{"description":"The resource ID in format `<namespace>/<name>`.\n","type":"string"},"data":{"additionalProperties":{"type":"string"},"description":"Specifies the data of the CCI Secret.\nThe values must be base64-encoded strings.\n","type":"object"},"name":{"description":"Specifies the name of the CCI Secret.\n","type":"string"},"namespace":{"description":"Specifies the namespace of the CCI Secret.\n","type":"string"},"stringData":{"additionalProperties":{"type":"string"},"description":"Specifies string data of the CCI Secret.\nThe values will be encoded to base64 by the API before storage.\n","type":"object"},"type":{"description":"Specifies the type of the CCI Secret.\nFor example, `Opaque`, `kubernetes.io/dockerconfigjson`, etc.\n","type":"string"}},"properties":{"annotations":{"additionalProperties":{"type":"string"},"description":"The annotations of the CCI Secret.\n","type":"object"},"apiVersion":{"description":"The API version of the CCI Secret.\n","type":"string"},"cciSecretV2Id":{"description":"The resource ID in format `<namespace>/<name>`.\n","type":"string"},"creationTimestamp":{"description":"The creation timestamp of the CCI Secret.\n","type":"string"},"data":{"additionalProperties":{"type":"string"},"description":"Specifies the data of the CCI Secret.\nThe values must be base64-encoded strings.\n","type":"object"},"immutable":{"description":"Whether the CCI Secret is immutable.\n","type":"boolean"},"kind":{"description":"The kind of the CCI Secret.\n","type":"string"},"labels":{"additionalProperties":{"type":"string"},"description":"The labels of the CCI Secret.\n","type":"object"},"name":{"description":"Specifies the name of the CCI Secret.\n","type":"string"},"namespace":{"description":"Specifies the namespace of the CCI Secret.\n","type":"string"},"region":{"description":"The region of the CCI Secret.\n","type":"string"},"resourceVersion":{"description":"The resource version of the CCI Secret.\n","type":"string"},"stringData":{"additionalProperties":{"type":"string"},"description":"Specifies string data of the CCI Secret.\nThe values will be encoded to base64 by the API before storage.\n","type":"object"},"type":{"description":"Specifies the type of the CCI Secret.\nFor example, `Opaque`, `kubernetes.io/dockerconfigjson`, etc.\n","type":"string"},"uid":{"description":"The uid of the CCI Secret.\n","type":"string"}},"required":["annotations","apiVersion","cciSecretV2Id","creationTimestamp","data","immutable","kind","labels","name","namespace","region","resourceVersion","type","uid"],"requiredInputs":["namespace"],"stateInputs":{"description":"Input properties used for looking up and filtering CciSecretV2 resources.\n","properties":{"annotations":{"additionalProperties":{"type":"string"},"description":"The annotations of the CCI Secret.\n","type":"object"},"apiVersion":{"description":"The API version of the CCI Secret.\n","type":"string"},"cciSecretV2Id":{"description":"The resource ID in format `<namespace>/<name>`.\n","type":"string"},"creationTimestamp":{"description":"The creation timestamp of the CCI Secret.\n","type":"string"},"data":{"additionalProperties":{"type":"string"},"description":"Specifies the data of the CCI Secret.\nThe values must be base64-encoded strings.\n","type":"object"},"immutable":{"description":"Whether the CCI Secret is immutable.\n","type":"boolean"},"kind":{"description":"The kind of the CCI Secret.\n","type":"string"},"labels":{"additionalProperties":{"type":"string"},"description":"The labels of the CCI Secret.\n","type":"object"},"name":{"description":"Specifies the name of the CCI Secret.\n","type":"string"},"namespace":{"description":"Specifies the namespace of the CCI Secret.\n","type":"string"},"region":{"description":"The region of the CCI Secret.\n","type":"string"},"resourceVersion":{"description":"The resource version of the CCI Secret.\n","type":"string"},"stringData":{"additionalProperties":{"type":"string"},"description":"Specifies string data of the CCI Secret.\nThe values will be encoded to base64 by the API before storage.\n","type":"object"},"type":{"description":"Specifies the type of the CCI Secret.\nFor example, `Opaque`, `kubernetes.io/dockerconfigjson`, etc.\n","type":"string"},"uid":{"description":"The uid of the CCI Secret.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cesAlarmRuleV2:CesAlarmRuleV2":{"description":"Up-to-date reference of API arguments for CES alarm rule you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-eye/api-ref/api_v2/alarm_rules/index.html)\n\nManages a CES Alarm Rule v2 resource within OpenTelekomCloud.\n\n~>\n  Alarm rule <span pulumi-lang-nodejs=\"`namespaces`\" pulumi-lang-dotnet=\"`Namespaces`\" pulumi-lang-go=\"`namespaces`\" pulumi-lang-python=\"`namespaces`\" pulumi-lang-yaml=\"`namespaces`\" pulumi-lang-java=\"`namespaces`\">`namespaces`</span> and <span pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\">`dimensions`</span> are available on our github link or [official documentation](https://docs.otc.t-systems.com/cloud-eye/api-ref/appendix/services_interconnected_with_cloud_eye.html).\n\n## Example Usage\n\n### Basic alarm rule for multiple ECS instances\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId1 = config.requireObject<any>(\"instanceId1\");\nconst instanceId2 = config.requireObject<any>(\"instanceId2\");\nconst topicUrn = config.requireObject<any>(\"topicUrn\");\nconst test = new opentelekomcloud.CesAlarmRuleV2(\"test\", {\n    name: \"alarm-rule-test\",\n    namespace: \"SYS.ECS\",\n    type: \"MULTI_INSTANCE\",\n    notificationEnabled: true,\n    alarmEnabled: true,\n    resources: [\n        {\n            dimensions: [{\n                name: \"instance_id\",\n                value: instanceId1,\n            }],\n        },\n        {\n            dimensions: [{\n                name: \"instance_id\",\n                value: instanceId2,\n            }],\n        },\n    ],\n    policies: [\n        {\n            metricName: \"network_outgoing_bytes_rate_inband\",\n            period: 1200,\n            filter: \"average\",\n            comparisonOperator: \">\",\n            value: 6.5,\n            unit: \"B/s\",\n            count: 1,\n            suppressDuration: 300,\n            level: 4,\n        },\n        {\n            metricName: \"network_outgoing_bytes_rate_inband\",\n            period: 3600,\n            filter: \"average\",\n            comparisonOperator: \">=\",\n            value: 20,\n            unit: \"B/s\",\n            count: 1,\n            suppressDuration: 300,\n            level: 4,\n        },\n    ],\n    alarmActions: [{\n        type: \"notification\",\n        notificationLists: [topicUrn],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id1 = config.require_object(\"instanceId1\")\ninstance_id2 = config.require_object(\"instanceId2\")\ntopic_urn = config.require_object(\"topicUrn\")\ntest = opentelekomcloud.CesAlarmRuleV2(\"test\",\n    name=\"alarm-rule-test\",\n    namespace=\"SYS.ECS\",\n    type=\"MULTI_INSTANCE\",\n    notification_enabled=True,\n    alarm_enabled=True,\n    resources=[\n        {\n            \"dimensions\": [{\n                \"name\": \"instance_id\",\n                \"value\": instance_id1,\n            }],\n        },\n        {\n            \"dimensions\": [{\n                \"name\": \"instance_id\",\n                \"value\": instance_id2,\n            }],\n        },\n    ],\n    policies=[\n        {\n            \"metric_name\": \"network_outgoing_bytes_rate_inband\",\n            \"period\": 1200,\n            \"filter\": \"average\",\n            \"comparison_operator\": \">\",\n            \"value\": 6.5,\n            \"unit\": \"B/s\",\n            \"count\": 1,\n            \"suppress_duration\": 300,\n            \"level\": 4,\n        },\n        {\n            \"metric_name\": \"network_outgoing_bytes_rate_inband\",\n            \"period\": 3600,\n            \"filter\": \"average\",\n            \"comparison_operator\": \">=\",\n            \"value\": 20,\n            \"unit\": \"B/s\",\n            \"count\": 1,\n            \"suppress_duration\": 300,\n            \"level\": 4,\n        },\n    ],\n    alarm_actions=[{\n        \"type\": \"notification\",\n        \"notification_lists\": [topic_urn],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId1 = config.RequireObject<dynamic>(\"instanceId1\");\n    var instanceId2 = config.RequireObject<dynamic>(\"instanceId2\");\n    var topicUrn = config.RequireObject<dynamic>(\"topicUrn\");\n    var test = new Opentelekomcloud.CesAlarmRuleV2(\"test\", new()\n    {\n        Name = \"alarm-rule-test\",\n        Namespace = \"SYS.ECS\",\n        Type = \"MULTI_INSTANCE\",\n        NotificationEnabled = true,\n        AlarmEnabled = true,\n        Resources = new[]\n        {\n            new Opentelekomcloud.Inputs.CesAlarmRuleV2ResourceArgs\n            {\n                Dimensions = new[]\n                {\n                    new Opentelekomcloud.Inputs.CesAlarmRuleV2ResourceDimensionArgs\n                    {\n                        Name = \"instance_id\",\n                        Value = instanceId1,\n                    },\n                },\n            },\n            new Opentelekomcloud.Inputs.CesAlarmRuleV2ResourceArgs\n            {\n                Dimensions = new[]\n                {\n                    new Opentelekomcloud.Inputs.CesAlarmRuleV2ResourceDimensionArgs\n                    {\n                        Name = \"instance_id\",\n                        Value = instanceId2,\n                    },\n                },\n            },\n        },\n        Policies = new[]\n        {\n            new Opentelekomcloud.Inputs.CesAlarmRuleV2PolicyArgs\n            {\n                MetricName = \"network_outgoing_bytes_rate_inband\",\n                Period = 1200,\n                Filter = \"average\",\n                ComparisonOperator = \">\",\n                Value = 6.5,\n                Unit = \"B/s\",\n                Count = 1,\n                SuppressDuration = 300,\n                Level = 4,\n            },\n            new Opentelekomcloud.Inputs.CesAlarmRuleV2PolicyArgs\n            {\n                MetricName = \"network_outgoing_bytes_rate_inband\",\n                Period = 3600,\n                Filter = \"average\",\n                ComparisonOperator = \">=\",\n                Value = 20,\n                Unit = \"B/s\",\n                Count = 1,\n                SuppressDuration = 300,\n                Level = 4,\n            },\n        },\n        AlarmActions = new[]\n        {\n            new Opentelekomcloud.Inputs.CesAlarmRuleV2AlarmActionArgs\n            {\n                Type = \"notification\",\n                NotificationLists = new[]\n                {\n                    topicUrn,\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId1 := cfg.RequireObject(\"instanceId1\")\n\t\tinstanceId2 := cfg.RequireObject(\"instanceId2\")\n\t\ttopicUrn := cfg.RequireObject(\"topicUrn\")\n\t\t_, err := opentelekomcloud.NewCesAlarmRuleV2(ctx, \"test\", &opentelekomcloud.CesAlarmRuleV2Args{\n\t\t\tName:                pulumi.String(\"alarm-rule-test\"),\n\t\t\tNamespace:           pulumi.String(\"SYS.ECS\"),\n\t\t\tType:                pulumi.String(\"MULTI_INSTANCE\"),\n\t\t\tNotificationEnabled: pulumi.Bool(true),\n\t\t\tAlarmEnabled:        pulumi.Bool(true),\n\t\t\tResources: opentelekomcloud.CesAlarmRuleV2ResourceArray{\n\t\t\t\t&opentelekomcloud.CesAlarmRuleV2ResourceArgs{\n\t\t\t\t\tDimensions: opentelekomcloud.CesAlarmRuleV2ResourceDimensionArray{\n\t\t\t\t\t\t&opentelekomcloud.CesAlarmRuleV2ResourceDimensionArgs{\n\t\t\t\t\t\t\tName:  pulumi.String(\"instance_id\"),\n\t\t\t\t\t\t\tValue: pulumi.Any(instanceId1),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.CesAlarmRuleV2ResourceArgs{\n\t\t\t\t\tDimensions: opentelekomcloud.CesAlarmRuleV2ResourceDimensionArray{\n\t\t\t\t\t\t&opentelekomcloud.CesAlarmRuleV2ResourceDimensionArgs{\n\t\t\t\t\t\t\tName:  pulumi.String(\"instance_id\"),\n\t\t\t\t\t\t\tValue: pulumi.Any(instanceId2),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tPolicies: opentelekomcloud.CesAlarmRuleV2PolicyArray{\n\t\t\t\t&opentelekomcloud.CesAlarmRuleV2PolicyArgs{\n\t\t\t\t\tMetricName:         pulumi.String(\"network_outgoing_bytes_rate_inband\"),\n\t\t\t\t\tPeriod:             pulumi.Float64(1200),\n\t\t\t\t\tFilter:             pulumi.String(\"average\"),\n\t\t\t\t\tComparisonOperator: pulumi.String(\">\"),\n\t\t\t\t\tValue:              pulumi.Float64(6.5),\n\t\t\t\t\tUnit:               pulumi.String(\"B/s\"),\n\t\t\t\t\tCount:              pulumi.Float64(1),\n\t\t\t\t\tSuppressDuration:   pulumi.Float64(300),\n\t\t\t\t\tLevel:              pulumi.Float64(4),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.CesAlarmRuleV2PolicyArgs{\n\t\t\t\t\tMetricName:         pulumi.String(\"network_outgoing_bytes_rate_inband\"),\n\t\t\t\t\tPeriod:             pulumi.Float64(3600),\n\t\t\t\t\tFilter:             pulumi.String(\"average\"),\n\t\t\t\t\tComparisonOperator: pulumi.String(\">=\"),\n\t\t\t\t\tValue:              pulumi.Float64(20),\n\t\t\t\t\tUnit:               pulumi.String(\"B/s\"),\n\t\t\t\t\tCount:              pulumi.Float64(1),\n\t\t\t\t\tSuppressDuration:   pulumi.Float64(300),\n\t\t\t\t\tLevel:              pulumi.Float64(4),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAlarmActions: opentelekomcloud.CesAlarmRuleV2AlarmActionArray{\n\t\t\t\t&opentelekomcloud.CesAlarmRuleV2AlarmActionArgs{\n\t\t\t\t\tType: pulumi.String(\"notification\"),\n\t\t\t\t\tNotificationLists: pulumi.StringArray{\n\t\t\t\t\t\ttopicUrn,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CesAlarmRuleV2;\nimport com.pulumi.opentelekomcloud.CesAlarmRuleV2Args;\nimport com.pulumi.opentelekomcloud.inputs.CesAlarmRuleV2ResourceArgs;\nimport com.pulumi.opentelekomcloud.inputs.CesAlarmRuleV2PolicyArgs;\nimport com.pulumi.opentelekomcloud.inputs.CesAlarmRuleV2AlarmActionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId1 = config.get(\"instanceId1\");\n        final var instanceId2 = config.get(\"instanceId2\");\n        final var topicUrn = config.get(\"topicUrn\");\n        var test = new CesAlarmRuleV2(\"test\", CesAlarmRuleV2Args.builder()\n            .name(\"alarm-rule-test\")\n            .namespace(\"SYS.ECS\")\n            .type(\"MULTI_INSTANCE\")\n            .notificationEnabled(true)\n            .alarmEnabled(true)\n            .resources(            \n                CesAlarmRuleV2ResourceArgs.builder()\n                    .dimensions(CesAlarmRuleV2ResourceDimensionArgs.builder()\n                        .name(\"instance_id\")\n                        .value(instanceId1)\n                        .build())\n                    .build(),\n                CesAlarmRuleV2ResourceArgs.builder()\n                    .dimensions(CesAlarmRuleV2ResourceDimensionArgs.builder()\n                        .name(\"instance_id\")\n                        .value(instanceId2)\n                        .build())\n                    .build())\n            .policies(            \n                CesAlarmRuleV2PolicyArgs.builder()\n                    .metricName(\"network_outgoing_bytes_rate_inband\")\n                    .period(1200.0)\n                    .filter(\"average\")\n                    .comparisonOperator(\">\")\n                    .value(6.5)\n                    .unit(\"B/s\")\n                    .count(1.0)\n                    .suppressDuration(300.0)\n                    .level(4.0)\n                    .build(),\n                CesAlarmRuleV2PolicyArgs.builder()\n                    .metricName(\"network_outgoing_bytes_rate_inband\")\n                    .period(3600.0)\n                    .filter(\"average\")\n                    .comparisonOperator(\">=\")\n                    .value(20.0)\n                    .unit(\"B/s\")\n                    .count(1.0)\n                    .suppressDuration(300.0)\n                    .level(4.0)\n                    .build())\n            .alarmActions(CesAlarmRuleV2AlarmActionArgs.builder()\n                .type(\"notification\")\n                .notificationLists(topicUrn)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId1:\n    type: dynamic\n  instanceId2:\n    type: dynamic\n  topicUrn:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:CesAlarmRuleV2\n    properties:\n      name: alarm-rule-test\n      namespace: SYS.ECS\n      type: MULTI_INSTANCE\n      notificationEnabled: true\n      alarmEnabled: true\n      resources:\n        - dimensions:\n            - name: instance_id\n              value: ${instanceId1}\n        - dimensions:\n            - name: instance_id\n              value: ${instanceId2}\n      policies:\n        - metricName: network_outgoing_bytes_rate_inband\n          period: 1200\n          filter: average\n          comparisonOperator: '>'\n          value: 6.5\n          unit: B/s\n          count: 1\n          suppressDuration: 300\n          level: 4\n        - metricName: network_outgoing_bytes_rate_inband\n          period: 3600\n          filter: average\n          comparisonOperator: '>='\n          value: 20\n          unit: B/s\n          count: 1\n          suppressDuration: 300\n          level: 4\n      alarmActions:\n        - type: notification\n          notificationLists:\n            - ${topicUrn}\n```\n<!--End PulumiCodeChooser -->\n\n### Alarm rule for all instances\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst topicUrn = config.requireObject<any>(\"topicUrn\");\nconst test = new opentelekomcloud.CesAlarmRuleV2(\"test\", {\n    name: \"alarm-rule-all-instance\",\n    namespace: \"AGT.ECS\",\n    type: \"ALL_INSTANCE\",\n    notificationEnabled: true,\n    alarmEnabled: true,\n    resources: [{\n        dimensions: [\n            {\n                name: \"instance_id\",\n            },\n            {\n                name: \"mount_point\",\n            },\n        ],\n    }],\n    policies: [{\n        metricName: \"disk_usedPercent\",\n        period: 1,\n        filter: \"average\",\n        comparisonOperator: \">\",\n        value: 80,\n        count: 1,\n        suppressDuration: 0,\n        level: 2,\n    }],\n    alarmActions: [{\n        type: \"notification\",\n        notificationLists: [topicUrn],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ntopic_urn = config.require_object(\"topicUrn\")\ntest = opentelekomcloud.CesAlarmRuleV2(\"test\",\n    name=\"alarm-rule-all-instance\",\n    namespace=\"AGT.ECS\",\n    type=\"ALL_INSTANCE\",\n    notification_enabled=True,\n    alarm_enabled=True,\n    resources=[{\n        \"dimensions\": [\n            {\n                \"name\": \"instance_id\",\n            },\n            {\n                \"name\": \"mount_point\",\n            },\n        ],\n    }],\n    policies=[{\n        \"metric_name\": \"disk_usedPercent\",\n        \"period\": 1,\n        \"filter\": \"average\",\n        \"comparison_operator\": \">\",\n        \"value\": 80,\n        \"count\": 1,\n        \"suppress_duration\": 0,\n        \"level\": 2,\n    }],\n    alarm_actions=[{\n        \"type\": \"notification\",\n        \"notification_lists\": [topic_urn],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var topicUrn = config.RequireObject<dynamic>(\"topicUrn\");\n    var test = new Opentelekomcloud.CesAlarmRuleV2(\"test\", new()\n    {\n        Name = \"alarm-rule-all-instance\",\n        Namespace = \"AGT.ECS\",\n        Type = \"ALL_INSTANCE\",\n        NotificationEnabled = true,\n        AlarmEnabled = true,\n        Resources = new[]\n        {\n            new Opentelekomcloud.Inputs.CesAlarmRuleV2ResourceArgs\n            {\n                Dimensions = new[]\n                {\n                    new Opentelekomcloud.Inputs.CesAlarmRuleV2ResourceDimensionArgs\n                    {\n                        Name = \"instance_id\",\n                    },\n                    new Opentelekomcloud.Inputs.CesAlarmRuleV2ResourceDimensionArgs\n                    {\n                        Name = \"mount_point\",\n                    },\n                },\n            },\n        },\n        Policies = new[]\n        {\n            new Opentelekomcloud.Inputs.CesAlarmRuleV2PolicyArgs\n            {\n                MetricName = \"disk_usedPercent\",\n                Period = 1,\n                Filter = \"average\",\n                ComparisonOperator = \">\",\n                Value = 80,\n                Count = 1,\n                SuppressDuration = 0,\n                Level = 2,\n            },\n        },\n        AlarmActions = new[]\n        {\n            new Opentelekomcloud.Inputs.CesAlarmRuleV2AlarmActionArgs\n            {\n                Type = \"notification\",\n                NotificationLists = new[]\n                {\n                    topicUrn,\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\ttopicUrn := cfg.RequireObject(\"topicUrn\")\n\t\t_, err := opentelekomcloud.NewCesAlarmRuleV2(ctx, \"test\", &opentelekomcloud.CesAlarmRuleV2Args{\n\t\t\tName:                pulumi.String(\"alarm-rule-all-instance\"),\n\t\t\tNamespace:           pulumi.String(\"AGT.ECS\"),\n\t\t\tType:                pulumi.String(\"ALL_INSTANCE\"),\n\t\t\tNotificationEnabled: pulumi.Bool(true),\n\t\t\tAlarmEnabled:        pulumi.Bool(true),\n\t\t\tResources: opentelekomcloud.CesAlarmRuleV2ResourceArray{\n\t\t\t\t&opentelekomcloud.CesAlarmRuleV2ResourceArgs{\n\t\t\t\t\tDimensions: opentelekomcloud.CesAlarmRuleV2ResourceDimensionArray{\n\t\t\t\t\t\t&opentelekomcloud.CesAlarmRuleV2ResourceDimensionArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"instance_id\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t&opentelekomcloud.CesAlarmRuleV2ResourceDimensionArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"mount_point\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tPolicies: opentelekomcloud.CesAlarmRuleV2PolicyArray{\n\t\t\t\t&opentelekomcloud.CesAlarmRuleV2PolicyArgs{\n\t\t\t\t\tMetricName:         pulumi.String(\"disk_usedPercent\"),\n\t\t\t\t\tPeriod:             pulumi.Float64(1),\n\t\t\t\t\tFilter:             pulumi.String(\"average\"),\n\t\t\t\t\tComparisonOperator: pulumi.String(\">\"),\n\t\t\t\t\tValue:              pulumi.Float64(80),\n\t\t\t\t\tCount:              pulumi.Float64(1),\n\t\t\t\t\tSuppressDuration:   pulumi.Float64(0),\n\t\t\t\t\tLevel:              pulumi.Float64(2),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAlarmActions: opentelekomcloud.CesAlarmRuleV2AlarmActionArray{\n\t\t\t\t&opentelekomcloud.CesAlarmRuleV2AlarmActionArgs{\n\t\t\t\t\tType: pulumi.String(\"notification\"),\n\t\t\t\t\tNotificationLists: pulumi.StringArray{\n\t\t\t\t\t\ttopicUrn,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CesAlarmRuleV2;\nimport com.pulumi.opentelekomcloud.CesAlarmRuleV2Args;\nimport com.pulumi.opentelekomcloud.inputs.CesAlarmRuleV2ResourceArgs;\nimport com.pulumi.opentelekomcloud.inputs.CesAlarmRuleV2PolicyArgs;\nimport com.pulumi.opentelekomcloud.inputs.CesAlarmRuleV2AlarmActionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var topicUrn = config.get(\"topicUrn\");\n        var test = new CesAlarmRuleV2(\"test\", CesAlarmRuleV2Args.builder()\n            .name(\"alarm-rule-all-instance\")\n            .namespace(\"AGT.ECS\")\n            .type(\"ALL_INSTANCE\")\n            .notificationEnabled(true)\n            .alarmEnabled(true)\n            .resources(CesAlarmRuleV2ResourceArgs.builder()\n                .dimensions(                \n                    CesAlarmRuleV2ResourceDimensionArgs.builder()\n                        .name(\"instance_id\")\n                        .build(),\n                    CesAlarmRuleV2ResourceDimensionArgs.builder()\n                        .name(\"mount_point\")\n                        .build())\n                .build())\n            .policies(CesAlarmRuleV2PolicyArgs.builder()\n                .metricName(\"disk_usedPercent\")\n                .period(1.0)\n                .filter(\"average\")\n                .comparisonOperator(\">\")\n                .value(80.0)\n                .count(1.0)\n                .suppressDuration(0.0)\n                .level(2.0)\n                .build())\n            .alarmActions(CesAlarmRuleV2AlarmActionArgs.builder()\n                .type(\"notification\")\n                .notificationLists(topicUrn)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  topicUrn:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:CesAlarmRuleV2\n    properties:\n      name: alarm-rule-all-instance\n      namespace: AGT.ECS\n      type: ALL_INSTANCE\n      notificationEnabled: true\n      alarmEnabled: true\n      resources:\n        - dimensions:\n            - name: instance_id\n            - name: mount_point\n      policies:\n        - metricName: disk_usedPercent\n          period: 1\n          filter: average\n          comparisonOperator: '>'\n          value: 80\n          count: 1\n          suppressDuration: 0\n          level: 2\n      alarmActions:\n        - type: notification\n          notificationLists:\n            - ${topicUrn}\n```\n<!--End PulumiCodeChooser -->\n\n### Alarm rule for system event monitoring\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = new opentelekomcloud.CesAlarmRuleV2(\"test\", {\n    name: \"alarm-rule-sys-event\",\n    namespace: \"SYS.ECS\",\n    type: \"EVENT.SYS\",\n    notificationEnabled: false,\n    alarmEnabled: true,\n    resources: [{\n        dimensions: [{\n            name: \"resource_id\",\n            value: \"all_instance\",\n        }],\n    }],\n    policies: [{\n        metricName: \"stopServer\",\n        period: 0,\n        filter: \"average\",\n        comparisonOperator: \">=\",\n        value: 1,\n        unit: \"count\",\n        count: 1,\n        suppressDuration: 0,\n        level: 2,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.CesAlarmRuleV2(\"test\",\n    name=\"alarm-rule-sys-event\",\n    namespace=\"SYS.ECS\",\n    type=\"EVENT.SYS\",\n    notification_enabled=False,\n    alarm_enabled=True,\n    resources=[{\n        \"dimensions\": [{\n            \"name\": \"resource_id\",\n            \"value\": \"all_instance\",\n        }],\n    }],\n    policies=[{\n        \"metric_name\": \"stopServer\",\n        \"period\": 0,\n        \"filter\": \"average\",\n        \"comparison_operator\": \">=\",\n        \"value\": 1,\n        \"unit\": \"count\",\n        \"count\": 1,\n        \"suppress_duration\": 0,\n        \"level\": 2,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = new Opentelekomcloud.CesAlarmRuleV2(\"test\", new()\n    {\n        Name = \"alarm-rule-sys-event\",\n        Namespace = \"SYS.ECS\",\n        Type = \"EVENT.SYS\",\n        NotificationEnabled = false,\n        AlarmEnabled = true,\n        Resources = new[]\n        {\n            new Opentelekomcloud.Inputs.CesAlarmRuleV2ResourceArgs\n            {\n                Dimensions = new[]\n                {\n                    new Opentelekomcloud.Inputs.CesAlarmRuleV2ResourceDimensionArgs\n                    {\n                        Name = \"resource_id\",\n                        Value = \"all_instance\",\n                    },\n                },\n            },\n        },\n        Policies = new[]\n        {\n            new Opentelekomcloud.Inputs.CesAlarmRuleV2PolicyArgs\n            {\n                MetricName = \"stopServer\",\n                Period = 0,\n                Filter = \"average\",\n                ComparisonOperator = \">=\",\n                Value = 1,\n                Unit = \"count\",\n                Count = 1,\n                SuppressDuration = 0,\n                Level = 2,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewCesAlarmRuleV2(ctx, \"test\", &opentelekomcloud.CesAlarmRuleV2Args{\n\t\t\tName:                pulumi.String(\"alarm-rule-sys-event\"),\n\t\t\tNamespace:           pulumi.String(\"SYS.ECS\"),\n\t\t\tType:                pulumi.String(\"EVENT.SYS\"),\n\t\t\tNotificationEnabled: pulumi.Bool(false),\n\t\t\tAlarmEnabled:        pulumi.Bool(true),\n\t\t\tResources: opentelekomcloud.CesAlarmRuleV2ResourceArray{\n\t\t\t\t&opentelekomcloud.CesAlarmRuleV2ResourceArgs{\n\t\t\t\t\tDimensions: opentelekomcloud.CesAlarmRuleV2ResourceDimensionArray{\n\t\t\t\t\t\t&opentelekomcloud.CesAlarmRuleV2ResourceDimensionArgs{\n\t\t\t\t\t\t\tName:  pulumi.String(\"resource_id\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"all_instance\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tPolicies: opentelekomcloud.CesAlarmRuleV2PolicyArray{\n\t\t\t\t&opentelekomcloud.CesAlarmRuleV2PolicyArgs{\n\t\t\t\t\tMetricName:         pulumi.String(\"stopServer\"),\n\t\t\t\t\tPeriod:             pulumi.Float64(0),\n\t\t\t\t\tFilter:             pulumi.String(\"average\"),\n\t\t\t\t\tComparisonOperator: pulumi.String(\">=\"),\n\t\t\t\t\tValue:              pulumi.Float64(1),\n\t\t\t\t\tUnit:               pulumi.String(\"count\"),\n\t\t\t\t\tCount:              pulumi.Float64(1),\n\t\t\t\t\tSuppressDuration:   pulumi.Float64(0),\n\t\t\t\t\tLevel:              pulumi.Float64(2),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CesAlarmRuleV2;\nimport com.pulumi.opentelekomcloud.CesAlarmRuleV2Args;\nimport com.pulumi.opentelekomcloud.inputs.CesAlarmRuleV2ResourceArgs;\nimport com.pulumi.opentelekomcloud.inputs.CesAlarmRuleV2PolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new CesAlarmRuleV2(\"test\", CesAlarmRuleV2Args.builder()\n            .name(\"alarm-rule-sys-event\")\n            .namespace(\"SYS.ECS\")\n            .type(\"EVENT.SYS\")\n            .notificationEnabled(false)\n            .alarmEnabled(true)\n            .resources(CesAlarmRuleV2ResourceArgs.builder()\n                .dimensions(CesAlarmRuleV2ResourceDimensionArgs.builder()\n                    .name(\"resource_id\")\n                    .value(\"all_instance\")\n                    .build())\n                .build())\n            .policies(CesAlarmRuleV2PolicyArgs.builder()\n                .metricName(\"stopServer\")\n                .period(0.0)\n                .filter(\"average\")\n                .comparisonOperator(\">=\")\n                .value(1.0)\n                .unit(\"count\")\n                .count(1.0)\n                .suppressDuration(0.0)\n                .level(2.0)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: opentelekomcloud:CesAlarmRuleV2\n    properties:\n      name: alarm-rule-sys-event\n      namespace: SYS.ECS\n      type: EVENT.SYS\n      notificationEnabled: false\n      alarmEnabled: true\n      resources:\n        - dimensions:\n            - name: resource_id\n              value: all_instance\n      policies:\n        - metricName: stopServer\n          period: 0\n          filter: average\n          comparisonOperator: '>='\n          value: 1\n          unit: count\n          count: 1\n          suppressDuration: 0\n          level: 2\n```\n<!--End PulumiCodeChooser -->\n\n### Alarm rule for system event monitoring with notification\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst topicUrn = config.requireObject<any>(\"topicUrn\");\nconst test = new opentelekomcloud.CesAlarmRuleV2(\"test\", {\n    name: \"alarm-rule-sys-event\",\n    namespace: \"SYS.ECS\",\n    type: \"EVENT.SYS\",\n    notificationEnabled: true,\n    alarmEnabled: true,\n    resources: [{\n        dimensions: [{\n            name: \"resource_id\",\n            value: \"all_instance\",\n        }],\n    }],\n    policies: [{\n        metricName: \"stopServer\",\n        period: 0,\n        filter: \"average\",\n        comparisonOperator: \">=\",\n        value: 1,\n        unit: \"count\",\n        count: 1,\n        suppressDuration: 0,\n        level: 2,\n    }],\n    alarmActions: [{\n        type: \"notification\",\n        notificationLists: [topicUrn],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ntopic_urn = config.require_object(\"topicUrn\")\ntest = opentelekomcloud.CesAlarmRuleV2(\"test\",\n    name=\"alarm-rule-sys-event\",\n    namespace=\"SYS.ECS\",\n    type=\"EVENT.SYS\",\n    notification_enabled=True,\n    alarm_enabled=True,\n    resources=[{\n        \"dimensions\": [{\n            \"name\": \"resource_id\",\n            \"value\": \"all_instance\",\n        }],\n    }],\n    policies=[{\n        \"metric_name\": \"stopServer\",\n        \"period\": 0,\n        \"filter\": \"average\",\n        \"comparison_operator\": \">=\",\n        \"value\": 1,\n        \"unit\": \"count\",\n        \"count\": 1,\n        \"suppress_duration\": 0,\n        \"level\": 2,\n    }],\n    alarm_actions=[{\n        \"type\": \"notification\",\n        \"notification_lists\": [topic_urn],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var topicUrn = config.RequireObject<dynamic>(\"topicUrn\");\n    var test = new Opentelekomcloud.CesAlarmRuleV2(\"test\", new()\n    {\n        Name = \"alarm-rule-sys-event\",\n        Namespace = \"SYS.ECS\",\n        Type = \"EVENT.SYS\",\n        NotificationEnabled = true,\n        AlarmEnabled = true,\n        Resources = new[]\n        {\n            new Opentelekomcloud.Inputs.CesAlarmRuleV2ResourceArgs\n            {\n                Dimensions = new[]\n                {\n                    new Opentelekomcloud.Inputs.CesAlarmRuleV2ResourceDimensionArgs\n                    {\n                        Name = \"resource_id\",\n                        Value = \"all_instance\",\n                    },\n                },\n            },\n        },\n        Policies = new[]\n        {\n            new Opentelekomcloud.Inputs.CesAlarmRuleV2PolicyArgs\n            {\n                MetricName = \"stopServer\",\n                Period = 0,\n                Filter = \"average\",\n                ComparisonOperator = \">=\",\n                Value = 1,\n                Unit = \"count\",\n                Count = 1,\n                SuppressDuration = 0,\n                Level = 2,\n            },\n        },\n        AlarmActions = new[]\n        {\n            new Opentelekomcloud.Inputs.CesAlarmRuleV2AlarmActionArgs\n            {\n                Type = \"notification\",\n                NotificationLists = new[]\n                {\n                    topicUrn,\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\ttopicUrn := cfg.RequireObject(\"topicUrn\")\n\t\t_, err := opentelekomcloud.NewCesAlarmRuleV2(ctx, \"test\", &opentelekomcloud.CesAlarmRuleV2Args{\n\t\t\tName:                pulumi.String(\"alarm-rule-sys-event\"),\n\t\t\tNamespace:           pulumi.String(\"SYS.ECS\"),\n\t\t\tType:                pulumi.String(\"EVENT.SYS\"),\n\t\t\tNotificationEnabled: pulumi.Bool(true),\n\t\t\tAlarmEnabled:        pulumi.Bool(true),\n\t\t\tResources: opentelekomcloud.CesAlarmRuleV2ResourceArray{\n\t\t\t\t&opentelekomcloud.CesAlarmRuleV2ResourceArgs{\n\t\t\t\t\tDimensions: opentelekomcloud.CesAlarmRuleV2ResourceDimensionArray{\n\t\t\t\t\t\t&opentelekomcloud.CesAlarmRuleV2ResourceDimensionArgs{\n\t\t\t\t\t\t\tName:  pulumi.String(\"resource_id\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"all_instance\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tPolicies: opentelekomcloud.CesAlarmRuleV2PolicyArray{\n\t\t\t\t&opentelekomcloud.CesAlarmRuleV2PolicyArgs{\n\t\t\t\t\tMetricName:         pulumi.String(\"stopServer\"),\n\t\t\t\t\tPeriod:             pulumi.Float64(0),\n\t\t\t\t\tFilter:             pulumi.String(\"average\"),\n\t\t\t\t\tComparisonOperator: pulumi.String(\">=\"),\n\t\t\t\t\tValue:              pulumi.Float64(1),\n\t\t\t\t\tUnit:               pulumi.String(\"count\"),\n\t\t\t\t\tCount:              pulumi.Float64(1),\n\t\t\t\t\tSuppressDuration:   pulumi.Float64(0),\n\t\t\t\t\tLevel:              pulumi.Float64(2),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAlarmActions: opentelekomcloud.CesAlarmRuleV2AlarmActionArray{\n\t\t\t\t&opentelekomcloud.CesAlarmRuleV2AlarmActionArgs{\n\t\t\t\t\tType: pulumi.String(\"notification\"),\n\t\t\t\t\tNotificationLists: pulumi.StringArray{\n\t\t\t\t\t\ttopicUrn,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CesAlarmRuleV2;\nimport com.pulumi.opentelekomcloud.CesAlarmRuleV2Args;\nimport com.pulumi.opentelekomcloud.inputs.CesAlarmRuleV2ResourceArgs;\nimport com.pulumi.opentelekomcloud.inputs.CesAlarmRuleV2PolicyArgs;\nimport com.pulumi.opentelekomcloud.inputs.CesAlarmRuleV2AlarmActionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var topicUrn = config.get(\"topicUrn\");\n        var test = new CesAlarmRuleV2(\"test\", CesAlarmRuleV2Args.builder()\n            .name(\"alarm-rule-sys-event\")\n            .namespace(\"SYS.ECS\")\n            .type(\"EVENT.SYS\")\n            .notificationEnabled(true)\n            .alarmEnabled(true)\n            .resources(CesAlarmRuleV2ResourceArgs.builder()\n                .dimensions(CesAlarmRuleV2ResourceDimensionArgs.builder()\n                    .name(\"resource_id\")\n                    .value(\"all_instance\")\n                    .build())\n                .build())\n            .policies(CesAlarmRuleV2PolicyArgs.builder()\n                .metricName(\"stopServer\")\n                .period(0.0)\n                .filter(\"average\")\n                .comparisonOperator(\">=\")\n                .value(1.0)\n                .unit(\"count\")\n                .count(1.0)\n                .suppressDuration(0.0)\n                .level(2.0)\n                .build())\n            .alarmActions(CesAlarmRuleV2AlarmActionArgs.builder()\n                .type(\"notification\")\n                .notificationLists(topicUrn)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  topicUrn:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:CesAlarmRuleV2\n    properties:\n      name: alarm-rule-sys-event\n      namespace: SYS.ECS\n      type: EVENT.SYS\n      notificationEnabled: true\n      alarmEnabled: true\n      resources:\n        - dimensions:\n            - name: resource_id\n              value: all_instance\n      policies:\n        - metricName: stopServer\n          period: 0\n          filter: average\n          comparisonOperator: '>='\n          value: 1\n          unit: count\n          count: 1\n          suppressDuration: 0\n          level: 2\n      alarmActions:\n        - type: notification\n          notificationLists:\n            - ${topicUrn}\n```\n<!--End PulumiCodeChooser -->\n\n### Alarm rule with OK actions\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst topicUrn = config.requireObject<any>(\"topicUrn\");\nconst test = new opentelekomcloud.CesAlarmRuleV2(\"test\", {\n    name: \"alarm-rule-with-ok-actions\",\n    namespace: \"SYS.ECS\",\n    type: \"MULTI_INSTANCE\",\n    notificationEnabled: true,\n    alarmEnabled: true,\n    resources: [{\n        dimensions: [{\n            name: \"instance_id\",\n            value: instanceId,\n        }],\n    }],\n    policies: [{\n        metricName: \"network_outgoing_bytes_rate_inband\",\n        period: 300,\n        filter: \"average\",\n        comparisonOperator: \">\",\n        value: 6.5,\n        unit: \"B/s\",\n        count: 1,\n        level: 2,\n    }],\n    alarmActions: [{\n        type: \"notification\",\n        notificationLists: [topicUrn],\n    }],\n    okActions: [{\n        type: \"notification\",\n        notificationLists: [topicUrn],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ntopic_urn = config.require_object(\"topicUrn\")\ntest = opentelekomcloud.CesAlarmRuleV2(\"test\",\n    name=\"alarm-rule-with-ok-actions\",\n    namespace=\"SYS.ECS\",\n    type=\"MULTI_INSTANCE\",\n    notification_enabled=True,\n    alarm_enabled=True,\n    resources=[{\n        \"dimensions\": [{\n            \"name\": \"instance_id\",\n            \"value\": instance_id,\n        }],\n    }],\n    policies=[{\n        \"metric_name\": \"network_outgoing_bytes_rate_inband\",\n        \"period\": 300,\n        \"filter\": \"average\",\n        \"comparison_operator\": \">\",\n        \"value\": 6.5,\n        \"unit\": \"B/s\",\n        \"count\": 1,\n        \"level\": 2,\n    }],\n    alarm_actions=[{\n        \"type\": \"notification\",\n        \"notification_lists\": [topic_urn],\n    }],\n    ok_actions=[{\n        \"type\": \"notification\",\n        \"notification_lists\": [topic_urn],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var topicUrn = config.RequireObject<dynamic>(\"topicUrn\");\n    var test = new Opentelekomcloud.CesAlarmRuleV2(\"test\", new()\n    {\n        Name = \"alarm-rule-with-ok-actions\",\n        Namespace = \"SYS.ECS\",\n        Type = \"MULTI_INSTANCE\",\n        NotificationEnabled = true,\n        AlarmEnabled = true,\n        Resources = new[]\n        {\n            new Opentelekomcloud.Inputs.CesAlarmRuleV2ResourceArgs\n            {\n                Dimensions = new[]\n                {\n                    new Opentelekomcloud.Inputs.CesAlarmRuleV2ResourceDimensionArgs\n                    {\n                        Name = \"instance_id\",\n                        Value = instanceId,\n                    },\n                },\n            },\n        },\n        Policies = new[]\n        {\n            new Opentelekomcloud.Inputs.CesAlarmRuleV2PolicyArgs\n            {\n                MetricName = \"network_outgoing_bytes_rate_inband\",\n                Period = 300,\n                Filter = \"average\",\n                ComparisonOperator = \">\",\n                Value = 6.5,\n                Unit = \"B/s\",\n                Count = 1,\n                Level = 2,\n            },\n        },\n        AlarmActions = new[]\n        {\n            new Opentelekomcloud.Inputs.CesAlarmRuleV2AlarmActionArgs\n            {\n                Type = \"notification\",\n                NotificationLists = new[]\n                {\n                    topicUrn,\n                },\n            },\n        },\n        OkActions = new[]\n        {\n            new Opentelekomcloud.Inputs.CesAlarmRuleV2OkActionArgs\n            {\n                Type = \"notification\",\n                NotificationLists = new[]\n                {\n                    topicUrn,\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\ttopicUrn := cfg.RequireObject(\"topicUrn\")\n\t\t_, err := opentelekomcloud.NewCesAlarmRuleV2(ctx, \"test\", &opentelekomcloud.CesAlarmRuleV2Args{\n\t\t\tName:                pulumi.String(\"alarm-rule-with-ok-actions\"),\n\t\t\tNamespace:           pulumi.String(\"SYS.ECS\"),\n\t\t\tType:                pulumi.String(\"MULTI_INSTANCE\"),\n\t\t\tNotificationEnabled: pulumi.Bool(true),\n\t\t\tAlarmEnabled:        pulumi.Bool(true),\n\t\t\tResources: opentelekomcloud.CesAlarmRuleV2ResourceArray{\n\t\t\t\t&opentelekomcloud.CesAlarmRuleV2ResourceArgs{\n\t\t\t\t\tDimensions: opentelekomcloud.CesAlarmRuleV2ResourceDimensionArray{\n\t\t\t\t\t\t&opentelekomcloud.CesAlarmRuleV2ResourceDimensionArgs{\n\t\t\t\t\t\t\tName:  pulumi.String(\"instance_id\"),\n\t\t\t\t\t\t\tValue: pulumi.Any(instanceId),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tPolicies: opentelekomcloud.CesAlarmRuleV2PolicyArray{\n\t\t\t\t&opentelekomcloud.CesAlarmRuleV2PolicyArgs{\n\t\t\t\t\tMetricName:         pulumi.String(\"network_outgoing_bytes_rate_inband\"),\n\t\t\t\t\tPeriod:             pulumi.Float64(300),\n\t\t\t\t\tFilter:             pulumi.String(\"average\"),\n\t\t\t\t\tComparisonOperator: pulumi.String(\">\"),\n\t\t\t\t\tValue:              pulumi.Float64(6.5),\n\t\t\t\t\tUnit:               pulumi.String(\"B/s\"),\n\t\t\t\t\tCount:              pulumi.Float64(1),\n\t\t\t\t\tLevel:              pulumi.Float64(2),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAlarmActions: opentelekomcloud.CesAlarmRuleV2AlarmActionArray{\n\t\t\t\t&opentelekomcloud.CesAlarmRuleV2AlarmActionArgs{\n\t\t\t\t\tType: pulumi.String(\"notification\"),\n\t\t\t\t\tNotificationLists: pulumi.StringArray{\n\t\t\t\t\t\ttopicUrn,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tOkActions: opentelekomcloud.CesAlarmRuleV2OkActionArray{\n\t\t\t\t&opentelekomcloud.CesAlarmRuleV2OkActionArgs{\n\t\t\t\t\tType: pulumi.String(\"notification\"),\n\t\t\t\t\tNotificationLists: pulumi.StringArray{\n\t\t\t\t\t\ttopicUrn,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CesAlarmRuleV2;\nimport com.pulumi.opentelekomcloud.CesAlarmRuleV2Args;\nimport com.pulumi.opentelekomcloud.inputs.CesAlarmRuleV2ResourceArgs;\nimport com.pulumi.opentelekomcloud.inputs.CesAlarmRuleV2PolicyArgs;\nimport com.pulumi.opentelekomcloud.inputs.CesAlarmRuleV2AlarmActionArgs;\nimport com.pulumi.opentelekomcloud.inputs.CesAlarmRuleV2OkActionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var topicUrn = config.get(\"topicUrn\");\n        var test = new CesAlarmRuleV2(\"test\", CesAlarmRuleV2Args.builder()\n            .name(\"alarm-rule-with-ok-actions\")\n            .namespace(\"SYS.ECS\")\n            .type(\"MULTI_INSTANCE\")\n            .notificationEnabled(true)\n            .alarmEnabled(true)\n            .resources(CesAlarmRuleV2ResourceArgs.builder()\n                .dimensions(CesAlarmRuleV2ResourceDimensionArgs.builder()\n                    .name(\"instance_id\")\n                    .value(instanceId)\n                    .build())\n                .build())\n            .policies(CesAlarmRuleV2PolicyArgs.builder()\n                .metricName(\"network_outgoing_bytes_rate_inband\")\n                .period(300.0)\n                .filter(\"average\")\n                .comparisonOperator(\">\")\n                .value(6.5)\n                .unit(\"B/s\")\n                .count(1.0)\n                .level(2.0)\n                .build())\n            .alarmActions(CesAlarmRuleV2AlarmActionArgs.builder()\n                .type(\"notification\")\n                .notificationLists(topicUrn)\n                .build())\n            .okActions(CesAlarmRuleV2OkActionArgs.builder()\n                .type(\"notification\")\n                .notificationLists(topicUrn)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  topicUrn:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:CesAlarmRuleV2\n    properties:\n      name: alarm-rule-with-ok-actions\n      namespace: SYS.ECS\n      type: MULTI_INSTANCE\n      notificationEnabled: true\n      alarmEnabled: true\n      resources:\n        - dimensions:\n            - name: instance_id\n              value: ${instanceId}\n      policies:\n        - metricName: network_outgoing_bytes_rate_inband\n          period: 300\n          filter: average\n          comparisonOperator: '>'\n          value: 6.5\n          unit: B/s\n          count: 1\n          level: 2\n      alarmActions:\n        - type: notification\n          notificationLists:\n            - ${topicUrn}\n      okActions:\n        - type: notification\n          notificationLists:\n            - ${topicUrn}\n```\n<!--End PulumiCodeChooser -->\n\n### Alarm rule using alarm template\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst topicUrn = config.requireObject<any>(\"topicUrn\");\nconst alarmTemplateId = config.requireObject<any>(\"alarmTemplateId\");\nconst test = new opentelekomcloud.CesAlarmRuleV2(\"test\", {\n    name: \"alarm-rule-with-template\",\n    namespace: \"SYS.ECS\",\n    type: \"MULTI_INSTANCE\",\n    alarmTemplateId: alarmTemplateId,\n    notificationEnabled: true,\n    alarmEnabled: true,\n    resources: [{\n        dimensions: [{\n            name: \"instance_id\",\n            value: instanceId,\n        }],\n    }],\n    alarmActions: [{\n        type: \"notification\",\n        notificationLists: [topicUrn],\n    }],\n    okActions: [{\n        type: \"notification\",\n        notificationLists: [topicUrn],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ntopic_urn = config.require_object(\"topicUrn\")\nalarm_template_id = config.require_object(\"alarmTemplateId\")\ntest = opentelekomcloud.CesAlarmRuleV2(\"test\",\n    name=\"alarm-rule-with-template\",\n    namespace=\"SYS.ECS\",\n    type=\"MULTI_INSTANCE\",\n    alarm_template_id=alarm_template_id,\n    notification_enabled=True,\n    alarm_enabled=True,\n    resources=[{\n        \"dimensions\": [{\n            \"name\": \"instance_id\",\n            \"value\": instance_id,\n        }],\n    }],\n    alarm_actions=[{\n        \"type\": \"notification\",\n        \"notification_lists\": [topic_urn],\n    }],\n    ok_actions=[{\n        \"type\": \"notification\",\n        \"notification_lists\": [topic_urn],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var topicUrn = config.RequireObject<dynamic>(\"topicUrn\");\n    var alarmTemplateId = config.RequireObject<dynamic>(\"alarmTemplateId\");\n    var test = new Opentelekomcloud.CesAlarmRuleV2(\"test\", new()\n    {\n        Name = \"alarm-rule-with-template\",\n        Namespace = \"SYS.ECS\",\n        Type = \"MULTI_INSTANCE\",\n        AlarmTemplateId = alarmTemplateId,\n        NotificationEnabled = true,\n        AlarmEnabled = true,\n        Resources = new[]\n        {\n            new Opentelekomcloud.Inputs.CesAlarmRuleV2ResourceArgs\n            {\n                Dimensions = new[]\n                {\n                    new Opentelekomcloud.Inputs.CesAlarmRuleV2ResourceDimensionArgs\n                    {\n                        Name = \"instance_id\",\n                        Value = instanceId,\n                    },\n                },\n            },\n        },\n        AlarmActions = new[]\n        {\n            new Opentelekomcloud.Inputs.CesAlarmRuleV2AlarmActionArgs\n            {\n                Type = \"notification\",\n                NotificationLists = new[]\n                {\n                    topicUrn,\n                },\n            },\n        },\n        OkActions = new[]\n        {\n            new Opentelekomcloud.Inputs.CesAlarmRuleV2OkActionArgs\n            {\n                Type = \"notification\",\n                NotificationLists = new[]\n                {\n                    topicUrn,\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\ttopicUrn := cfg.RequireObject(\"topicUrn\")\n\t\talarmTemplateId := cfg.RequireObject(\"alarmTemplateId\")\n\t\t_, err := opentelekomcloud.NewCesAlarmRuleV2(ctx, \"test\", &opentelekomcloud.CesAlarmRuleV2Args{\n\t\t\tName:                pulumi.String(\"alarm-rule-with-template\"),\n\t\t\tNamespace:           pulumi.String(\"SYS.ECS\"),\n\t\t\tType:                pulumi.String(\"MULTI_INSTANCE\"),\n\t\t\tAlarmTemplateId:     pulumi.Any(alarmTemplateId),\n\t\t\tNotificationEnabled: pulumi.Bool(true),\n\t\t\tAlarmEnabled:        pulumi.Bool(true),\n\t\t\tResources: opentelekomcloud.CesAlarmRuleV2ResourceArray{\n\t\t\t\t&opentelekomcloud.CesAlarmRuleV2ResourceArgs{\n\t\t\t\t\tDimensions: opentelekomcloud.CesAlarmRuleV2ResourceDimensionArray{\n\t\t\t\t\t\t&opentelekomcloud.CesAlarmRuleV2ResourceDimensionArgs{\n\t\t\t\t\t\t\tName:  pulumi.String(\"instance_id\"),\n\t\t\t\t\t\t\tValue: pulumi.Any(instanceId),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tAlarmActions: opentelekomcloud.CesAlarmRuleV2AlarmActionArray{\n\t\t\t\t&opentelekomcloud.CesAlarmRuleV2AlarmActionArgs{\n\t\t\t\t\tType: pulumi.String(\"notification\"),\n\t\t\t\t\tNotificationLists: pulumi.StringArray{\n\t\t\t\t\t\ttopicUrn,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tOkActions: opentelekomcloud.CesAlarmRuleV2OkActionArray{\n\t\t\t\t&opentelekomcloud.CesAlarmRuleV2OkActionArgs{\n\t\t\t\t\tType: pulumi.String(\"notification\"),\n\t\t\t\t\tNotificationLists: pulumi.StringArray{\n\t\t\t\t\t\ttopicUrn,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CesAlarmRuleV2;\nimport com.pulumi.opentelekomcloud.CesAlarmRuleV2Args;\nimport com.pulumi.opentelekomcloud.inputs.CesAlarmRuleV2ResourceArgs;\nimport com.pulumi.opentelekomcloud.inputs.CesAlarmRuleV2AlarmActionArgs;\nimport com.pulumi.opentelekomcloud.inputs.CesAlarmRuleV2OkActionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var topicUrn = config.get(\"topicUrn\");\n        final var alarmTemplateId = config.get(\"alarmTemplateId\");\n        var test = new CesAlarmRuleV2(\"test\", CesAlarmRuleV2Args.builder()\n            .name(\"alarm-rule-with-template\")\n            .namespace(\"SYS.ECS\")\n            .type(\"MULTI_INSTANCE\")\n            .alarmTemplateId(alarmTemplateId)\n            .notificationEnabled(true)\n            .alarmEnabled(true)\n            .resources(CesAlarmRuleV2ResourceArgs.builder()\n                .dimensions(CesAlarmRuleV2ResourceDimensionArgs.builder()\n                    .name(\"instance_id\")\n                    .value(instanceId)\n                    .build())\n                .build())\n            .alarmActions(CesAlarmRuleV2AlarmActionArgs.builder()\n                .type(\"notification\")\n                .notificationLists(topicUrn)\n                .build())\n            .okActions(CesAlarmRuleV2OkActionArgs.builder()\n                .type(\"notification\")\n                .notificationLists(topicUrn)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  topicUrn:\n    type: dynamic\n  alarmTemplateId:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:CesAlarmRuleV2\n    properties:\n      name: alarm-rule-with-template\n      namespace: SYS.ECS\n      type: MULTI_INSTANCE\n      alarmTemplateId: ${alarmTemplateId}\n      notificationEnabled: true\n      alarmEnabled: true\n      resources:\n        - dimensions:\n            - name: instance_id\n              value: ${instanceId}\n      alarmActions:\n        - type: notification\n          notificationLists:\n            - ${topicUrn}\n      okActions:\n        - type: notification\n          notificationLists:\n            - ${topicUrn}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCES alarm rules v2 can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/cesAlarmRuleV2:CesAlarmRuleV2 alarm_rule al1619578509719Ga0X1RGWv\n```\n\n","inputProperties":{"alarmActions":{"description":"Specifies the action triggered by an alarm.\nThe<span pulumi-lang-nodejs=\" alarmActions \" pulumi-lang-dotnet=\" AlarmActions \" pulumi-lang-go=\" alarmActions \" pulumi-lang-python=\" alarm_actions \" pulumi-lang-yaml=\" alarmActions \" pulumi-lang-java=\" alarmActions \"> alarm_actions </span>structure is documented below.\nChanging this creates a new resource.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmRuleV2AlarmAction:CesAlarmRuleV2AlarmAction"},"type":"array"},"alarmEnabled":{"description":"Specifies whether to enable the alarm rule.\nThe default value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"alarmTemplateId":{"description":"Specifies the ID of the alarm template.\nWhen using an alarm template, the policies are inherited from the template.\nExactly one of <span pulumi-lang-nodejs=\"`alarmTemplateId`\" pulumi-lang-dotnet=\"`AlarmTemplateId`\" pulumi-lang-go=\"`alarmTemplateId`\" pulumi-lang-python=\"`alarm_template_id`\" pulumi-lang-yaml=\"`alarmTemplateId`\" pulumi-lang-java=\"`alarmTemplateId`\">`alarm_template_id`</span> or <span pulumi-lang-nodejs=\"`policies`\" pulumi-lang-dotnet=\"`Policies`\" pulumi-lang-go=\"`policies`\" pulumi-lang-python=\"`policies`\" pulumi-lang-yaml=\"`policies`\" pulumi-lang-java=\"`policies`\">`policies`</span> must be specified.\nChanging this creates a new resource.\n","type":"string"},"cesAlarmRuleV2Id":{"description":"The resource ID in UUID format.\n","type":"string"},"description":{"description":"The value can be a string of <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> to <span pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\">`256`</span> characters.\nChanging this creates a new resource.\n","type":"string"},"enterpriseProjectId":{"description":"Specifies the enterprise project ID of the alarm rule.\nChanging this creates a new resource.\n\n> **Note** If <span pulumi-lang-nodejs=\"`notificationEnabled`\" pulumi-lang-dotnet=\"`NotificationEnabled`\" pulumi-lang-go=\"`notificationEnabled`\" pulumi-lang-python=\"`notification_enabled`\" pulumi-lang-yaml=\"`notificationEnabled`\" pulumi-lang-java=\"`notificationEnabled`\">`notification_enabled`</span> is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>, either <span pulumi-lang-nodejs=\"`alarmActions`\" pulumi-lang-dotnet=\"`AlarmActions`\" pulumi-lang-go=\"`alarmActions`\" pulumi-lang-python=\"`alarm_actions`\" pulumi-lang-yaml=\"`alarmActions`\" pulumi-lang-java=\"`alarmActions`\">`alarm_actions`</span> or <span pulumi-lang-nodejs=\"`okActions`\" pulumi-lang-dotnet=\"`OkActions`\" pulumi-lang-go=\"`okActions`\" pulumi-lang-python=\"`ok_actions`\" pulumi-lang-yaml=\"`okActions`\" pulumi-lang-java=\"`okActions`\">`ok_actions`</span> cannot be empty.\nIf <span pulumi-lang-nodejs=\"`alarmActions`\" pulumi-lang-dotnet=\"`AlarmActions`\" pulumi-lang-go=\"`alarmActions`\" pulumi-lang-python=\"`alarm_actions`\" pulumi-lang-yaml=\"`alarmActions`\" pulumi-lang-java=\"`alarmActions`\">`alarm_actions`</span> and <span pulumi-lang-nodejs=\"`okActions`\" pulumi-lang-dotnet=\"`OkActions`\" pulumi-lang-go=\"`okActions`\" pulumi-lang-python=\"`ok_actions`\" pulumi-lang-yaml=\"`okActions`\" pulumi-lang-java=\"`okActions`\">`ok_actions`</span> coexist, their corresponding <span pulumi-lang-nodejs=\"`notificationList`\" pulumi-lang-dotnet=\"`NotificationList`\" pulumi-lang-go=\"`notificationList`\" pulumi-lang-python=\"`notification_list`\" pulumi-lang-yaml=\"`notificationList`\" pulumi-lang-java=\"`notificationList`\">`notification_list`</span> must be of the same value.\n\n<a name=<span pulumi-lang-nodejs=\"\"policiesStruct\"\" pulumi-lang-dotnet=\"\"PoliciesStruct\"\" pulumi-lang-go=\"\"policiesStruct\"\" pulumi-lang-python=\"\"policies_struct\"\" pulumi-lang-yaml=\"\"policiesStruct\"\" pulumi-lang-java=\"\"policiesStruct\"\">\"policies_struct\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`policies`\" pulumi-lang-dotnet=\"`Policies`\" pulumi-lang-go=\"`policies`\" pulumi-lang-python=\"`policies`\" pulumi-lang-yaml=\"`policies`\" pulumi-lang-java=\"`policies`\">`policies`</span> block supports:\n","type":"string"},"name":{"description":"Specifies the dimension name. The value can be a string of <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> characters\nthat must start with a letter and contain only letters, digits, underscores (_), and hyphens (-).\n","type":"string"},"namespace":{"description":"Specifies the namespace in `service.item` format. <span pulumi-lang-nodejs=\"`service`\" pulumi-lang-dotnet=\"`Service`\" pulumi-lang-go=\"`service`\" pulumi-lang-python=\"`service`\" pulumi-lang-yaml=\"`service`\" pulumi-lang-java=\"`service`\">`service`</span> and <span pulumi-lang-nodejs=\"`item`\" pulumi-lang-dotnet=\"`Item`\" pulumi-lang-go=\"`item`\" pulumi-lang-python=\"`item`\" pulumi-lang-yaml=\"`item`\" pulumi-lang-java=\"`item`\">`item`</span>\neach must be a string that starts with a letter and contains only letters, digits, and underscores (_).\nChanging this creates a new resource.\nFor details, see [Services Interconnected with Cloud Eye](https://docs.otc.t-systems.com/cloud-eye/api-ref/appendix/services_interconnected_with_cloud_eye.html).\n","type":"string"},"notificationBeginTime":{"description":"Specifies the alarm notification start time,\nfor example: **05:30**. Changing this creates a new resource.\n","type":"string"},"notificationEnabled":{"description":"Specifies whether to enable the action to be triggered by an alarm.\nThe default value is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Changing this creates a new resource.\n","type":"boolean"},"notificationEndTime":{"description":"Specifies the alarm notification stop time,\nfor example: **22:10**. Changing this creates a new resource.\n","type":"string"},"okActions":{"description":"Specifies the action triggered by the clearing of an alarm.\nThe<span pulumi-lang-nodejs=\" okActions \" pulumi-lang-dotnet=\" OkActions \" pulumi-lang-go=\" okActions \" pulumi-lang-python=\" ok_actions \" pulumi-lang-yaml=\" okActions \" pulumi-lang-java=\" okActions \"> ok_actions </span>structure is documented below.\nChanging this creates a new resource.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmRuleV2OkAction:CesAlarmRuleV2OkAction"},"type":"array"},"policies":{"description":"Specifies the alarm policies. The policies structure is\ndocumented below. Exactly one of <span pulumi-lang-nodejs=\"`policies`\" pulumi-lang-dotnet=\"`Policies`\" pulumi-lang-go=\"`policies`\" pulumi-lang-python=\"`policies`\" pulumi-lang-yaml=\"`policies`\" pulumi-lang-java=\"`policies`\">`policies`</span> or <span pulumi-lang-nodejs=\"`alarmTemplateId`\" pulumi-lang-dotnet=\"`AlarmTemplateId`\" pulumi-lang-go=\"`alarmTemplateId`\" pulumi-lang-python=\"`alarm_template_id`\" pulumi-lang-yaml=\"`alarmTemplateId`\" pulumi-lang-java=\"`alarmTemplateId`\">`alarm_template_id`</span> must be specified.\nWhen using <span pulumi-lang-nodejs=\"`alarmTemplateId`\" pulumi-lang-dotnet=\"`AlarmTemplateId`\" pulumi-lang-go=\"`alarmTemplateId`\" pulumi-lang-python=\"`alarm_template_id`\" pulumi-lang-yaml=\"`alarmTemplateId`\" pulumi-lang-java=\"`alarmTemplateId`\">`alarm_template_id`</span>, the policies are inherited from the template and cannot be modified directly.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmRuleV2Policy:CesAlarmRuleV2Policy"},"type":"array"},"resourceGroupId":{"description":"Specifies the resource group ID.\nChanging this creates a new resource.\n","type":"string"},"resources":{"description":"Specifies the list of resources to monitor.\nThe resources structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmRuleV2Resource:CesAlarmRuleV2Resource"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmRuleV2Timeouts:CesAlarmRuleV2Timeouts"},"type":{"description":"Specifies the type of action triggered by an alarm. The value can be:\n+ **notification**: indicates that a notification will be sent to the user.\n+ **autoscaling**: indicates that a scaling action will be triggered.\n","type":"string"}},"properties":{"alarmActions":{"description":"Specifies the action triggered by an alarm.\nThe<span pulumi-lang-nodejs=\" alarmActions \" pulumi-lang-dotnet=\" AlarmActions \" pulumi-lang-go=\" alarmActions \" pulumi-lang-python=\" alarm_actions \" pulumi-lang-yaml=\" alarmActions \" pulumi-lang-java=\" alarmActions \"> alarm_actions </span>structure is documented below.\nChanging this creates a new resource.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmRuleV2AlarmAction:CesAlarmRuleV2AlarmAction"},"type":"array"},"alarmEnabled":{"description":"Specifies whether to enable the alarm rule.\nThe default value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"alarmId":{"description":"The alarm rule ID.\n","type":"string"},"alarmTemplateId":{"description":"Specifies the ID of the alarm template.\nWhen using an alarm template, the policies are inherited from the template.\nExactly one of <span pulumi-lang-nodejs=\"`alarmTemplateId`\" pulumi-lang-dotnet=\"`AlarmTemplateId`\" pulumi-lang-go=\"`alarmTemplateId`\" pulumi-lang-python=\"`alarm_template_id`\" pulumi-lang-yaml=\"`alarmTemplateId`\" pulumi-lang-java=\"`alarmTemplateId`\">`alarm_template_id`</span> or <span pulumi-lang-nodejs=\"`policies`\" pulumi-lang-dotnet=\"`Policies`\" pulumi-lang-go=\"`policies`\" pulumi-lang-python=\"`policies`\" pulumi-lang-yaml=\"`policies`\" pulumi-lang-java=\"`policies`\">`policies`</span> must be specified.\nChanging this creates a new resource.\n","type":"string"},"cesAlarmRuleV2Id":{"description":"The resource ID in UUID format.\n","type":"string"},"description":{"description":"The value can be a string of <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> to <span pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\">`256`</span> characters.\nChanging this creates a new resource.\n","type":"string"},"enterpriseProjectId":{"description":"Specifies the enterprise project ID of the alarm rule.\nChanging this creates a new resource.\n\n> **Note** If <span pulumi-lang-nodejs=\"`notificationEnabled`\" pulumi-lang-dotnet=\"`NotificationEnabled`\" pulumi-lang-go=\"`notificationEnabled`\" pulumi-lang-python=\"`notification_enabled`\" pulumi-lang-yaml=\"`notificationEnabled`\" pulumi-lang-java=\"`notificationEnabled`\">`notification_enabled`</span> is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>, either <span pulumi-lang-nodejs=\"`alarmActions`\" pulumi-lang-dotnet=\"`AlarmActions`\" pulumi-lang-go=\"`alarmActions`\" pulumi-lang-python=\"`alarm_actions`\" pulumi-lang-yaml=\"`alarmActions`\" pulumi-lang-java=\"`alarmActions`\">`alarm_actions`</span> or <span pulumi-lang-nodejs=\"`okActions`\" pulumi-lang-dotnet=\"`OkActions`\" pulumi-lang-go=\"`okActions`\" pulumi-lang-python=\"`ok_actions`\" pulumi-lang-yaml=\"`okActions`\" pulumi-lang-java=\"`okActions`\">`ok_actions`</span> cannot be empty.\nIf <span pulumi-lang-nodejs=\"`alarmActions`\" pulumi-lang-dotnet=\"`AlarmActions`\" pulumi-lang-go=\"`alarmActions`\" pulumi-lang-python=\"`alarm_actions`\" pulumi-lang-yaml=\"`alarmActions`\" pulumi-lang-java=\"`alarmActions`\">`alarm_actions`</span> and <span pulumi-lang-nodejs=\"`okActions`\" pulumi-lang-dotnet=\"`OkActions`\" pulumi-lang-go=\"`okActions`\" pulumi-lang-python=\"`ok_actions`\" pulumi-lang-yaml=\"`okActions`\" pulumi-lang-java=\"`okActions`\">`ok_actions`</span> coexist, their corresponding <span pulumi-lang-nodejs=\"`notificationList`\" pulumi-lang-dotnet=\"`NotificationList`\" pulumi-lang-go=\"`notificationList`\" pulumi-lang-python=\"`notification_list`\" pulumi-lang-yaml=\"`notificationList`\" pulumi-lang-java=\"`notificationList`\">`notification_list`</span> must be of the same value.\n\n<a name=<span pulumi-lang-nodejs=\"\"policiesStruct\"\" pulumi-lang-dotnet=\"\"PoliciesStruct\"\" pulumi-lang-go=\"\"policiesStruct\"\" pulumi-lang-python=\"\"policies_struct\"\" pulumi-lang-yaml=\"\"policiesStruct\"\" pulumi-lang-java=\"\"policiesStruct\"\">\"policies_struct\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`policies`\" pulumi-lang-dotnet=\"`Policies`\" pulumi-lang-go=\"`policies`\" pulumi-lang-python=\"`policies`\" pulumi-lang-yaml=\"`policies`\" pulumi-lang-java=\"`policies`\">`policies`</span> block supports:\n","type":"string"},"name":{"description":"Specifies the dimension name. The value can be a string of <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> characters\nthat must start with a letter and contain only letters, digits, underscores (_), and hyphens (-).\n","type":"string"},"namespace":{"description":"Specifies the namespace in `service.item` format. <span pulumi-lang-nodejs=\"`service`\" pulumi-lang-dotnet=\"`Service`\" pulumi-lang-go=\"`service`\" pulumi-lang-python=\"`service`\" pulumi-lang-yaml=\"`service`\" pulumi-lang-java=\"`service`\">`service`</span> and <span pulumi-lang-nodejs=\"`item`\" pulumi-lang-dotnet=\"`Item`\" pulumi-lang-go=\"`item`\" pulumi-lang-python=\"`item`\" pulumi-lang-yaml=\"`item`\" pulumi-lang-java=\"`item`\">`item`</span>\neach must be a string that starts with a letter and contains only letters, digits, and underscores (_).\nChanging this creates a new resource.\nFor details, see [Services Interconnected with Cloud Eye](https://docs.otc.t-systems.com/cloud-eye/api-ref/appendix/services_interconnected_with_cloud_eye.html).\n","type":"string"},"notificationBeginTime":{"description":"Specifies the alarm notification start time,\nfor example: **05:30**. Changing this creates a new resource.\n","type":"string"},"notificationEnabled":{"description":"Specifies whether to enable the action to be triggered by an alarm.\nThe default value is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Changing this creates a new resource.\n","type":"boolean"},"notificationEndTime":{"description":"Specifies the alarm notification stop time,\nfor example: **22:10**. Changing this creates a new resource.\n","type":"string"},"okActions":{"description":"Specifies the action triggered by the clearing of an alarm.\nThe<span pulumi-lang-nodejs=\" okActions \" pulumi-lang-dotnet=\" OkActions \" pulumi-lang-go=\" okActions \" pulumi-lang-python=\" ok_actions \" pulumi-lang-yaml=\" okActions \" pulumi-lang-java=\" okActions \"> ok_actions </span>structure is documented below.\nChanging this creates a new resource.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmRuleV2OkAction:CesAlarmRuleV2OkAction"},"type":"array"},"policies":{"description":"Specifies the alarm policies. The policies structure is\ndocumented below. Exactly one of <span pulumi-lang-nodejs=\"`policies`\" pulumi-lang-dotnet=\"`Policies`\" pulumi-lang-go=\"`policies`\" pulumi-lang-python=\"`policies`\" pulumi-lang-yaml=\"`policies`\" pulumi-lang-java=\"`policies`\">`policies`</span> or <span pulumi-lang-nodejs=\"`alarmTemplateId`\" pulumi-lang-dotnet=\"`AlarmTemplateId`\" pulumi-lang-go=\"`alarmTemplateId`\" pulumi-lang-python=\"`alarm_template_id`\" pulumi-lang-yaml=\"`alarmTemplateId`\" pulumi-lang-java=\"`alarmTemplateId`\">`alarm_template_id`</span> must be specified.\nWhen using <span pulumi-lang-nodejs=\"`alarmTemplateId`\" pulumi-lang-dotnet=\"`AlarmTemplateId`\" pulumi-lang-go=\"`alarmTemplateId`\" pulumi-lang-python=\"`alarm_template_id`\" pulumi-lang-yaml=\"`alarmTemplateId`\" pulumi-lang-java=\"`alarmTemplateId`\">`alarm_template_id`</span>, the policies are inherited from the template and cannot be modified directly.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmRuleV2Policy:CesAlarmRuleV2Policy"},"type":"array"},"resourceGroupId":{"description":"Specifies the resource group ID.\nChanging this creates a new resource.\n","type":"string"},"resources":{"description":"Specifies the list of resources to monitor.\nThe resources structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmRuleV2Resource:CesAlarmRuleV2Resource"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmRuleV2Timeouts:CesAlarmRuleV2Timeouts"},"type":{"description":"Specifies the type of action triggered by an alarm. The value can be:\n+ **notification**: indicates that a notification will be sent to the user.\n+ **autoscaling**: indicates that a scaling action will be triggered.\n","type":"string"}},"required":["alarmId","cesAlarmRuleV2Id","enterpriseProjectId","name","namespace","notificationBeginTime","notificationEndTime"],"requiredInputs":["namespace"],"stateInputs":{"description":"Input properties used for looking up and filtering CesAlarmRuleV2 resources.\n","properties":{"alarmActions":{"description":"Specifies the action triggered by an alarm.\nThe<span pulumi-lang-nodejs=\" alarmActions \" pulumi-lang-dotnet=\" AlarmActions \" pulumi-lang-go=\" alarmActions \" pulumi-lang-python=\" alarm_actions \" pulumi-lang-yaml=\" alarmActions \" pulumi-lang-java=\" alarmActions \"> alarm_actions </span>structure is documented below.\nChanging this creates a new resource.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmRuleV2AlarmAction:CesAlarmRuleV2AlarmAction"},"type":"array"},"alarmEnabled":{"description":"Specifies whether to enable the alarm rule.\nThe default value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"alarmId":{"description":"The alarm rule ID.\n","type":"string"},"alarmTemplateId":{"description":"Specifies the ID of the alarm template.\nWhen using an alarm template, the policies are inherited from the template.\nExactly one of <span pulumi-lang-nodejs=\"`alarmTemplateId`\" pulumi-lang-dotnet=\"`AlarmTemplateId`\" pulumi-lang-go=\"`alarmTemplateId`\" pulumi-lang-python=\"`alarm_template_id`\" pulumi-lang-yaml=\"`alarmTemplateId`\" pulumi-lang-java=\"`alarmTemplateId`\">`alarm_template_id`</span> or <span pulumi-lang-nodejs=\"`policies`\" pulumi-lang-dotnet=\"`Policies`\" pulumi-lang-go=\"`policies`\" pulumi-lang-python=\"`policies`\" pulumi-lang-yaml=\"`policies`\" pulumi-lang-java=\"`policies`\">`policies`</span> must be specified.\nChanging this creates a new resource.\n","type":"string"},"cesAlarmRuleV2Id":{"description":"The resource ID in UUID format.\n","type":"string"},"description":{"description":"The value can be a string of <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> to <span pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\">`256`</span> characters.\nChanging this creates a new resource.\n","type":"string"},"enterpriseProjectId":{"description":"Specifies the enterprise project ID of the alarm rule.\nChanging this creates a new resource.\n\n> **Note** If <span pulumi-lang-nodejs=\"`notificationEnabled`\" pulumi-lang-dotnet=\"`NotificationEnabled`\" pulumi-lang-go=\"`notificationEnabled`\" pulumi-lang-python=\"`notification_enabled`\" pulumi-lang-yaml=\"`notificationEnabled`\" pulumi-lang-java=\"`notificationEnabled`\">`notification_enabled`</span> is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>, either <span pulumi-lang-nodejs=\"`alarmActions`\" pulumi-lang-dotnet=\"`AlarmActions`\" pulumi-lang-go=\"`alarmActions`\" pulumi-lang-python=\"`alarm_actions`\" pulumi-lang-yaml=\"`alarmActions`\" pulumi-lang-java=\"`alarmActions`\">`alarm_actions`</span> or <span pulumi-lang-nodejs=\"`okActions`\" pulumi-lang-dotnet=\"`OkActions`\" pulumi-lang-go=\"`okActions`\" pulumi-lang-python=\"`ok_actions`\" pulumi-lang-yaml=\"`okActions`\" pulumi-lang-java=\"`okActions`\">`ok_actions`</span> cannot be empty.\nIf <span pulumi-lang-nodejs=\"`alarmActions`\" pulumi-lang-dotnet=\"`AlarmActions`\" pulumi-lang-go=\"`alarmActions`\" pulumi-lang-python=\"`alarm_actions`\" pulumi-lang-yaml=\"`alarmActions`\" pulumi-lang-java=\"`alarmActions`\">`alarm_actions`</span> and <span pulumi-lang-nodejs=\"`okActions`\" pulumi-lang-dotnet=\"`OkActions`\" pulumi-lang-go=\"`okActions`\" pulumi-lang-python=\"`ok_actions`\" pulumi-lang-yaml=\"`okActions`\" pulumi-lang-java=\"`okActions`\">`ok_actions`</span> coexist, their corresponding <span pulumi-lang-nodejs=\"`notificationList`\" pulumi-lang-dotnet=\"`NotificationList`\" pulumi-lang-go=\"`notificationList`\" pulumi-lang-python=\"`notification_list`\" pulumi-lang-yaml=\"`notificationList`\" pulumi-lang-java=\"`notificationList`\">`notification_list`</span> must be of the same value.\n\n<a name=<span pulumi-lang-nodejs=\"\"policiesStruct\"\" pulumi-lang-dotnet=\"\"PoliciesStruct\"\" pulumi-lang-go=\"\"policiesStruct\"\" pulumi-lang-python=\"\"policies_struct\"\" pulumi-lang-yaml=\"\"policiesStruct\"\" pulumi-lang-java=\"\"policiesStruct\"\">\"policies_struct\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`policies`\" pulumi-lang-dotnet=\"`Policies`\" pulumi-lang-go=\"`policies`\" pulumi-lang-python=\"`policies`\" pulumi-lang-yaml=\"`policies`\" pulumi-lang-java=\"`policies`\">`policies`</span> block supports:\n","type":"string"},"name":{"description":"Specifies the dimension name. The value can be a string of <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> characters\nthat must start with a letter and contain only letters, digits, underscores (_), and hyphens (-).\n","type":"string"},"namespace":{"description":"Specifies the namespace in `service.item` format. <span pulumi-lang-nodejs=\"`service`\" pulumi-lang-dotnet=\"`Service`\" pulumi-lang-go=\"`service`\" pulumi-lang-python=\"`service`\" pulumi-lang-yaml=\"`service`\" pulumi-lang-java=\"`service`\">`service`</span> and <span pulumi-lang-nodejs=\"`item`\" pulumi-lang-dotnet=\"`Item`\" pulumi-lang-go=\"`item`\" pulumi-lang-python=\"`item`\" pulumi-lang-yaml=\"`item`\" pulumi-lang-java=\"`item`\">`item`</span>\neach must be a string that starts with a letter and contains only letters, digits, and underscores (_).\nChanging this creates a new resource.\nFor details, see [Services Interconnected with Cloud Eye](https://docs.otc.t-systems.com/cloud-eye/api-ref/appendix/services_interconnected_with_cloud_eye.html).\n","type":"string"},"notificationBeginTime":{"description":"Specifies the alarm notification start time,\nfor example: **05:30**. Changing this creates a new resource.\n","type":"string"},"notificationEnabled":{"description":"Specifies whether to enable the action to be triggered by an alarm.\nThe default value is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Changing this creates a new resource.\n","type":"boolean"},"notificationEndTime":{"description":"Specifies the alarm notification stop time,\nfor example: **22:10**. Changing this creates a new resource.\n","type":"string"},"okActions":{"description":"Specifies the action triggered by the clearing of an alarm.\nThe<span pulumi-lang-nodejs=\" okActions \" pulumi-lang-dotnet=\" OkActions \" pulumi-lang-go=\" okActions \" pulumi-lang-python=\" ok_actions \" pulumi-lang-yaml=\" okActions \" pulumi-lang-java=\" okActions \"> ok_actions </span>structure is documented below.\nChanging this creates a new resource.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmRuleV2OkAction:CesAlarmRuleV2OkAction"},"type":"array"},"policies":{"description":"Specifies the alarm policies. The policies structure is\ndocumented below. Exactly one of <span pulumi-lang-nodejs=\"`policies`\" pulumi-lang-dotnet=\"`Policies`\" pulumi-lang-go=\"`policies`\" pulumi-lang-python=\"`policies`\" pulumi-lang-yaml=\"`policies`\" pulumi-lang-java=\"`policies`\">`policies`</span> or <span pulumi-lang-nodejs=\"`alarmTemplateId`\" pulumi-lang-dotnet=\"`AlarmTemplateId`\" pulumi-lang-go=\"`alarmTemplateId`\" pulumi-lang-python=\"`alarm_template_id`\" pulumi-lang-yaml=\"`alarmTemplateId`\" pulumi-lang-java=\"`alarmTemplateId`\">`alarm_template_id`</span> must be specified.\nWhen using <span pulumi-lang-nodejs=\"`alarmTemplateId`\" pulumi-lang-dotnet=\"`AlarmTemplateId`\" pulumi-lang-go=\"`alarmTemplateId`\" pulumi-lang-python=\"`alarm_template_id`\" pulumi-lang-yaml=\"`alarmTemplateId`\" pulumi-lang-java=\"`alarmTemplateId`\">`alarm_template_id`</span>, the policies are inherited from the template and cannot be modified directly.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmRuleV2Policy:CesAlarmRuleV2Policy"},"type":"array"},"resourceGroupId":{"description":"Specifies the resource group ID.\nChanging this creates a new resource.\n","type":"string"},"resources":{"description":"Specifies the list of resources to monitor.\nThe resources structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmRuleV2Resource:CesAlarmRuleV2Resource"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmRuleV2Timeouts:CesAlarmRuleV2Timeouts"},"type":{"description":"Specifies the type of action triggered by an alarm. The value can be:\n+ **notification**: indicates that a notification will be sent to the user.\n+ **autoscaling**: indicates that a scaling action will be triggered.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cesAlarmTemplateV2:CesAlarmTemplateV2":{"description":"Up-to-date reference of API arguments for CES alarm template you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-eye/api-ref/api_v2/alarm_templates/index.html)\n\nManages a CES alarm template resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Create a metric alarm template\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = new opentelekomcloud.CesAlarmTemplateV2(\"test\", {\n    name: \"my-alarm-template\",\n    description: \"Alarm template for ECS monitoring\",\n    policies: [{\n        namespace: \"SYS.ECS\",\n        dimensionName: \"instance_id\",\n        metricName: \"cpu_util\",\n        period: 300,\n        filter: \"average\",\n        comparisonOperator: \">=\",\n        value: 80,\n        unit: \"%\",\n        count: 3,\n        alarmLevel: 2,\n        suppressDuration: 3600,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.CesAlarmTemplateV2(\"test\",\n    name=\"my-alarm-template\",\n    description=\"Alarm template for ECS monitoring\",\n    policies=[{\n        \"namespace\": \"SYS.ECS\",\n        \"dimension_name\": \"instance_id\",\n        \"metric_name\": \"cpu_util\",\n        \"period\": 300,\n        \"filter\": \"average\",\n        \"comparison_operator\": \">=\",\n        \"value\": 80,\n        \"unit\": \"%\",\n        \"count\": 3,\n        \"alarm_level\": 2,\n        \"suppress_duration\": 3600,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = new Opentelekomcloud.CesAlarmTemplateV2(\"test\", new()\n    {\n        Name = \"my-alarm-template\",\n        Description = \"Alarm template for ECS monitoring\",\n        Policies = new[]\n        {\n            new Opentelekomcloud.Inputs.CesAlarmTemplateV2PolicyArgs\n            {\n                Namespace = \"SYS.ECS\",\n                DimensionName = \"instance_id\",\n                MetricName = \"cpu_util\",\n                Period = 300,\n                Filter = \"average\",\n                ComparisonOperator = \">=\",\n                Value = 80,\n                Unit = \"%\",\n                Count = 3,\n                AlarmLevel = 2,\n                SuppressDuration = 3600,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewCesAlarmTemplateV2(ctx, \"test\", &opentelekomcloud.CesAlarmTemplateV2Args{\n\t\t\tName:        pulumi.String(\"my-alarm-template\"),\n\t\t\tDescription: pulumi.String(\"Alarm template for ECS monitoring\"),\n\t\t\tPolicies: opentelekomcloud.CesAlarmTemplateV2PolicyArray{\n\t\t\t\t&opentelekomcloud.CesAlarmTemplateV2PolicyArgs{\n\t\t\t\t\tNamespace:          pulumi.String(\"SYS.ECS\"),\n\t\t\t\t\tDimensionName:      pulumi.String(\"instance_id\"),\n\t\t\t\t\tMetricName:         pulumi.String(\"cpu_util\"),\n\t\t\t\t\tPeriod:             pulumi.Float64(300),\n\t\t\t\t\tFilter:             pulumi.String(\"average\"),\n\t\t\t\t\tComparisonOperator: pulumi.String(\">=\"),\n\t\t\t\t\tValue:              pulumi.Float64(80),\n\t\t\t\t\tUnit:               pulumi.String(\"%\"),\n\t\t\t\t\tCount:              pulumi.Float64(3),\n\t\t\t\t\tAlarmLevel:         pulumi.Float64(2),\n\t\t\t\t\tSuppressDuration:   pulumi.Float64(3600),\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.opentelekomcloud.CesAlarmTemplateV2;\nimport com.pulumi.opentelekomcloud.CesAlarmTemplateV2Args;\nimport com.pulumi.opentelekomcloud.inputs.CesAlarmTemplateV2PolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new CesAlarmTemplateV2(\"test\", CesAlarmTemplateV2Args.builder()\n            .name(\"my-alarm-template\")\n            .description(\"Alarm template for ECS monitoring\")\n            .policies(CesAlarmTemplateV2PolicyArgs.builder()\n                .namespace(\"SYS.ECS\")\n                .dimensionName(\"instance_id\")\n                .metricName(\"cpu_util\")\n                .period(300.0)\n                .filter(\"average\")\n                .comparisonOperator(\">=\")\n                .value(80.0)\n                .unit(\"%\")\n                .count(3.0)\n                .alarmLevel(2.0)\n                .suppressDuration(3600.0)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: opentelekomcloud:CesAlarmTemplateV2\n    properties:\n      name: my-alarm-template\n      description: Alarm template for ECS monitoring\n      policies:\n        - namespace: SYS.ECS\n          dimensionName: instance_id\n          metricName: cpu_util\n          period: 300\n          filter: average\n          comparisonOperator: '>='\n          value: 80\n          unit: '%'\n          count: 3\n          alarmLevel: 2\n          suppressDuration: 3600\n```\n<!--End PulumiCodeChooser -->\n\n### Create an event alarm template\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = new opentelekomcloud.CesAlarmTemplateV2(\"test\", {\n    name: \"my-event-template\",\n    type: 2,\n    description: \"Event alarm template\",\n    policies: [{\n        namespace: \"SYS.ECS\",\n        metricName: \"stopServer\",\n        period: 0,\n        filter: \"average\",\n        comparisonOperator: \">=\",\n        value: 1,\n        unit: \"count\",\n        count: 1,\n        alarmLevel: 2,\n        suppressDuration: 0,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.CesAlarmTemplateV2(\"test\",\n    name=\"my-event-template\",\n    type=2,\n    description=\"Event alarm template\",\n    policies=[{\n        \"namespace\": \"SYS.ECS\",\n        \"metric_name\": \"stopServer\",\n        \"period\": 0,\n        \"filter\": \"average\",\n        \"comparison_operator\": \">=\",\n        \"value\": 1,\n        \"unit\": \"count\",\n        \"count\": 1,\n        \"alarm_level\": 2,\n        \"suppress_duration\": 0,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = new Opentelekomcloud.CesAlarmTemplateV2(\"test\", new()\n    {\n        Name = \"my-event-template\",\n        Type = 2,\n        Description = \"Event alarm template\",\n        Policies = new[]\n        {\n            new Opentelekomcloud.Inputs.CesAlarmTemplateV2PolicyArgs\n            {\n                Namespace = \"SYS.ECS\",\n                MetricName = \"stopServer\",\n                Period = 0,\n                Filter = \"average\",\n                ComparisonOperator = \">=\",\n                Value = 1,\n                Unit = \"count\",\n                Count = 1,\n                AlarmLevel = 2,\n                SuppressDuration = 0,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewCesAlarmTemplateV2(ctx, \"test\", &opentelekomcloud.CesAlarmTemplateV2Args{\n\t\t\tName:        pulumi.String(\"my-event-template\"),\n\t\t\tType:        pulumi.Float64(2),\n\t\t\tDescription: pulumi.String(\"Event alarm template\"),\n\t\t\tPolicies: opentelekomcloud.CesAlarmTemplateV2PolicyArray{\n\t\t\t\t&opentelekomcloud.CesAlarmTemplateV2PolicyArgs{\n\t\t\t\t\tNamespace:          pulumi.String(\"SYS.ECS\"),\n\t\t\t\t\tMetricName:         pulumi.String(\"stopServer\"),\n\t\t\t\t\tPeriod:             pulumi.Float64(0),\n\t\t\t\t\tFilter:             pulumi.String(\"average\"),\n\t\t\t\t\tComparisonOperator: pulumi.String(\">=\"),\n\t\t\t\t\tValue:              pulumi.Float64(1),\n\t\t\t\t\tUnit:               pulumi.String(\"count\"),\n\t\t\t\t\tCount:              pulumi.Float64(1),\n\t\t\t\t\tAlarmLevel:         pulumi.Float64(2),\n\t\t\t\t\tSuppressDuration:   pulumi.Float64(0),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CesAlarmTemplateV2;\nimport com.pulumi.opentelekomcloud.CesAlarmTemplateV2Args;\nimport com.pulumi.opentelekomcloud.inputs.CesAlarmTemplateV2PolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new CesAlarmTemplateV2(\"test\", CesAlarmTemplateV2Args.builder()\n            .name(\"my-event-template\")\n            .type(2.0)\n            .description(\"Event alarm template\")\n            .policies(CesAlarmTemplateV2PolicyArgs.builder()\n                .namespace(\"SYS.ECS\")\n                .metricName(\"stopServer\")\n                .period(0.0)\n                .filter(\"average\")\n                .comparisonOperator(\">=\")\n                .value(1.0)\n                .unit(\"count\")\n                .count(1.0)\n                .alarmLevel(2.0)\n                .suppressDuration(0.0)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: opentelekomcloud:CesAlarmTemplateV2\n    properties:\n      name: my-event-template\n      type: 2\n      description: Event alarm template\n      policies:\n        - namespace: SYS.ECS\n          metricName: stopServer\n          period: 0\n          filter: average\n          comparisonOperator: '>='\n          value: 1\n          unit: count\n          count: 1\n          alarmLevel: 2\n          suppressDuration: 0\n```\n<!--End PulumiCodeChooser -->\n\n### Create an alarm template with multiple policies\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = new opentelekomcloud.CesAlarmTemplateV2(\"test\", {\n    name: \"multi-policy-template\",\n    description: \"Alarm template with multiple monitoring policies\",\n    policies: [\n        {\n            namespace: \"SYS.ECS\",\n            dimensionName: \"instance_id\",\n            metricName: \"cpu_util\",\n            period: 300,\n            filter: \"average\",\n            comparisonOperator: \">\",\n            value: 80,\n            unit: \"%\",\n            count: 3,\n            alarmLevel: 2,\n            suppressDuration: 300,\n        },\n        {\n            namespace: \"SYS.ECS\",\n            dimensionName: \"instance_id\",\n            metricName: \"mem_util\",\n            period: 300,\n            filter: \"average\",\n            comparisonOperator: \">\",\n            value: 85,\n            unit: \"%\",\n            count: 3,\n            alarmLevel: 2,\n            suppressDuration: 300,\n        },\n        {\n            namespace: \"SYS.ECS\",\n            dimensionName: \"instance_id\",\n            metricName: \"disk_util_inband\",\n            period: 300,\n            filter: \"average\",\n            comparisonOperator: \">=\",\n            value: 90,\n            unit: \"%\",\n            count: 3,\n            alarmLevel: 1,\n            suppressDuration: 600,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.CesAlarmTemplateV2(\"test\",\n    name=\"multi-policy-template\",\n    description=\"Alarm template with multiple monitoring policies\",\n    policies=[\n        {\n            \"namespace\": \"SYS.ECS\",\n            \"dimension_name\": \"instance_id\",\n            \"metric_name\": \"cpu_util\",\n            \"period\": 300,\n            \"filter\": \"average\",\n            \"comparison_operator\": \">\",\n            \"value\": 80,\n            \"unit\": \"%\",\n            \"count\": 3,\n            \"alarm_level\": 2,\n            \"suppress_duration\": 300,\n        },\n        {\n            \"namespace\": \"SYS.ECS\",\n            \"dimension_name\": \"instance_id\",\n            \"metric_name\": \"mem_util\",\n            \"period\": 300,\n            \"filter\": \"average\",\n            \"comparison_operator\": \">\",\n            \"value\": 85,\n            \"unit\": \"%\",\n            \"count\": 3,\n            \"alarm_level\": 2,\n            \"suppress_duration\": 300,\n        },\n        {\n            \"namespace\": \"SYS.ECS\",\n            \"dimension_name\": \"instance_id\",\n            \"metric_name\": \"disk_util_inband\",\n            \"period\": 300,\n            \"filter\": \"average\",\n            \"comparison_operator\": \">=\",\n            \"value\": 90,\n            \"unit\": \"%\",\n            \"count\": 3,\n            \"alarm_level\": 1,\n            \"suppress_duration\": 600,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = new Opentelekomcloud.CesAlarmTemplateV2(\"test\", new()\n    {\n        Name = \"multi-policy-template\",\n        Description = \"Alarm template with multiple monitoring policies\",\n        Policies = new[]\n        {\n            new Opentelekomcloud.Inputs.CesAlarmTemplateV2PolicyArgs\n            {\n                Namespace = \"SYS.ECS\",\n                DimensionName = \"instance_id\",\n                MetricName = \"cpu_util\",\n                Period = 300,\n                Filter = \"average\",\n                ComparisonOperator = \">\",\n                Value = 80,\n                Unit = \"%\",\n                Count = 3,\n                AlarmLevel = 2,\n                SuppressDuration = 300,\n            },\n            new Opentelekomcloud.Inputs.CesAlarmTemplateV2PolicyArgs\n            {\n                Namespace = \"SYS.ECS\",\n                DimensionName = \"instance_id\",\n                MetricName = \"mem_util\",\n                Period = 300,\n                Filter = \"average\",\n                ComparisonOperator = \">\",\n                Value = 85,\n                Unit = \"%\",\n                Count = 3,\n                AlarmLevel = 2,\n                SuppressDuration = 300,\n            },\n            new Opentelekomcloud.Inputs.CesAlarmTemplateV2PolicyArgs\n            {\n                Namespace = \"SYS.ECS\",\n                DimensionName = \"instance_id\",\n                MetricName = \"disk_util_inband\",\n                Period = 300,\n                Filter = \"average\",\n                ComparisonOperator = \">=\",\n                Value = 90,\n                Unit = \"%\",\n                Count = 3,\n                AlarmLevel = 1,\n                SuppressDuration = 600,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewCesAlarmTemplateV2(ctx, \"test\", &opentelekomcloud.CesAlarmTemplateV2Args{\n\t\t\tName:        pulumi.String(\"multi-policy-template\"),\n\t\t\tDescription: pulumi.String(\"Alarm template with multiple monitoring policies\"),\n\t\t\tPolicies: opentelekomcloud.CesAlarmTemplateV2PolicyArray{\n\t\t\t\t&opentelekomcloud.CesAlarmTemplateV2PolicyArgs{\n\t\t\t\t\tNamespace:          pulumi.String(\"SYS.ECS\"),\n\t\t\t\t\tDimensionName:      pulumi.String(\"instance_id\"),\n\t\t\t\t\tMetricName:         pulumi.String(\"cpu_util\"),\n\t\t\t\t\tPeriod:             pulumi.Float64(300),\n\t\t\t\t\tFilter:             pulumi.String(\"average\"),\n\t\t\t\t\tComparisonOperator: pulumi.String(\">\"),\n\t\t\t\t\tValue:              pulumi.Float64(80),\n\t\t\t\t\tUnit:               pulumi.String(\"%\"),\n\t\t\t\t\tCount:              pulumi.Float64(3),\n\t\t\t\t\tAlarmLevel:         pulumi.Float64(2),\n\t\t\t\t\tSuppressDuration:   pulumi.Float64(300),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.CesAlarmTemplateV2PolicyArgs{\n\t\t\t\t\tNamespace:          pulumi.String(\"SYS.ECS\"),\n\t\t\t\t\tDimensionName:      pulumi.String(\"instance_id\"),\n\t\t\t\t\tMetricName:         pulumi.String(\"mem_util\"),\n\t\t\t\t\tPeriod:             pulumi.Float64(300),\n\t\t\t\t\tFilter:             pulumi.String(\"average\"),\n\t\t\t\t\tComparisonOperator: pulumi.String(\">\"),\n\t\t\t\t\tValue:              pulumi.Float64(85),\n\t\t\t\t\tUnit:               pulumi.String(\"%\"),\n\t\t\t\t\tCount:              pulumi.Float64(3),\n\t\t\t\t\tAlarmLevel:         pulumi.Float64(2),\n\t\t\t\t\tSuppressDuration:   pulumi.Float64(300),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.CesAlarmTemplateV2PolicyArgs{\n\t\t\t\t\tNamespace:          pulumi.String(\"SYS.ECS\"),\n\t\t\t\t\tDimensionName:      pulumi.String(\"instance_id\"),\n\t\t\t\t\tMetricName:         pulumi.String(\"disk_util_inband\"),\n\t\t\t\t\tPeriod:             pulumi.Float64(300),\n\t\t\t\t\tFilter:             pulumi.String(\"average\"),\n\t\t\t\t\tComparisonOperator: pulumi.String(\">=\"),\n\t\t\t\t\tValue:              pulumi.Float64(90),\n\t\t\t\t\tUnit:               pulumi.String(\"%\"),\n\t\t\t\t\tCount:              pulumi.Float64(3),\n\t\t\t\t\tAlarmLevel:         pulumi.Float64(1),\n\t\t\t\t\tSuppressDuration:   pulumi.Float64(600),\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.opentelekomcloud.CesAlarmTemplateV2;\nimport com.pulumi.opentelekomcloud.CesAlarmTemplateV2Args;\nimport com.pulumi.opentelekomcloud.inputs.CesAlarmTemplateV2PolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new CesAlarmTemplateV2(\"test\", CesAlarmTemplateV2Args.builder()\n            .name(\"multi-policy-template\")\n            .description(\"Alarm template with multiple monitoring policies\")\n            .policies(            \n                CesAlarmTemplateV2PolicyArgs.builder()\n                    .namespace(\"SYS.ECS\")\n                    .dimensionName(\"instance_id\")\n                    .metricName(\"cpu_util\")\n                    .period(300.0)\n                    .filter(\"average\")\n                    .comparisonOperator(\">\")\n                    .value(80.0)\n                    .unit(\"%\")\n                    .count(3.0)\n                    .alarmLevel(2.0)\n                    .suppressDuration(300.0)\n                    .build(),\n                CesAlarmTemplateV2PolicyArgs.builder()\n                    .namespace(\"SYS.ECS\")\n                    .dimensionName(\"instance_id\")\n                    .metricName(\"mem_util\")\n                    .period(300.0)\n                    .filter(\"average\")\n                    .comparisonOperator(\">\")\n                    .value(85.0)\n                    .unit(\"%\")\n                    .count(3.0)\n                    .alarmLevel(2.0)\n                    .suppressDuration(300.0)\n                    .build(),\n                CesAlarmTemplateV2PolicyArgs.builder()\n                    .namespace(\"SYS.ECS\")\n                    .dimensionName(\"instance_id\")\n                    .metricName(\"disk_util_inband\")\n                    .period(300.0)\n                    .filter(\"average\")\n                    .comparisonOperator(\">=\")\n                    .value(90.0)\n                    .unit(\"%\")\n                    .count(3.0)\n                    .alarmLevel(1.0)\n                    .suppressDuration(600.0)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: opentelekomcloud:CesAlarmTemplateV2\n    properties:\n      name: multi-policy-template\n      description: Alarm template with multiple monitoring policies\n      policies:\n        - namespace: SYS.ECS\n          dimensionName: instance_id\n          metricName: cpu_util\n          period: 300\n          filter: average\n          comparisonOperator: '>'\n          value: 80\n          unit: '%'\n          count: 3\n          alarmLevel: 2\n          suppressDuration: 300\n        - namespace: SYS.ECS\n          dimensionName: instance_id\n          metricName: mem_util\n          period: 300\n          filter: average\n          comparisonOperator: '>'\n          value: 85\n          unit: '%'\n          count: 3\n          alarmLevel: 2\n          suppressDuration: 300\n        - namespace: SYS.ECS\n          dimensionName: instance_id\n          metricName: disk_util_inband\n          period: 300\n          filter: average\n          comparisonOperator: '>='\n          value: 90\n          unit: '%'\n          count: 3\n          alarmLevel: 1\n          suppressDuration: 600\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe CES alarm template can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/cesAlarmTemplateV2:CesAlarmTemplateV2 test <template_id>\n```\n\nNote that the imported state may not be identical to your resource definition, due to some attributes missing from the\n\nAPI response. The missing attributes include: `delete_associate_alarm`.\n\nIt is generally recommended running `pulumi preview` after importing an alarm template.\n\nYou can then decide if changes should be applied to the alarm template, or the resource definition should be updated to\n\nalign with the alarm template. Also you can ignore changes as below.\n\nhcl\n\nresource \"opentelekomcloud_ces_alarm_template_v2\" \"test\" {\n\n  lifecycle {\n\n    ignore_changes = [\n\n      delete_associate_alarm,\n\n    ]\n\n  }\n\n}\n\n","inputProperties":{"cesAlarmTemplateV2Id":{"description":"The resource ID (same as <span pulumi-lang-nodejs=\"`templateId`\" pulumi-lang-dotnet=\"`TemplateId`\" pulumi-lang-go=\"`templateId`\" pulumi-lang-python=\"`template_id`\" pulumi-lang-yaml=\"`templateId`\" pulumi-lang-java=\"`templateId`\">`template_id`</span>).\n","type":"string"},"deleteAssociateAlarm":{"description":"Specifies whether to delete the alarm rules\nassociated with the alarm template when deleting the template. Defaults to **false**.\n\n<a name=\"CesAlarmTemplate_Policy\"></a>\nThe <span pulumi-lang-nodejs=\"`policies`\" pulumi-lang-dotnet=\"`Policies`\" pulumi-lang-go=\"`policies`\" pulumi-lang-python=\"`policies`\" pulumi-lang-yaml=\"`policies`\" pulumi-lang-java=\"`policies`\">`policies`</span> block supports:\n","type":"boolean"},"description":{"description":"Specifies the description of the CES alarm template.\nThe description can contain a maximum of <span pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\">`256`</span> characters.\n","type":"string"},"name":{"description":"Specifies the name of the CES alarm template.\nAn alarm template name starts with a letter, consists of <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\">`128`</span> characters,\nand can contain only letters, digits, underscores (_), hyphens (-), parentheses, and periods (.).\n","type":"string"},"policies":{"description":"Specifies the policy list of the CES alarm template.\nA maximum of <span pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\">`50`</span> policies are supported.\nThe policies structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmTemplateV2Policy:CesAlarmTemplateV2Policy"},"type":"array"},"type":{"description":"Specifies the type of the CES alarm template.\nDefaults to <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>. Changing this parameter will create a new resource.\nThe valid values are as follows:\n+ **0**: metric alarm template.\n+ **2**: event alarm template.\n","type":"number"}},"properties":{"cesAlarmTemplateV2Id":{"description":"The resource ID (same as <span pulumi-lang-nodejs=\"`templateId`\" pulumi-lang-dotnet=\"`TemplateId`\" pulumi-lang-go=\"`templateId`\" pulumi-lang-python=\"`template_id`\" pulumi-lang-yaml=\"`templateId`\" pulumi-lang-java=\"`templateId`\">`template_id`</span>).\n","type":"string"},"deleteAssociateAlarm":{"description":"Specifies whether to delete the alarm rules\nassociated with the alarm template when deleting the template. Defaults to **false**.\n\n<a name=\"CesAlarmTemplate_Policy\"></a>\nThe <span pulumi-lang-nodejs=\"`policies`\" pulumi-lang-dotnet=\"`Policies`\" pulumi-lang-go=\"`policies`\" pulumi-lang-python=\"`policies`\" pulumi-lang-yaml=\"`policies`\" pulumi-lang-java=\"`policies`\">`policies`</span> block supports:\n","type":"boolean"},"description":{"description":"Specifies the description of the CES alarm template.\nThe description can contain a maximum of <span pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\">`256`</span> characters.\n","type":"string"},"name":{"description":"Specifies the name of the CES alarm template.\nAn alarm template name starts with a letter, consists of <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\">`128`</span> characters,\nand can contain only letters, digits, underscores (_), hyphens (-), parentheses, and periods (.).\n","type":"string"},"policies":{"description":"Specifies the policy list of the CES alarm template.\nA maximum of <span pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\">`50`</span> policies are supported.\nThe policies structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmTemplateV2Policy:CesAlarmTemplateV2Policy"},"type":"array"},"templateId":{"description":"The alarm template ID.\n","type":"string"},"type":{"description":"Specifies the type of the CES alarm template.\nDefaults to <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>. Changing this parameter will create a new resource.\nThe valid values are as follows:\n+ **0**: metric alarm template.\n+ **2**: event alarm template.\n","type":"number"}},"required":["cesAlarmTemplateV2Id","name","policies","templateId"],"requiredInputs":["policies"],"stateInputs":{"description":"Input properties used for looking up and filtering CesAlarmTemplateV2 resources.\n","properties":{"cesAlarmTemplateV2Id":{"description":"The resource ID (same as <span pulumi-lang-nodejs=\"`templateId`\" pulumi-lang-dotnet=\"`TemplateId`\" pulumi-lang-go=\"`templateId`\" pulumi-lang-python=\"`template_id`\" pulumi-lang-yaml=\"`templateId`\" pulumi-lang-java=\"`templateId`\">`template_id`</span>).\n","type":"string"},"deleteAssociateAlarm":{"description":"Specifies whether to delete the alarm rules\nassociated with the alarm template when deleting the template. Defaults to **false**.\n\n<a name=\"CesAlarmTemplate_Policy\"></a>\nThe <span pulumi-lang-nodejs=\"`policies`\" pulumi-lang-dotnet=\"`Policies`\" pulumi-lang-go=\"`policies`\" pulumi-lang-python=\"`policies`\" pulumi-lang-yaml=\"`policies`\" pulumi-lang-java=\"`policies`\">`policies`</span> block supports:\n","type":"boolean"},"description":{"description":"Specifies the description of the CES alarm template.\nThe description can contain a maximum of <span pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\">`256`</span> characters.\n","type":"string"},"name":{"description":"Specifies the name of the CES alarm template.\nAn alarm template name starts with a letter, consists of <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\">`128`</span> characters,\nand can contain only letters, digits, underscores (_), hyphens (-), parentheses, and periods (.).\n","type":"string"},"policies":{"description":"Specifies the policy list of the CES alarm template.\nA maximum of <span pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\">`50`</span> policies are supported.\nThe policies structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmTemplateV2Policy:CesAlarmTemplateV2Policy"},"type":"array"},"templateId":{"description":"The alarm template ID.\n","type":"string"},"type":{"description":"Specifies the type of the CES alarm template.\nDefaults to <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>. Changing this parameter will create a new resource.\nThe valid values are as follows:\n+ **0**: metric alarm template.\n+ **2**: event alarm template.\n","type":"number"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cesAlarmrule:CesAlarmrule":{"description":"Up-to-date reference of API arguments for CES alarm rule you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-eye/api-ref/api_description/alarm_rules/index.html#ces-03-0026)\n\nManages a V1 CES Alarm Rule resource within OpenTelekomCloud.\n\n~>\n  Alarm rule <span pulumi-lang-nodejs=\"`namespaces`\" pulumi-lang-dotnet=\"`Namespaces`\" pulumi-lang-go=\"`namespaces`\" pulumi-lang-python=\"`namespaces`\" pulumi-lang-yaml=\"`namespaces`\" pulumi-lang-java=\"`namespaces`\">`namespaces`</span> and <span pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\">`dimensions`</span> are available on our github link or [official documentation](https://docs.otc.t-systems.com/cloud-eye/api-ref/appendix/services_interconnected_with_cloud_eye.html).\n\n## Example Usage\n\n### Basic alarm rule for single ECS monitoring\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst serverId = config.requireObject<any>(\"serverId\");\nconst smnTopicId = config.requireObject<any>(\"smnTopicId\");\nconst alarmRule = new opentelekomcloud.CesAlarmrule(\"alarm_rule\", {\n    alarmName: \"alarm_rule\",\n    metric: {\n        namespace: \"SYS.ECS\",\n        metricName: \"network_outgoing_bytes_rate_inband\",\n        dimensions: [{\n            name: \"instance_id\",\n            value: serverId,\n        }],\n    },\n    condition: {\n        period: 300,\n        filter: \"average\",\n        comparisonOperator: \">\",\n        value: 6,\n        unit: \"B/s\",\n        count: 1,\n    },\n    alarmActions: [{\n        type: \"notification\",\n        notificationLists: [smnTopicId],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nserver_id = config.require_object(\"serverId\")\nsmn_topic_id = config.require_object(\"smnTopicId\")\nalarm_rule = opentelekomcloud.CesAlarmrule(\"alarm_rule\",\n    alarm_name=\"alarm_rule\",\n    metric={\n        \"namespace\": \"SYS.ECS\",\n        \"metric_name\": \"network_outgoing_bytes_rate_inband\",\n        \"dimensions\": [{\n            \"name\": \"instance_id\",\n            \"value\": server_id,\n        }],\n    },\n    condition={\n        \"period\": 300,\n        \"filter\": \"average\",\n        \"comparison_operator\": \">\",\n        \"value\": 6,\n        \"unit\": \"B/s\",\n        \"count\": 1,\n    },\n    alarm_actions=[{\n        \"type\": \"notification\",\n        \"notification_lists\": [smn_topic_id],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var serverId = config.RequireObject<dynamic>(\"serverId\");\n    var smnTopicId = config.RequireObject<dynamic>(\"smnTopicId\");\n    var alarmRule = new Opentelekomcloud.CesAlarmrule(\"alarm_rule\", new()\n    {\n        AlarmName = \"alarm_rule\",\n        Metric = new Opentelekomcloud.Inputs.CesAlarmruleMetricArgs\n        {\n            Namespace = \"SYS.ECS\",\n            MetricName = \"network_outgoing_bytes_rate_inband\",\n            Dimensions = new[]\n            {\n                new Opentelekomcloud.Inputs.CesAlarmruleMetricDimensionArgs\n                {\n                    Name = \"instance_id\",\n                    Value = serverId,\n                },\n            },\n        },\n        Condition = new Opentelekomcloud.Inputs.CesAlarmruleConditionArgs\n        {\n            Period = 300,\n            Filter = \"average\",\n            ComparisonOperator = \">\",\n            Value = 6,\n            Unit = \"B/s\",\n            Count = 1,\n        },\n        AlarmActions = new[]\n        {\n            new Opentelekomcloud.Inputs.CesAlarmruleAlarmActionArgs\n            {\n                Type = \"notification\",\n                NotificationLists = new[]\n                {\n                    smnTopicId,\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tserverId := cfg.RequireObject(\"serverId\")\n\t\tsmnTopicId := cfg.RequireObject(\"smnTopicId\")\n\t\t_, err := opentelekomcloud.NewCesAlarmrule(ctx, \"alarm_rule\", &opentelekomcloud.CesAlarmruleArgs{\n\t\t\tAlarmName: pulumi.String(\"alarm_rule\"),\n\t\t\tMetric: &opentelekomcloud.CesAlarmruleMetricArgs{\n\t\t\t\tNamespace:  pulumi.String(\"SYS.ECS\"),\n\t\t\t\tMetricName: pulumi.String(\"network_outgoing_bytes_rate_inband\"),\n\t\t\t\tDimensions: opentelekomcloud.CesAlarmruleMetricDimensionArray{\n\t\t\t\t\t&opentelekomcloud.CesAlarmruleMetricDimensionArgs{\n\t\t\t\t\t\tName:  pulumi.String(\"instance_id\"),\n\t\t\t\t\t\tValue: pulumi.Any(serverId),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tCondition: &opentelekomcloud.CesAlarmruleConditionArgs{\n\t\t\t\tPeriod:             pulumi.Float64(300),\n\t\t\t\tFilter:             pulumi.String(\"average\"),\n\t\t\t\tComparisonOperator: pulumi.String(\">\"),\n\t\t\t\tValue:              pulumi.Float64(6),\n\t\t\t\tUnit:               pulumi.String(\"B/s\"),\n\t\t\t\tCount:              pulumi.Float64(1),\n\t\t\t},\n\t\t\tAlarmActions: opentelekomcloud.CesAlarmruleAlarmActionArray{\n\t\t\t\t&opentelekomcloud.CesAlarmruleAlarmActionArgs{\n\t\t\t\t\tType: pulumi.String(\"notification\"),\n\t\t\t\t\tNotificationLists: pulumi.StringArray{\n\t\t\t\t\t\tsmnTopicId,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CesAlarmrule;\nimport com.pulumi.opentelekomcloud.CesAlarmruleArgs;\nimport com.pulumi.opentelekomcloud.inputs.CesAlarmruleMetricArgs;\nimport com.pulumi.opentelekomcloud.inputs.CesAlarmruleConditionArgs;\nimport com.pulumi.opentelekomcloud.inputs.CesAlarmruleAlarmActionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var serverId = config.get(\"serverId\");\n        final var smnTopicId = config.get(\"smnTopicId\");\n        var alarmRule = new CesAlarmrule(\"alarmRule\", CesAlarmruleArgs.builder()\n            .alarmName(\"alarm_rule\")\n            .metric(CesAlarmruleMetricArgs.builder()\n                .namespace(\"SYS.ECS\")\n                .metricName(\"network_outgoing_bytes_rate_inband\")\n                .dimensions(CesAlarmruleMetricDimensionArgs.builder()\n                    .name(\"instance_id\")\n                    .value(serverId)\n                    .build())\n                .build())\n            .condition(CesAlarmruleConditionArgs.builder()\n                .period(300.0)\n                .filter(\"average\")\n                .comparisonOperator(\">\")\n                .value(6.0)\n                .unit(\"B/s\")\n                .count(1.0)\n                .build())\n            .alarmActions(CesAlarmruleAlarmActionArgs.builder()\n                .type(\"notification\")\n                .notificationLists(smnTopicId)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  serverId:\n    type: dynamic\n  smnTopicId:\n    type: dynamic\nresources:\n  alarmRule:\n    type: opentelekomcloud:CesAlarmrule\n    name: alarm_rule\n    properties:\n      alarmName: alarm_rule\n      metric:\n        namespace: SYS.ECS\n        metricName: network_outgoing_bytes_rate_inband\n        dimensions:\n          - name: instance_id\n            value: ${serverId}\n      condition:\n        period: 300\n        filter: average\n        comparisonOperator: '>'\n        value: 6\n        unit: B/s\n        count: 1\n      alarmActions:\n        - type: notification\n          notificationLists:\n            - ${smnTopicId}\n```\n<!--End PulumiCodeChooser -->\n\n### CBR system event alarm rule to monitor all CBR resources\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst smnTopicId = config.requireObject<any>(\"smnTopicId\");\nconst alarmrule1 = new opentelekomcloud.CesAlarmrule(\"alarmrule_1\", {\n    alarmName: \"alarm_rule1\",\n    alarmType: \"EVENT.SYS\",\n    metric: {\n        namespace: \"SYS.CBR\",\n        metricName: \"backupFailed\",\n    },\n    condition: {\n        period: 300,\n        filter: \"average\",\n        comparisonOperator: \">\",\n        value: 6,\n        unit: \"B/s\",\n        count: 1,\n        alarmFrequency: 300,\n    },\n    alarmActionEnabled: false,\n    alarmActions: [{\n        type: \"notification\",\n        notificationLists: [smnTopicId],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nsmn_topic_id = config.require_object(\"smnTopicId\")\nalarmrule1 = opentelekomcloud.CesAlarmrule(\"alarmrule_1\",\n    alarm_name=\"alarm_rule1\",\n    alarm_type=\"EVENT.SYS\",\n    metric={\n        \"namespace\": \"SYS.CBR\",\n        \"metric_name\": \"backupFailed\",\n    },\n    condition={\n        \"period\": 300,\n        \"filter\": \"average\",\n        \"comparison_operator\": \">\",\n        \"value\": 6,\n        \"unit\": \"B/s\",\n        \"count\": 1,\n        \"alarm_frequency\": 300,\n    },\n    alarm_action_enabled=False,\n    alarm_actions=[{\n        \"type\": \"notification\",\n        \"notification_lists\": [smn_topic_id],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var smnTopicId = config.RequireObject<dynamic>(\"smnTopicId\");\n    var alarmrule1 = new Opentelekomcloud.CesAlarmrule(\"alarmrule_1\", new()\n    {\n        AlarmName = \"alarm_rule1\",\n        AlarmType = \"EVENT.SYS\",\n        Metric = new Opentelekomcloud.Inputs.CesAlarmruleMetricArgs\n        {\n            Namespace = \"SYS.CBR\",\n            MetricName = \"backupFailed\",\n        },\n        Condition = new Opentelekomcloud.Inputs.CesAlarmruleConditionArgs\n        {\n            Period = 300,\n            Filter = \"average\",\n            ComparisonOperator = \">\",\n            Value = 6,\n            Unit = \"B/s\",\n            Count = 1,\n            AlarmFrequency = 300,\n        },\n        AlarmActionEnabled = false,\n        AlarmActions = new[]\n        {\n            new Opentelekomcloud.Inputs.CesAlarmruleAlarmActionArgs\n            {\n                Type = \"notification\",\n                NotificationLists = new[]\n                {\n                    smnTopicId,\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tsmnTopicId := cfg.RequireObject(\"smnTopicId\")\n\t\t_, err := opentelekomcloud.NewCesAlarmrule(ctx, \"alarmrule_1\", &opentelekomcloud.CesAlarmruleArgs{\n\t\t\tAlarmName: pulumi.String(\"alarm_rule1\"),\n\t\t\tAlarmType: pulumi.String(\"EVENT.SYS\"),\n\t\t\tMetric: &opentelekomcloud.CesAlarmruleMetricArgs{\n\t\t\t\tNamespace:  pulumi.String(\"SYS.CBR\"),\n\t\t\t\tMetricName: pulumi.String(\"backupFailed\"),\n\t\t\t},\n\t\t\tCondition: &opentelekomcloud.CesAlarmruleConditionArgs{\n\t\t\t\tPeriod:             pulumi.Float64(300),\n\t\t\t\tFilter:             pulumi.String(\"average\"),\n\t\t\t\tComparisonOperator: pulumi.String(\">\"),\n\t\t\t\tValue:              pulumi.Float64(6),\n\t\t\t\tUnit:               pulumi.String(\"B/s\"),\n\t\t\t\tCount:              pulumi.Float64(1),\n\t\t\t\tAlarmFrequency:     pulumi.Float64(300),\n\t\t\t},\n\t\t\tAlarmActionEnabled: pulumi.Bool(false),\n\t\t\tAlarmActions: opentelekomcloud.CesAlarmruleAlarmActionArray{\n\t\t\t\t&opentelekomcloud.CesAlarmruleAlarmActionArgs{\n\t\t\t\t\tType: pulumi.String(\"notification\"),\n\t\t\t\t\tNotificationLists: pulumi.StringArray{\n\t\t\t\t\t\tsmnTopicId,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CesAlarmrule;\nimport com.pulumi.opentelekomcloud.CesAlarmruleArgs;\nimport com.pulumi.opentelekomcloud.inputs.CesAlarmruleMetricArgs;\nimport com.pulumi.opentelekomcloud.inputs.CesAlarmruleConditionArgs;\nimport com.pulumi.opentelekomcloud.inputs.CesAlarmruleAlarmActionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var smnTopicId = config.get(\"smnTopicId\");\n        var alarmrule1 = new CesAlarmrule(\"alarmrule1\", CesAlarmruleArgs.builder()\n            .alarmName(\"alarm_rule1\")\n            .alarmType(\"EVENT.SYS\")\n            .metric(CesAlarmruleMetricArgs.builder()\n                .namespace(\"SYS.CBR\")\n                .metricName(\"backupFailed\")\n                .build())\n            .condition(CesAlarmruleConditionArgs.builder()\n                .period(300.0)\n                .filter(\"average\")\n                .comparisonOperator(\">\")\n                .value(6.0)\n                .unit(\"B/s\")\n                .count(1.0)\n                .alarmFrequency(300.0)\n                .build())\n            .alarmActionEnabled(false)\n            .alarmActions(CesAlarmruleAlarmActionArgs.builder()\n                .type(\"notification\")\n                .notificationLists(smnTopicId)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  smnTopicId:\n    type: dynamic\nresources:\n  alarmrule1:\n    type: opentelekomcloud:CesAlarmrule\n    name: alarmrule_1\n    properties:\n      alarmName: alarm_rule1\n      alarmType: EVENT.SYS\n      metric:\n        namespace: SYS.CBR\n        metricName: backupFailed\n      condition:\n        period: 300\n        filter: average\n        comparisonOperator: '>'\n        value: 6\n        unit: B/s\n        count: 1\n        alarmFrequency: 300\n      alarmActionEnabled: false\n      alarmActions:\n        - type: notification\n          notificationLists:\n            - ${smnTopicId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCES alarms can be imported using alarm rule `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/cesAlarmrule:CesAlarmrule alarmrule c1881895-cdcb-4d23-96cb-032e6a3ee667\n```\n\n","inputProperties":{"alarmActionEnabled":{"description":"Specifies whether to enable the action\nto be triggered by an alarm. The default value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"alarmActions":{"description":"Specifies the actions list triggered by an alarm. The\nstructure is described below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmruleAlarmAction:CesAlarmruleAlarmAction"},"type":"array"},"alarmDescription":{"description":"Alarm description. The value can be a string of <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> to <span pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\">`256`</span> characters.\n","type":"string"},"alarmEnabled":{"description":"Specifies whether to enable the alarm. The default\nvalue is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"alarmLevel":{"description":"Specifies the alarm severity. The value can be <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>, <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span>, <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> or <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span>,\nwhich indicates <span pulumi-lang-nodejs=\"`critical`\" pulumi-lang-dotnet=\"`Critical`\" pulumi-lang-go=\"`critical`\" pulumi-lang-python=\"`critical`\" pulumi-lang-yaml=\"`critical`\" pulumi-lang-java=\"`critical`\">`critical`</span>, <span pulumi-lang-nodejs=\"`major`\" pulumi-lang-dotnet=\"`Major`\" pulumi-lang-go=\"`major`\" pulumi-lang-python=\"`major`\" pulumi-lang-yaml=\"`major`\" pulumi-lang-java=\"`major`\">`major`</span>, <span pulumi-lang-nodejs=\"`minor`\" pulumi-lang-dotnet=\"`Minor`\" pulumi-lang-go=\"`minor`\" pulumi-lang-python=\"`minor`\" pulumi-lang-yaml=\"`minor`\" pulumi-lang-java=\"`minor`\">`minor`</span>, and <span pulumi-lang-nodejs=\"`informational`\" pulumi-lang-dotnet=\"`Informational`\" pulumi-lang-go=\"`informational`\" pulumi-lang-python=\"`informational`\" pulumi-lang-yaml=\"`informational`\" pulumi-lang-java=\"`informational`\">`informational`</span>. The default value is <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span>.\n","type":"number"},"alarmName":{"description":"Specifies the name of an alarm rule. The value can\nbe a string of <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\">`128`</span> characters that can consist of numbers, lowercase letters,\nuppercase letters, underscores (_), or hyphens (-).\n","type":"string"},"alarmType":{"description":"Specifies the alarm rule type.\n`EVENT.SYS`: The alarm rule is created for system events.\n`EVENT.CUSTOM`: The alarm rule is created for custom events.\n","type":"string"},"cesAlarmruleId":{"description":"Specifies the alarm rule ID.\n","type":"string"},"condition":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmruleCondition:CesAlarmruleCondition","description":"Specifies the alarm triggering condition. The structure\nis described below.\n"},"metric":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmruleMetric:CesAlarmruleMetric","description":"Specifies the alarm metrics. The structure is described below.\n"},"okActions":{"description":"Specifies the actions list triggered by the clearing of\nan alarm. The structure is described below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmruleOkAction:CesAlarmruleOkAction"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmruleTimeouts:CesAlarmruleTimeouts"}},"properties":{"alarmActionEnabled":{"description":"Specifies whether to enable the action\nto be triggered by an alarm. The default value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"alarmActions":{"description":"Specifies the actions list triggered by an alarm. The\nstructure is described below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmruleAlarmAction:CesAlarmruleAlarmAction"},"type":"array"},"alarmDescription":{"description":"Alarm description. The value can be a string of <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> to <span pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\">`256`</span> characters.\n","type":"string"},"alarmEnabled":{"description":"Specifies whether to enable the alarm. The default\nvalue is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"alarmLevel":{"description":"Specifies the alarm severity. The value can be <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>, <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span>, <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> or <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span>,\nwhich indicates <span pulumi-lang-nodejs=\"`critical`\" pulumi-lang-dotnet=\"`Critical`\" pulumi-lang-go=\"`critical`\" pulumi-lang-python=\"`critical`\" pulumi-lang-yaml=\"`critical`\" pulumi-lang-java=\"`critical`\">`critical`</span>, <span pulumi-lang-nodejs=\"`major`\" pulumi-lang-dotnet=\"`Major`\" pulumi-lang-go=\"`major`\" pulumi-lang-python=\"`major`\" pulumi-lang-yaml=\"`major`\" pulumi-lang-java=\"`major`\">`major`</span>, <span pulumi-lang-nodejs=\"`minor`\" pulumi-lang-dotnet=\"`Minor`\" pulumi-lang-go=\"`minor`\" pulumi-lang-python=\"`minor`\" pulumi-lang-yaml=\"`minor`\" pulumi-lang-java=\"`minor`\">`minor`</span>, and <span pulumi-lang-nodejs=\"`informational`\" pulumi-lang-dotnet=\"`Informational`\" pulumi-lang-go=\"`informational`\" pulumi-lang-python=\"`informational`\" pulumi-lang-yaml=\"`informational`\" pulumi-lang-java=\"`informational`\">`informational`</span>. The default value is <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span>.\n","type":"number"},"alarmName":{"description":"Specifies the name of an alarm rule. The value can\nbe a string of <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\">`128`</span> characters that can consist of numbers, lowercase letters,\nuppercase letters, underscores (_), or hyphens (-).\n","type":"string"},"alarmState":{"description":"Specifies the alarm status. The value can be:\n","type":"string"},"alarmType":{"description":"Specifies the alarm rule type.\n`EVENT.SYS`: The alarm rule is created for system events.\n`EVENT.CUSTOM`: The alarm rule is created for custom events.\n","type":"string"},"cesAlarmruleId":{"description":"Specifies the alarm rule ID.\n","type":"string"},"condition":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmruleCondition:CesAlarmruleCondition","description":"Specifies the alarm triggering condition. The structure\nis described below.\n"},"metric":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmruleMetric:CesAlarmruleMetric","description":"Specifies the alarm metrics. The structure is described below.\n"},"okActions":{"description":"Specifies the actions list triggered by the clearing of\nan alarm. The structure is described below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmruleOkAction:CesAlarmruleOkAction"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmruleTimeouts:CesAlarmruleTimeouts"},"updateTime":{"description":"Specifies the time when the alarm status changed. The value\nis a UNIX timestamp and the unit is ms.\n","type":"number"}},"required":["alarmName","alarmState","alarmType","cesAlarmruleId","condition","metric","updateTime"],"requiredInputs":["alarmName","condition","metric"],"stateInputs":{"description":"Input properties used for looking up and filtering CesAlarmrule resources.\n","properties":{"alarmActionEnabled":{"description":"Specifies whether to enable the action\nto be triggered by an alarm. The default value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"alarmActions":{"description":"Specifies the actions list triggered by an alarm. The\nstructure is described below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmruleAlarmAction:CesAlarmruleAlarmAction"},"type":"array"},"alarmDescription":{"description":"Alarm description. The value can be a string of <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> to <span pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\">`256`</span> characters.\n","type":"string"},"alarmEnabled":{"description":"Specifies whether to enable the alarm. The default\nvalue is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"alarmLevel":{"description":"Specifies the alarm severity. The value can be <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>, <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span>, <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> or <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span>,\nwhich indicates <span pulumi-lang-nodejs=\"`critical`\" pulumi-lang-dotnet=\"`Critical`\" pulumi-lang-go=\"`critical`\" pulumi-lang-python=\"`critical`\" pulumi-lang-yaml=\"`critical`\" pulumi-lang-java=\"`critical`\">`critical`</span>, <span pulumi-lang-nodejs=\"`major`\" pulumi-lang-dotnet=\"`Major`\" pulumi-lang-go=\"`major`\" pulumi-lang-python=\"`major`\" pulumi-lang-yaml=\"`major`\" pulumi-lang-java=\"`major`\">`major`</span>, <span pulumi-lang-nodejs=\"`minor`\" pulumi-lang-dotnet=\"`Minor`\" pulumi-lang-go=\"`minor`\" pulumi-lang-python=\"`minor`\" pulumi-lang-yaml=\"`minor`\" pulumi-lang-java=\"`minor`\">`minor`</span>, and <span pulumi-lang-nodejs=\"`informational`\" pulumi-lang-dotnet=\"`Informational`\" pulumi-lang-go=\"`informational`\" pulumi-lang-python=\"`informational`\" pulumi-lang-yaml=\"`informational`\" pulumi-lang-java=\"`informational`\">`informational`</span>. The default value is <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span>.\n","type":"number"},"alarmName":{"description":"Specifies the name of an alarm rule. The value can\nbe a string of <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\">`128`</span> characters that can consist of numbers, lowercase letters,\nuppercase letters, underscores (_), or hyphens (-).\n","type":"string"},"alarmState":{"description":"Specifies the alarm status. The value can be:\n","type":"string"},"alarmType":{"description":"Specifies the alarm rule type.\n`EVENT.SYS`: The alarm rule is created for system events.\n`EVENT.CUSTOM`: The alarm rule is created for custom events.\n","type":"string"},"cesAlarmruleId":{"description":"Specifies the alarm rule ID.\n","type":"string"},"condition":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmruleCondition:CesAlarmruleCondition","description":"Specifies the alarm triggering condition. The structure\nis described below.\n"},"metric":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmruleMetric:CesAlarmruleMetric","description":"Specifies the alarm metrics. The structure is described below.\n"},"okActions":{"description":"Specifies the actions list triggered by the clearing of\nan alarm. The structure is described below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmruleOkAction:CesAlarmruleOkAction"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCesAlarmruleTimeouts:CesAlarmruleTimeouts"},"updateTime":{"description":"Specifies the time when the alarm status changed. The value\nis a UNIX timestamp and the unit is ms.\n","type":"number"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cesDashboardV2:CesDashboardV2":{"description":"Up-to-date reference of API arguments for CES dashboard you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-eye/api-ref/api_v2/dashboards/index.html)\n\nManages a CES Dashboard v2 resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Basic dashboard\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst dashboard = new opentelekomcloud.CesDashboardV2(\"dashboard\", {\n    name: \"my-dashboard\",\n    rowWidgetNum: 1,\n    isFavorite: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ndashboard = opentelekomcloud.CesDashboardV2(\"dashboard\",\n    name=\"my-dashboard\",\n    row_widget_num=1,\n    is_favorite=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var dashboard = new Opentelekomcloud.CesDashboardV2(\"dashboard\", new()\n    {\n        Name = \"my-dashboard\",\n        RowWidgetNum = 1,\n        IsFavorite = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewCesDashboardV2(ctx, \"dashboard\", &opentelekomcloud.CesDashboardV2Args{\n\t\t\tName:         pulumi.String(\"my-dashboard\"),\n\t\t\tRowWidgetNum: pulumi.Float64(1),\n\t\t\tIsFavorite:   pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CesDashboardV2;\nimport com.pulumi.opentelekomcloud.CesDashboardV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var dashboard = new CesDashboardV2(\"dashboard\", CesDashboardV2Args.builder()\n            .name(\"my-dashboard\")\n            .rowWidgetNum(1.0)\n            .isFavorite(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  dashboard:\n    type: opentelekomcloud:CesDashboardV2\n    properties:\n      name: my-dashboard\n      rowWidgetNum: 1\n      isFavorite: true\n```\n<!--End PulumiCodeChooser -->\n\n### Copy an existing dashboard\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst base = new opentelekomcloud.CesDashboardV2(\"base\", {\n    name: \"base-dashboard\",\n    rowWidgetNum: 2,\n});\nconst copy = new opentelekomcloud.CesDashboardV2(\"copy\", {\n    name: \"copied-dashboard\",\n    dashboardId: base.cesDashboardV2Id,\n    rowWidgetNum: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nbase = opentelekomcloud.CesDashboardV2(\"base\",\n    name=\"base-dashboard\",\n    row_widget_num=2)\ncopy = opentelekomcloud.CesDashboardV2(\"copy\",\n    name=\"copied-dashboard\",\n    dashboard_id=base.ces_dashboard_v2_id,\n    row_widget_num=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var @base = new Opentelekomcloud.CesDashboardV2(\"base\", new()\n    {\n        Name = \"base-dashboard\",\n        RowWidgetNum = 2,\n    });\n\n    var copy = new Opentelekomcloud.CesDashboardV2(\"copy\", new()\n    {\n        Name = \"copied-dashboard\",\n        DashboardId = @base.CesDashboardV2Id,\n        RowWidgetNum = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbase, err := opentelekomcloud.NewCesDashboardV2(ctx, \"base\", &opentelekomcloud.CesDashboardV2Args{\n\t\t\tName:         pulumi.String(\"base-dashboard\"),\n\t\t\tRowWidgetNum: pulumi.Float64(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewCesDashboardV2(ctx, \"copy\", &opentelekomcloud.CesDashboardV2Args{\n\t\t\tName:         pulumi.String(\"copied-dashboard\"),\n\t\t\tDashboardId:  base.CesDashboardV2Id,\n\t\t\tRowWidgetNum: pulumi.Float64(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CesDashboardV2;\nimport com.pulumi.opentelekomcloud.CesDashboardV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var base = new CesDashboardV2(\"base\", CesDashboardV2Args.builder()\n            .name(\"base-dashboard\")\n            .rowWidgetNum(2.0)\n            .build());\n\n        var copy = new CesDashboardV2(\"copy\", CesDashboardV2Args.builder()\n            .name(\"copied-dashboard\")\n            .dashboardId(base.cesDashboardV2Id())\n            .rowWidgetNum(1.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  base:\n    type: opentelekomcloud:CesDashboardV2\n    properties:\n      name: base-dashboard\n      rowWidgetNum: 2\n  copy:\n    type: opentelekomcloud:CesDashboardV2\n    properties:\n      name: copied-dashboard\n      dashboardId: ${base.cesDashboardV2Id}\n      rowWidgetNum: 1\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCES dashboards v2 can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/cesDashboardV2:CesDashboardV2 dashboard db16564943172807wjOmoLyn\n```\n\n","inputProperties":{"cesDashboardV2Id":{"description":"The dashboard ID.\n","type":"string"},"dashboardId":{"description":"Specifies the ID of an existing dashboard to copy.\nIf omitted, a new empty dashboard is created. Changing this creates a new resource.\n","type":"string"},"enterpriseProjectId":{"description":"Specifies the enterprise project ID.\nChanging this creates a new resource.\n","type":"string"},"isFavorite":{"description":"Specifies whether to add the dashboard to favorites.\n","type":"boolean"},"name":{"description":"Specifies the dashboard name. The value can be a string of <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\">`128`</span>\ncharacters that can consist of letters, digits, underscores (_), and hyphens (-).\n","type":"string"},"rowWidgetNum":{"description":"Specifies the graph display mode. The value can be:\n+ **0**: Graphs are displayed in a customizable position.\n+ **1**: One graph is displayed per row.\n+ **2**: Two graphs are displayed per row.\n+ **3**: Three graphs are displayed per row.\n\nDefaults to <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>.\n","type":"number"}},"properties":{"cesDashboardV2Id":{"description":"The dashboard ID.\n","type":"string"},"createdAt":{"description":"The creation time of the dashboard in RFC3339 format.\n","type":"string"},"creatorName":{"description":"The creator of the dashboard.\n","type":"string"},"dashboardId":{"description":"Specifies the ID of an existing dashboard to copy.\nIf omitted, a new empty dashboard is created. Changing this creates a new resource.\n","type":"string"},"enterpriseProjectId":{"description":"Specifies the enterprise project ID.\nChanging this creates a new resource.\n","type":"string"},"isFavorite":{"description":"Specifies whether to add the dashboard to favorites.\n","type":"boolean"},"name":{"description":"Specifies the dashboard name. The value can be a string of <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\">`128`</span>\ncharacters that can consist of letters, digits, underscores (_), and hyphens (-).\n","type":"string"},"region":{"description":"The region in which the dashboard is created.\n","type":"string"},"rowWidgetNum":{"description":"Specifies the graph display mode. The value can be:\n+ **0**: Graphs are displayed in a customizable position.\n+ **1**: One graph is displayed per row.\n+ **2**: Two graphs are displayed per row.\n+ **3**: Three graphs are displayed per row.\n\nDefaults to <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>.\n","type":"number"}},"required":["cesDashboardV2Id","createdAt","creatorName","enterpriseProjectId","name","region"],"stateInputs":{"description":"Input properties used for looking up and filtering CesDashboardV2 resources.\n","properties":{"cesDashboardV2Id":{"description":"The dashboard ID.\n","type":"string"},"createdAt":{"description":"The creation time of the dashboard in RFC3339 format.\n","type":"string"},"creatorName":{"description":"The creator of the dashboard.\n","type":"string"},"dashboardId":{"description":"Specifies the ID of an existing dashboard to copy.\nIf omitted, a new empty dashboard is created. Changing this creates a new resource.\n","type":"string"},"enterpriseProjectId":{"description":"Specifies the enterprise project ID.\nChanging this creates a new resource.\n","type":"string"},"isFavorite":{"description":"Specifies whether to add the dashboard to favorites.\n","type":"boolean"},"name":{"description":"Specifies the dashboard name. The value can be a string of <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\">`128`</span>\ncharacters that can consist of letters, digits, underscores (_), and hyphens (-).\n","type":"string"},"region":{"description":"The region in which the dashboard is created.\n","type":"string"},"rowWidgetNum":{"description":"Specifies the graph display mode. The value can be:\n+ **0**: Graphs are displayed in a customizable position.\n+ **1**: One graph is displayed per row.\n+ **2**: Two graphs are displayed per row.\n+ **3**: Three graphs are displayed per row.\n\nDefaults to <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>.\n","type":"number"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cesEventReportV1:CesEventReportV1":{"description":"Up-to-date reference of API arguments for CES event report v1 you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-eye/api-ref/api_description/event_monitoring/index.html)\n\nManages a V1 CES Event Report (used for reporting custom events) resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Basic event report\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst eventReport1 = new opentelekomcloud.CesEventReportV1(\"event_report_1\", {\n    eventName: \"Test_tf_event\",\n    eventSource: \"SYS.ECS\",\n    time: 1257894000000,\n    detail: {\n        content: \"This is a test event\",\n        eventState: \"normal\",\n        eventLevel: \"Info\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nevent_report1 = opentelekomcloud.CesEventReportV1(\"event_report_1\",\n    event_name=\"Test_tf_event\",\n    event_source=\"SYS.ECS\",\n    time=1257894000000,\n    detail={\n        \"content\": \"This is a test event\",\n        \"event_state\": \"normal\",\n        \"event_level\": \"Info\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var eventReport1 = new Opentelekomcloud.CesEventReportV1(\"event_report_1\", new()\n    {\n        EventName = \"Test_tf_event\",\n        EventSource = \"SYS.ECS\",\n        Time = 1257894000000,\n        Detail = new Opentelekomcloud.Inputs.CesEventReportV1DetailArgs\n        {\n            Content = \"This is a test event\",\n            EventState = \"normal\",\n            EventLevel = \"Info\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewCesEventReportV1(ctx, \"event_report_1\", &opentelekomcloud.CesEventReportV1Args{\n\t\t\tEventName:   pulumi.String(\"Test_tf_event\"),\n\t\t\tEventSource: pulumi.String(\"SYS.ECS\"),\n\t\t\tTime:        pulumi.Float64(1257894000000),\n\t\t\tDetail: &opentelekomcloud.CesEventReportV1DetailArgs{\n\t\t\t\tContent:    pulumi.String(\"This is a test event\"),\n\t\t\t\tEventState: pulumi.String(\"normal\"),\n\t\t\t\tEventLevel: pulumi.String(\"Info\"),\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.opentelekomcloud.CesEventReportV1;\nimport com.pulumi.opentelekomcloud.CesEventReportV1Args;\nimport com.pulumi.opentelekomcloud.inputs.CesEventReportV1DetailArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var eventReport1 = new CesEventReportV1(\"eventReport1\", CesEventReportV1Args.builder()\n            .eventName(\"Test_tf_event\")\n            .eventSource(\"SYS.ECS\")\n            .time(1257894000000.0)\n            .detail(CesEventReportV1DetailArgs.builder()\n                .content(\"This is a test event\")\n                .eventState(\"normal\")\n                .eventLevel(\"Info\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  eventReport1:\n    type: opentelekomcloud:CesEventReportV1\n    name: event_report_1\n    properties:\n      eventName: Test_tf_event\n      eventSource: SYS.ECS\n      time: 1.257894e+12\n      detail:\n        content: This is a test event\n        eventState: normal\n        eventLevel: Info\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"cesEventReportV1Id":{"type":"string"},"detail":{"$ref":"#/types/opentelekomcloud:index%2FCesEventReportV1Detail:CesEventReportV1Detail","description":"Specifies the event details. The structure is described below.\n"},"eventName":{"description":"Specifies the event name. The value must be <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span> characters long and contain letters, digits, and underscores (_). It must start with a letter.\n","type":"string"},"eventSource":{"description":"Specifies the event source. The format is `service.item`. Set this parameter based on the site requirements. <span pulumi-lang-nodejs=\"`service`\" pulumi-lang-dotnet=\"`Service`\" pulumi-lang-go=\"`service`\" pulumi-lang-python=\"`service`\" pulumi-lang-yaml=\"`service`\" pulumi-lang-java=\"`service`\">`service`</span> and <span pulumi-lang-nodejs=\"`item`\" pulumi-lang-dotnet=\"`Item`\" pulumi-lang-go=\"`item`\" pulumi-lang-python=\"`item`\" pulumi-lang-yaml=\"`item`\" pulumi-lang-java=\"`item`\">`item`</span> each must be a string that starts with a letter and contains 3 to 32 characters, including only letters, digits, and underscores (_).\n","type":"string"},"time":{"description":"Specifies when the event occurred, which is a UNIX timestamp (ms). \n\n> **NOTE:**\nSince there is a latency between the client and the server, the data timestamp to be inserted should be within the period that starts from one hour before the current time plus 20s to 10 minutes after the current time minus 20s. In this way, the timestamp will be inserted to the database without being affected by the latency. For example, if the current time is 2020.01.30 12:00:30, the timestamp inserted must be within the range [2020.01.30 11:00:50, 2020.01.30 12:10:10]. The corresponding UNIX timestamp is [1580353250, 1580357410].\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCesEventReportV1Timeouts:CesEventReportV1Timeouts"}},"properties":{"cesEventReportV1Id":{"type":"string"},"detail":{"$ref":"#/types/opentelekomcloud:index%2FCesEventReportV1Detail:CesEventReportV1Detail","description":"Specifies the event details. The structure is described below.\n"},"eventId":{"description":"Specifies the event ID.\n","type":"string"},"eventName":{"description":"Specifies the event name. The value must be <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span> characters long and contain letters, digits, and underscores (_). It must start with a letter.\n","type":"string"},"eventSource":{"description":"Specifies the event source. The format is `service.item`. Set this parameter based on the site requirements. <span pulumi-lang-nodejs=\"`service`\" pulumi-lang-dotnet=\"`Service`\" pulumi-lang-go=\"`service`\" pulumi-lang-python=\"`service`\" pulumi-lang-yaml=\"`service`\" pulumi-lang-java=\"`service`\">`service`</span> and <span pulumi-lang-nodejs=\"`item`\" pulumi-lang-dotnet=\"`Item`\" pulumi-lang-go=\"`item`\" pulumi-lang-python=\"`item`\" pulumi-lang-yaml=\"`item`\" pulumi-lang-java=\"`item`\">`item`</span> each must be a string that starts with a letter and contains 3 to 32 characters, including only letters, digits, and underscores (_).\n","type":"string"},"time":{"description":"Specifies when the event occurred, which is a UNIX timestamp (ms). \n\n> **NOTE:**\nSince there is a latency between the client and the server, the data timestamp to be inserted should be within the period that starts from one hour before the current time plus 20s to 10 minutes after the current time minus 20s. In this way, the timestamp will be inserted to the database without being affected by the latency. For example, if the current time is 2020.01.30 12:00:30, the timestamp inserted must be within the range [2020.01.30 11:00:50, 2020.01.30 12:10:10]. The corresponding UNIX timestamp is [1580353250, 1580357410].\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCesEventReportV1Timeouts:CesEventReportV1Timeouts"}},"required":["cesEventReportV1Id","detail","eventId","eventName","eventSource","time"],"requiredInputs":["detail","eventName","eventSource","time"],"stateInputs":{"description":"Input properties used for looking up and filtering CesEventReportV1 resources.\n","properties":{"cesEventReportV1Id":{"type":"string"},"detail":{"$ref":"#/types/opentelekomcloud:index%2FCesEventReportV1Detail:CesEventReportV1Detail","description":"Specifies the event details. The structure is described below.\n"},"eventId":{"description":"Specifies the event ID.\n","type":"string"},"eventName":{"description":"Specifies the event name. The value must be <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span> characters long and contain letters, digits, and underscores (_). It must start with a letter.\n","type":"string"},"eventSource":{"description":"Specifies the event source. The format is `service.item`. Set this parameter based on the site requirements. <span pulumi-lang-nodejs=\"`service`\" pulumi-lang-dotnet=\"`Service`\" pulumi-lang-go=\"`service`\" pulumi-lang-python=\"`service`\" pulumi-lang-yaml=\"`service`\" pulumi-lang-java=\"`service`\">`service`</span> and <span pulumi-lang-nodejs=\"`item`\" pulumi-lang-dotnet=\"`Item`\" pulumi-lang-go=\"`item`\" pulumi-lang-python=\"`item`\" pulumi-lang-yaml=\"`item`\" pulumi-lang-java=\"`item`\">`item`</span> each must be a string that starts with a letter and contains 3 to 32 characters, including only letters, digits, and underscores (_).\n","type":"string"},"time":{"description":"Specifies when the event occurred, which is a UNIX timestamp (ms). \n\n> **NOTE:**\nSince there is a latency between the client and the server, the data timestamp to be inserted should be within the period that starts from one hour before the current time plus 20s to 10 minutes after the current time minus 20s. In this way, the timestamp will be inserted to the database without being affected by the latency. For example, if the current time is 2020.01.30 12:00:30, the timestamp inserted must be within the range [2020.01.30 11:00:50, 2020.01.30 12:10:10]. The corresponding UNIX timestamp is [1580353250, 1580357410].\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCesEventReportV1Timeouts:CesEventReportV1Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cesMetricDataV1:CesMetricDataV1":{"description":"Up-to-date reference of API arguments for CES Metric Data v1 you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-eye/api-ref/api_description/monitoring_data/index.html)\n\nManages a V1 CES Metric Data (used for reporting custom monitoring data) resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Basic metric data usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst metric1 = new opentelekomcloud.CesMetricDataV1(\"metric_1\", {\n    metric: {\n        namespace: \"TEST.TF_ACC\",\n        metricName: \"cpu_util\",\n        dimensions: [{\n            name: \"instance_id\",\n            value: instanceId,\n        }],\n    },\n    ttl: 172800,\n    collectTime: 1257894000000,\n    value: 0.09,\n    unit: \"%\",\n    type: \"float\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nmetric1 = opentelekomcloud.CesMetricDataV1(\"metric_1\",\n    metric={\n        \"namespace\": \"TEST.TF_ACC\",\n        \"metric_name\": \"cpu_util\",\n        \"dimensions\": [{\n            \"name\": \"instance_id\",\n            \"value\": instance_id,\n        }],\n    },\n    ttl=172800,\n    collect_time=1257894000000,\n    value=0.09,\n    unit=\"%\",\n    type=\"float\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var metric1 = new Opentelekomcloud.CesMetricDataV1(\"metric_1\", new()\n    {\n        Metric = new Opentelekomcloud.Inputs.CesMetricDataV1MetricArgs\n        {\n            Namespace = \"TEST.TF_ACC\",\n            MetricName = \"cpu_util\",\n            Dimensions = new[]\n            {\n                new Opentelekomcloud.Inputs.CesMetricDataV1MetricDimensionArgs\n                {\n                    Name = \"instance_id\",\n                    Value = instanceId,\n                },\n            },\n        },\n        Ttl = 172800,\n        CollectTime = 1257894000000,\n        Value = 0.09,\n        Unit = \"%\",\n        Type = \"float\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\t_, err := opentelekomcloud.NewCesMetricDataV1(ctx, \"metric_1\", &opentelekomcloud.CesMetricDataV1Args{\n\t\t\tMetric: &opentelekomcloud.CesMetricDataV1MetricArgs{\n\t\t\t\tNamespace:  pulumi.String(\"TEST.TF_ACC\"),\n\t\t\t\tMetricName: pulumi.String(\"cpu_util\"),\n\t\t\t\tDimensions: opentelekomcloud.CesMetricDataV1MetricDimensionArray{\n\t\t\t\t\t&opentelekomcloud.CesMetricDataV1MetricDimensionArgs{\n\t\t\t\t\t\tName:  pulumi.String(\"instance_id\"),\n\t\t\t\t\t\tValue: pulumi.Any(instanceId),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tTtl:         pulumi.Float64(172800),\n\t\t\tCollectTime: pulumi.Float64(1257894000000),\n\t\t\tValue:       pulumi.Float64(0.09),\n\t\t\tUnit:        pulumi.String(\"%\"),\n\t\t\tType:        pulumi.String(\"float\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CesMetricDataV1;\nimport com.pulumi.opentelekomcloud.CesMetricDataV1Args;\nimport com.pulumi.opentelekomcloud.inputs.CesMetricDataV1MetricArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        var metric1 = new CesMetricDataV1(\"metric1\", CesMetricDataV1Args.builder()\n            .metric(CesMetricDataV1MetricArgs.builder()\n                .namespace(\"TEST.TF_ACC\")\n                .metricName(\"cpu_util\")\n                .dimensions(CesMetricDataV1MetricDimensionArgs.builder()\n                    .name(\"instance_id\")\n                    .value(instanceId)\n                    .build())\n                .build())\n            .ttl(172800.0)\n            .collectTime(1257894000000.0)\n            .value(0.09)\n            .unit(\"%\")\n            .type(\"float\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\nresources:\n  metric1:\n    type: opentelekomcloud:CesMetricDataV1\n    name: metric_1\n    properties:\n      metric:\n        namespace: TEST.TF_ACC\n        metricName: cpu_util\n        dimensions:\n          - name: instance_id\n            value: ${instanceId}\n      ttl: 172800\n      collectTime: 1.257894e+12\n      value: 0.09\n      unit: '%'\n      type: float\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"cesMetricDataV1Id":{"type":"string"},"collectTime":{"description":"Specifies when the data was collected, which is a UNIX timestamp (ms). \n\n> **NOTE:**\nSince there is a latency between the client and the server, the data timestamp to be inserted should be within the period that starts from three days before the current time plus 20s to 10 minutes after the current time minus 20s. In this way, the timestamp will be inserted to the database without being affected by the latency.\n","type":"number"},"metric":{"$ref":"#/types/opentelekomcloud:index%2FCesMetricDataV1Metric:CesMetricDataV1Metric","description":"Specifies the metric data. The structure is described below.\n"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCesMetricDataV1Timeouts:CesMetricDataV1Timeouts"},"ttl":{"description":"Specifies the data validity period. The unit is <span pulumi-lang-nodejs=\"`second`\" pulumi-lang-dotnet=\"`Second`\" pulumi-lang-go=\"`second`\" pulumi-lang-python=\"`second`\" pulumi-lang-yaml=\"`second`\" pulumi-lang-java=\"`second`\">`second`</span>. Supported range: <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`604800`\" pulumi-lang-dotnet=\"`604800`\" pulumi-lang-go=\"`604800`\" pulumi-lang-python=\"`604800`\" pulumi-lang-yaml=\"`604800`\" pulumi-lang-java=\"`604800`\">`604800`</span>. If the validity period expires, the data will be automatically deleted.\n","type":"number"},"type":{"description":"Specifies the enumerated type. Possible values: <span pulumi-lang-nodejs=\"`int`\" pulumi-lang-dotnet=\"`Int`\" pulumi-lang-go=\"`int`\" pulumi-lang-python=\"`int`\" pulumi-lang-yaml=\"`int`\" pulumi-lang-java=\"`int`\">`int`</span>, <span pulumi-lang-nodejs=\"`float`\" pulumi-lang-dotnet=\"`Float`\" pulumi-lang-go=\"`float`\" pulumi-lang-python=\"`float`\" pulumi-lang-yaml=\"`float`\" pulumi-lang-java=\"`float`\">`float`</span>\n","type":"string"},"unit":{"description":"Specifies the data unit. Supported range: <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span>\n","type":"string"},"value":{"description":"Specifies the monitoring metric data to be added, which can be an integer or a floating point number.\n","type":"number"}},"properties":{"cesMetricDataV1Id":{"type":"string"},"collectTime":{"description":"Specifies when the data was collected, which is a UNIX timestamp (ms). \n\n> **NOTE:**\nSince there is a latency between the client and the server, the data timestamp to be inserted should be within the period that starts from three days before the current time plus 20s to 10 minutes after the current time minus 20s. In this way, the timestamp will be inserted to the database without being affected by the latency.\n","type":"number"},"metric":{"$ref":"#/types/opentelekomcloud:index%2FCesMetricDataV1Metric:CesMetricDataV1Metric","description":"Specifies the metric data. The structure is described below.\n"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCesMetricDataV1Timeouts:CesMetricDataV1Timeouts"},"ttl":{"description":"Specifies the data validity period. The unit is <span pulumi-lang-nodejs=\"`second`\" pulumi-lang-dotnet=\"`Second`\" pulumi-lang-go=\"`second`\" pulumi-lang-python=\"`second`\" pulumi-lang-yaml=\"`second`\" pulumi-lang-java=\"`second`\">`second`</span>. Supported range: <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`604800`\" pulumi-lang-dotnet=\"`604800`\" pulumi-lang-go=\"`604800`\" pulumi-lang-python=\"`604800`\" pulumi-lang-yaml=\"`604800`\" pulumi-lang-java=\"`604800`\">`604800`</span>. If the validity period expires, the data will be automatically deleted.\n","type":"number"},"type":{"description":"Specifies the enumerated type. Possible values: <span pulumi-lang-nodejs=\"`int`\" pulumi-lang-dotnet=\"`Int`\" pulumi-lang-go=\"`int`\" pulumi-lang-python=\"`int`\" pulumi-lang-yaml=\"`int`\" pulumi-lang-java=\"`int`\">`int`</span>, <span pulumi-lang-nodejs=\"`float`\" pulumi-lang-dotnet=\"`Float`\" pulumi-lang-go=\"`float`\" pulumi-lang-python=\"`float`\" pulumi-lang-yaml=\"`float`\" pulumi-lang-java=\"`float`\">`float`</span>\n","type":"string"},"unit":{"description":"Specifies the data unit. Supported range: <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span>\n","type":"string"},"value":{"description":"Specifies the monitoring metric data to be added, which can be an integer or a floating point number.\n","type":"number"}},"required":["cesMetricDataV1Id","collectTime","metric","ttl","value"],"requiredInputs":["collectTime","metric","ttl","value"],"stateInputs":{"description":"Input properties used for looking up and filtering CesMetricDataV1 resources.\n","properties":{"cesMetricDataV1Id":{"type":"string"},"collectTime":{"description":"Specifies when the data was collected, which is a UNIX timestamp (ms). \n\n> **NOTE:**\nSince there is a latency between the client and the server, the data timestamp to be inserted should be within the period that starts from three days before the current time plus 20s to 10 minutes after the current time minus 20s. In this way, the timestamp will be inserted to the database without being affected by the latency.\n","type":"number"},"metric":{"$ref":"#/types/opentelekomcloud:index%2FCesMetricDataV1Metric:CesMetricDataV1Metric","description":"Specifies the metric data. The structure is described below.\n"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCesMetricDataV1Timeouts:CesMetricDataV1Timeouts"},"ttl":{"description":"Specifies the data validity period. The unit is <span pulumi-lang-nodejs=\"`second`\" pulumi-lang-dotnet=\"`Second`\" pulumi-lang-go=\"`second`\" pulumi-lang-python=\"`second`\" pulumi-lang-yaml=\"`second`\" pulumi-lang-java=\"`second`\">`second`</span>. Supported range: <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`604800`\" pulumi-lang-dotnet=\"`604800`\" pulumi-lang-go=\"`604800`\" pulumi-lang-python=\"`604800`\" pulumi-lang-yaml=\"`604800`\" pulumi-lang-java=\"`604800`\">`604800`</span>. If the validity period expires, the data will be automatically deleted.\n","type":"number"},"type":{"description":"Specifies the enumerated type. Possible values: <span pulumi-lang-nodejs=\"`int`\" pulumi-lang-dotnet=\"`Int`\" pulumi-lang-go=\"`int`\" pulumi-lang-python=\"`int`\" pulumi-lang-yaml=\"`int`\" pulumi-lang-java=\"`int`\">`int`</span>, <span pulumi-lang-nodejs=\"`float`\" pulumi-lang-dotnet=\"`Float`\" pulumi-lang-go=\"`float`\" pulumi-lang-python=\"`float`\" pulumi-lang-yaml=\"`float`\" pulumi-lang-java=\"`float`\">`float`</span>\n","type":"string"},"unit":{"description":"Specifies the data unit. Supported range: <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span>\n","type":"string"},"value":{"description":"Specifies the monitoring metric data to be added, which can be an integer or a floating point number.\n","type":"number"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cesOneClickAlarmV2:CesOneClickAlarmV2":{"description":"Up-to-date reference of API arguments for CES one-click monitoring you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-eye/api-ref/api_v2/one-click_monitoring/index.html)\n\nManages a CES One-Click Alarm v2 resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Basic one-click monitoring without notifications\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = new opentelekomcloud.CesOneClickAlarmV2(\"test\", {\n    oneClickAlarmId: \"ECSSystemOneClickAlarm\",\n    dimensionNames: {\n        metrics: [\"instance_id\"],\n    },\n    notificationEnabled: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.CesOneClickAlarmV2(\"test\",\n    one_click_alarm_id=\"ECSSystemOneClickAlarm\",\n    dimension_names={\n        \"metrics\": [\"instance_id\"],\n    },\n    notification_enabled=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = new Opentelekomcloud.CesOneClickAlarmV2(\"test\", new()\n    {\n        OneClickAlarmId = \"ECSSystemOneClickAlarm\",\n        DimensionNames = new Opentelekomcloud.Inputs.CesOneClickAlarmV2DimensionNamesArgs\n        {\n            Metrics = new[]\n            {\n                \"instance_id\",\n            },\n        },\n        NotificationEnabled = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewCesOneClickAlarmV2(ctx, \"test\", &opentelekomcloud.CesOneClickAlarmV2Args{\n\t\t\tOneClickAlarmId: pulumi.String(\"ECSSystemOneClickAlarm\"),\n\t\t\tDimensionNames: &opentelekomcloud.CesOneClickAlarmV2DimensionNamesArgs{\n\t\t\t\tMetrics: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"instance_id\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNotificationEnabled: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CesOneClickAlarmV2;\nimport com.pulumi.opentelekomcloud.CesOneClickAlarmV2Args;\nimport com.pulumi.opentelekomcloud.inputs.CesOneClickAlarmV2DimensionNamesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new CesOneClickAlarmV2(\"test\", CesOneClickAlarmV2Args.builder()\n            .oneClickAlarmId(\"ECSSystemOneClickAlarm\")\n            .dimensionNames(CesOneClickAlarmV2DimensionNamesArgs.builder()\n                .metrics(\"instance_id\")\n                .build())\n            .notificationEnabled(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: opentelekomcloud:CesOneClickAlarmV2\n    properties:\n      oneClickAlarmId: ECSSystemOneClickAlarm\n      dimensionNames:\n        metrics:\n          - instance_id\n      notificationEnabled: false\n```\n<!--End PulumiCodeChooser -->\n\n### One-click monitoring with notifications\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst topicUrn = config.requireObject<any>(\"topicUrn\");\nconst test = new opentelekomcloud.CesOneClickAlarmV2(\"test\", {\n    oneClickAlarmId: \"OBSSystemOneClickAlarm\",\n    dimensionNames: {\n        metrics: [\"bucket_name\"],\n    },\n    notificationEnabled: true,\n    alarmNotifications: [{\n        type: \"notification\",\n        notificationLists: [topicUrn],\n    }],\n    okNotifications: [{\n        type: \"notification\",\n        notificationLists: [topicUrn],\n    }],\n    notificationBeginTime: \"00:00\",\n    notificationEndTime: \"23:59\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ntopic_urn = config.require_object(\"topicUrn\")\ntest = opentelekomcloud.CesOneClickAlarmV2(\"test\",\n    one_click_alarm_id=\"OBSSystemOneClickAlarm\",\n    dimension_names={\n        \"metrics\": [\"bucket_name\"],\n    },\n    notification_enabled=True,\n    alarm_notifications=[{\n        \"type\": \"notification\",\n        \"notification_lists\": [topic_urn],\n    }],\n    ok_notifications=[{\n        \"type\": \"notification\",\n        \"notification_lists\": [topic_urn],\n    }],\n    notification_begin_time=\"00:00\",\n    notification_end_time=\"23:59\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var topicUrn = config.RequireObject<dynamic>(\"topicUrn\");\n    var test = new Opentelekomcloud.CesOneClickAlarmV2(\"test\", new()\n    {\n        OneClickAlarmId = \"OBSSystemOneClickAlarm\",\n        DimensionNames = new Opentelekomcloud.Inputs.CesOneClickAlarmV2DimensionNamesArgs\n        {\n            Metrics = new[]\n            {\n                \"bucket_name\",\n            },\n        },\n        NotificationEnabled = true,\n        AlarmNotifications = new[]\n        {\n            new Opentelekomcloud.Inputs.CesOneClickAlarmV2AlarmNotificationArgs\n            {\n                Type = \"notification\",\n                NotificationLists = new[]\n                {\n                    topicUrn,\n                },\n            },\n        },\n        OkNotifications = new[]\n        {\n            new Opentelekomcloud.Inputs.CesOneClickAlarmV2OkNotificationArgs\n            {\n                Type = \"notification\",\n                NotificationLists = new[]\n                {\n                    topicUrn,\n                },\n            },\n        },\n        NotificationBeginTime = \"00:00\",\n        NotificationEndTime = \"23:59\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\ttopicUrn := cfg.RequireObject(\"topicUrn\")\n\t\t_, err := opentelekomcloud.NewCesOneClickAlarmV2(ctx, \"test\", &opentelekomcloud.CesOneClickAlarmV2Args{\n\t\t\tOneClickAlarmId: pulumi.String(\"OBSSystemOneClickAlarm\"),\n\t\t\tDimensionNames: &opentelekomcloud.CesOneClickAlarmV2DimensionNamesArgs{\n\t\t\t\tMetrics: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"bucket_name\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNotificationEnabled: pulumi.Bool(true),\n\t\t\tAlarmNotifications: opentelekomcloud.CesOneClickAlarmV2AlarmNotificationArray{\n\t\t\t\t&opentelekomcloud.CesOneClickAlarmV2AlarmNotificationArgs{\n\t\t\t\t\tType: pulumi.String(\"notification\"),\n\t\t\t\t\tNotificationLists: pulumi.StringArray{\n\t\t\t\t\t\ttopicUrn,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tOkNotifications: opentelekomcloud.CesOneClickAlarmV2OkNotificationArray{\n\t\t\t\t&opentelekomcloud.CesOneClickAlarmV2OkNotificationArgs{\n\t\t\t\t\tType: pulumi.String(\"notification\"),\n\t\t\t\t\tNotificationLists: pulumi.StringArray{\n\t\t\t\t\t\ttopicUrn,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tNotificationBeginTime: pulumi.String(\"00:00\"),\n\t\t\tNotificationEndTime:   pulumi.String(\"23:59\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CesOneClickAlarmV2;\nimport com.pulumi.opentelekomcloud.CesOneClickAlarmV2Args;\nimport com.pulumi.opentelekomcloud.inputs.CesOneClickAlarmV2DimensionNamesArgs;\nimport com.pulumi.opentelekomcloud.inputs.CesOneClickAlarmV2AlarmNotificationArgs;\nimport com.pulumi.opentelekomcloud.inputs.CesOneClickAlarmV2OkNotificationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var topicUrn = config.get(\"topicUrn\");\n        var test = new CesOneClickAlarmV2(\"test\", CesOneClickAlarmV2Args.builder()\n            .oneClickAlarmId(\"OBSSystemOneClickAlarm\")\n            .dimensionNames(CesOneClickAlarmV2DimensionNamesArgs.builder()\n                .metrics(\"bucket_name\")\n                .build())\n            .notificationEnabled(true)\n            .alarmNotifications(CesOneClickAlarmV2AlarmNotificationArgs.builder()\n                .type(\"notification\")\n                .notificationLists(topicUrn)\n                .build())\n            .okNotifications(CesOneClickAlarmV2OkNotificationArgs.builder()\n                .type(\"notification\")\n                .notificationLists(topicUrn)\n                .build())\n            .notificationBeginTime(\"00:00\")\n            .notificationEndTime(\"23:59\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  topicUrn:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:CesOneClickAlarmV2\n    properties:\n      oneClickAlarmId: OBSSystemOneClickAlarm\n      dimensionNames:\n        metrics:\n          - bucket_name\n      notificationEnabled: true\n      alarmNotifications:\n        - type: notification\n          notificationLists:\n            - ${topicUrn}\n      okNotifications:\n        - type: notification\n          notificationLists:\n            - ${topicUrn}\n      notificationBeginTime: 00:00\n      notificationEndTime: 23:59\n```\n<!--End PulumiCodeChooser -->\n\n### One-click monitoring with event dimensions\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst topicUrn = config.requireObject<any>(\"topicUrn\");\nconst test = new opentelekomcloud.CesOneClickAlarmV2(\"test\", {\n    oneClickAlarmId: \"ECSSystemOneClickAlarm\",\n    dimensionNames: {\n        metrics: [\"instance_id\"],\n        event: true,\n    },\n    notificationEnabled: true,\n    alarmNotifications: [{\n        type: \"notification\",\n        notificationLists: [topicUrn],\n    }],\n    notificationBeginTime: \"00:00\",\n    notificationEndTime: \"23:59\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ntopic_urn = config.require_object(\"topicUrn\")\ntest = opentelekomcloud.CesOneClickAlarmV2(\"test\",\n    one_click_alarm_id=\"ECSSystemOneClickAlarm\",\n    dimension_names={\n        \"metrics\": [\"instance_id\"],\n        \"event\": True,\n    },\n    notification_enabled=True,\n    alarm_notifications=[{\n        \"type\": \"notification\",\n        \"notification_lists\": [topic_urn],\n    }],\n    notification_begin_time=\"00:00\",\n    notification_end_time=\"23:59\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var topicUrn = config.RequireObject<dynamic>(\"topicUrn\");\n    var test = new Opentelekomcloud.CesOneClickAlarmV2(\"test\", new()\n    {\n        OneClickAlarmId = \"ECSSystemOneClickAlarm\",\n        DimensionNames = new Opentelekomcloud.Inputs.CesOneClickAlarmV2DimensionNamesArgs\n        {\n            Metrics = new[]\n            {\n                \"instance_id\",\n            },\n            Event = true,\n        },\n        NotificationEnabled = true,\n        AlarmNotifications = new[]\n        {\n            new Opentelekomcloud.Inputs.CesOneClickAlarmV2AlarmNotificationArgs\n            {\n                Type = \"notification\",\n                NotificationLists = new[]\n                {\n                    topicUrn,\n                },\n            },\n        },\n        NotificationBeginTime = \"00:00\",\n        NotificationEndTime = \"23:59\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\ttopicUrn := cfg.RequireObject(\"topicUrn\")\n\t\t_, err := opentelekomcloud.NewCesOneClickAlarmV2(ctx, \"test\", &opentelekomcloud.CesOneClickAlarmV2Args{\n\t\t\tOneClickAlarmId: pulumi.String(\"ECSSystemOneClickAlarm\"),\n\t\t\tDimensionNames: &opentelekomcloud.CesOneClickAlarmV2DimensionNamesArgs{\n\t\t\t\tMetrics: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"instance_id\"),\n\t\t\t\t},\n\t\t\t\tEvent: pulumi.Bool(true),\n\t\t\t},\n\t\t\tNotificationEnabled: pulumi.Bool(true),\n\t\t\tAlarmNotifications: opentelekomcloud.CesOneClickAlarmV2AlarmNotificationArray{\n\t\t\t\t&opentelekomcloud.CesOneClickAlarmV2AlarmNotificationArgs{\n\t\t\t\t\tType: pulumi.String(\"notification\"),\n\t\t\t\t\tNotificationLists: pulumi.StringArray{\n\t\t\t\t\t\ttopicUrn,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tNotificationBeginTime: pulumi.String(\"00:00\"),\n\t\t\tNotificationEndTime:   pulumi.String(\"23:59\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CesOneClickAlarmV2;\nimport com.pulumi.opentelekomcloud.CesOneClickAlarmV2Args;\nimport com.pulumi.opentelekomcloud.inputs.CesOneClickAlarmV2DimensionNamesArgs;\nimport com.pulumi.opentelekomcloud.inputs.CesOneClickAlarmV2AlarmNotificationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var topicUrn = config.get(\"topicUrn\");\n        var test = new CesOneClickAlarmV2(\"test\", CesOneClickAlarmV2Args.builder()\n            .oneClickAlarmId(\"ECSSystemOneClickAlarm\")\n            .dimensionNames(CesOneClickAlarmV2DimensionNamesArgs.builder()\n                .metrics(\"instance_id\")\n                .event(true)\n                .build())\n            .notificationEnabled(true)\n            .alarmNotifications(CesOneClickAlarmV2AlarmNotificationArgs.builder()\n                .type(\"notification\")\n                .notificationLists(topicUrn)\n                .build())\n            .notificationBeginTime(\"00:00\")\n            .notificationEndTime(\"23:59\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  topicUrn:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:CesOneClickAlarmV2\n    properties:\n      oneClickAlarmId: ECSSystemOneClickAlarm\n      dimensionNames:\n        metrics:\n          - instance_id\n        event: true\n      notificationEnabled: true\n      alarmNotifications:\n        - type: notification\n          notificationLists:\n            - ${topicUrn}\n      notificationBeginTime: 00:00\n      notificationEndTime: 23:59\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCES one-click alarms v2 can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/cesOneClickAlarmV2:CesOneClickAlarmV2 test OBSSystemOneClickAlarm\n```\n\nNote that the imported state may not be identical to your resource definition, due to the API response not including\n\nsome attributes. The missing attributes include: `one_click_alarm_id`, `dimension_names`, `notification_enabled`,\n\n`alarm_notifications`, `ok_notifications`, `notification_begin_time`, and `notification_end_time`.\n\nIt is generally recommended running `pulumi preview` after importing the resource. You can then decide\n\nif changes should be applied to the resource, or the resource definition should be updated to align\n\nwith the resource. Also, you can ignore changes as below.\n\nhcl\n\nresource \"opentelekomcloud_ces_one_click_alarm_v2\" \"test\" {\n\n  lifecycle {\n\n    ignore_changes = [\n\n      one_click_alarm_id, dimension_names, notification_enabled,\n\n      alarm_notifications, ok_notifications, notification_begin_time, notification_end_time,\n\n    ]\n\n  }\n\n}\n\n","inputProperties":{"alarmNotifications":{"description":"Specifies the action to be triggered by an alarm.\n+ If the value of <span pulumi-lang-nodejs=\"`notificationEnabled`\" pulumi-lang-dotnet=\"`NotificationEnabled`\" pulumi-lang-go=\"`notificationEnabled`\" pulumi-lang-python=\"`notification_enabled`\" pulumi-lang-yaml=\"`notificationEnabled`\" pulumi-lang-java=\"`notificationEnabled`\">`notification_enabled`</span> is **false**, this parameter should not be set.\n+ If the value of <span pulumi-lang-nodejs=\"`notificationEnabled`\" pulumi-lang-dotnet=\"`NotificationEnabled`\" pulumi-lang-go=\"`notificationEnabled`\" pulumi-lang-python=\"`notification_enabled`\" pulumi-lang-yaml=\"`notificationEnabled`\" pulumi-lang-java=\"`notificationEnabled`\">`notification_enabled`</span> is **true**, this parameter is required.\n\nThe<span pulumi-lang-nodejs=\" alarmNotifications \" pulumi-lang-dotnet=\" AlarmNotifications \" pulumi-lang-go=\" alarmNotifications \" pulumi-lang-python=\" alarm_notifications \" pulumi-lang-yaml=\" alarmNotifications \" pulumi-lang-java=\" alarmNotifications \"> alarm_notifications </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesOneClickAlarmV2AlarmNotification:CesOneClickAlarmV2AlarmNotification"},"type":"array"},"cesOneClickAlarmV2Id":{"description":"The one-click alarm ID.\n","type":"string"},"dimensionNames":{"$ref":"#/types/opentelekomcloud:index%2FCesOneClickAlarmV2DimensionNames:CesOneClickAlarmV2DimensionNames","description":"Specifies the dimension names for metric and event alarm rules.\nThe<span pulumi-lang-nodejs=\" dimensionNames \" pulumi-lang-dotnet=\" DimensionNames \" pulumi-lang-go=\" dimensionNames \" pulumi-lang-python=\" dimension_names \" pulumi-lang-yaml=\" dimensionNames \" pulumi-lang-java=\" dimensionNames \"> dimension_names </span>structure is documented below.\nChanging this creates a new resource.\n"},"notificationBeginTime":{"description":"Specifies the alarm notification start time,\nfor example: **00:00**. The format is `HH:MM`.\n","type":"string"},"notificationEnabled":{"description":"Specifies whether to enable alarm notifications.\n","type":"boolean"},"notificationEndTime":{"description":"Specifies the alarm notification end time,\nfor example: **23:59**. The format is `HH:MM`.\n\n<a name=<span pulumi-lang-nodejs=\"\"dimensionNamesStruct\"\" pulumi-lang-dotnet=\"\"DimensionNamesStruct\"\" pulumi-lang-go=\"\"dimensionNamesStruct\"\" pulumi-lang-python=\"\"dimension_names_struct\"\" pulumi-lang-yaml=\"\"dimensionNamesStruct\"\" pulumi-lang-java=\"\"dimensionNamesStruct\"\">\"dimension_names_struct\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`dimensionNames`\" pulumi-lang-dotnet=\"`DimensionNames`\" pulumi-lang-go=\"`dimensionNames`\" pulumi-lang-python=\"`dimension_names`\" pulumi-lang-yaml=\"`dimensionNames`\" pulumi-lang-java=\"`dimensionNames`\">`dimension_names`</span> block supports:\n","type":"string"},"okNotifications":{"description":"Specifies the action to be triggered after an alarm is cleared.\n+ If the value of <span pulumi-lang-nodejs=\"`notificationEnabled`\" pulumi-lang-dotnet=\"`NotificationEnabled`\" pulumi-lang-go=\"`notificationEnabled`\" pulumi-lang-python=\"`notification_enabled`\" pulumi-lang-yaml=\"`notificationEnabled`\" pulumi-lang-java=\"`notificationEnabled`\">`notification_enabled`</span> is **false**, this parameter should not be set.\n\nThe<span pulumi-lang-nodejs=\" okNotifications \" pulumi-lang-dotnet=\" OkNotifications \" pulumi-lang-go=\" okNotifications \" pulumi-lang-python=\" ok_notifications \" pulumi-lang-yaml=\" okNotifications \" pulumi-lang-java=\" okNotifications \"> ok_notifications </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesOneClickAlarmV2OkNotification:CesOneClickAlarmV2OkNotification"},"type":"array"},"oneClickAlarmId":{"description":"Specifies the one-click monitoring ID.\nThe value can be a string of <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span> alphanumeric characters.\nChanging this creates a new resource.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCesOneClickAlarmV2Timeouts:CesOneClickAlarmV2Timeouts"}},"properties":{"alarmNotifications":{"description":"Specifies the action to be triggered by an alarm.\n+ If the value of <span pulumi-lang-nodejs=\"`notificationEnabled`\" pulumi-lang-dotnet=\"`NotificationEnabled`\" pulumi-lang-go=\"`notificationEnabled`\" pulumi-lang-python=\"`notification_enabled`\" pulumi-lang-yaml=\"`notificationEnabled`\" pulumi-lang-java=\"`notificationEnabled`\">`notification_enabled`</span> is **false**, this parameter should not be set.\n+ If the value of <span pulumi-lang-nodejs=\"`notificationEnabled`\" pulumi-lang-dotnet=\"`NotificationEnabled`\" pulumi-lang-go=\"`notificationEnabled`\" pulumi-lang-python=\"`notification_enabled`\" pulumi-lang-yaml=\"`notificationEnabled`\" pulumi-lang-java=\"`notificationEnabled`\">`notification_enabled`</span> is **true**, this parameter is required.\n\nThe<span pulumi-lang-nodejs=\" alarmNotifications \" pulumi-lang-dotnet=\" AlarmNotifications \" pulumi-lang-go=\" alarmNotifications \" pulumi-lang-python=\" alarm_notifications \" pulumi-lang-yaml=\" alarmNotifications \" pulumi-lang-java=\" alarmNotifications \"> alarm_notifications </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesOneClickAlarmV2AlarmNotification:CesOneClickAlarmV2AlarmNotification"},"type":"array"},"cesOneClickAlarmV2Id":{"description":"The one-click alarm ID.\n","type":"string"},"description":{"description":"The description of the one-click monitoring configuration.\n","type":"string"},"dimensionNames":{"$ref":"#/types/opentelekomcloud:index%2FCesOneClickAlarmV2DimensionNames:CesOneClickAlarmV2DimensionNames","description":"Specifies the dimension names for metric and event alarm rules.\nThe<span pulumi-lang-nodejs=\" dimensionNames \" pulumi-lang-dotnet=\" DimensionNames \" pulumi-lang-go=\" dimensionNames \" pulumi-lang-python=\" dimension_names \" pulumi-lang-yaml=\" dimensionNames \" pulumi-lang-java=\" dimensionNames \"> dimension_names </span>structure is documented below.\nChanging this creates a new resource.\n"},"enabled":{"description":"Whether one-click monitoring is enabled.\n","type":"boolean"},"internalAlarmId":{"description":"The auto-generated internal alarm ID returned by the API.\n","type":"string"},"namespace":{"description":"The namespace of the monitored service.\n","type":"string"},"notificationBeginTime":{"description":"Specifies the alarm notification start time,\nfor example: **00:00**. The format is `HH:MM`.\n","type":"string"},"notificationEnabled":{"description":"Specifies whether to enable alarm notifications.\n","type":"boolean"},"notificationEndTime":{"description":"Specifies the alarm notification end time,\nfor example: **23:59**. The format is `HH:MM`.\n\n<a name=<span pulumi-lang-nodejs=\"\"dimensionNamesStruct\"\" pulumi-lang-dotnet=\"\"DimensionNamesStruct\"\" pulumi-lang-go=\"\"dimensionNamesStruct\"\" pulumi-lang-python=\"\"dimension_names_struct\"\" pulumi-lang-yaml=\"\"dimensionNamesStruct\"\" pulumi-lang-java=\"\"dimensionNamesStruct\"\">\"dimension_names_struct\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`dimensionNames`\" pulumi-lang-dotnet=\"`DimensionNames`\" pulumi-lang-go=\"`dimensionNames`\" pulumi-lang-python=\"`dimension_names`\" pulumi-lang-yaml=\"`dimensionNames`\" pulumi-lang-java=\"`dimensionNames`\">`dimension_names`</span> block supports:\n","type":"string"},"okNotifications":{"description":"Specifies the action to be triggered after an alarm is cleared.\n+ If the value of <span pulumi-lang-nodejs=\"`notificationEnabled`\" pulumi-lang-dotnet=\"`NotificationEnabled`\" pulumi-lang-go=\"`notificationEnabled`\" pulumi-lang-python=\"`notification_enabled`\" pulumi-lang-yaml=\"`notificationEnabled`\" pulumi-lang-java=\"`notificationEnabled`\">`notification_enabled`</span> is **false**, this parameter should not be set.\n\nThe<span pulumi-lang-nodejs=\" okNotifications \" pulumi-lang-dotnet=\" OkNotifications \" pulumi-lang-go=\" okNotifications \" pulumi-lang-python=\" ok_notifications \" pulumi-lang-yaml=\" okNotifications \" pulumi-lang-java=\" okNotifications \"> ok_notifications </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesOneClickAlarmV2OkNotification:CesOneClickAlarmV2OkNotification"},"type":"array"},"oneClickAlarmId":{"description":"Specifies the one-click monitoring ID.\nThe value can be a string of <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span> alphanumeric characters.\nChanging this creates a new resource.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCesOneClickAlarmV2Timeouts:CesOneClickAlarmV2Timeouts"}},"required":["cesOneClickAlarmV2Id","description","dimensionNames","enabled","internalAlarmId","namespace","notificationEnabled","oneClickAlarmId"],"requiredInputs":["dimensionNames","notificationEnabled","oneClickAlarmId"],"stateInputs":{"description":"Input properties used for looking up and filtering CesOneClickAlarmV2 resources.\n","properties":{"alarmNotifications":{"description":"Specifies the action to be triggered by an alarm.\n+ If the value of <span pulumi-lang-nodejs=\"`notificationEnabled`\" pulumi-lang-dotnet=\"`NotificationEnabled`\" pulumi-lang-go=\"`notificationEnabled`\" pulumi-lang-python=\"`notification_enabled`\" pulumi-lang-yaml=\"`notificationEnabled`\" pulumi-lang-java=\"`notificationEnabled`\">`notification_enabled`</span> is **false**, this parameter should not be set.\n+ If the value of <span pulumi-lang-nodejs=\"`notificationEnabled`\" pulumi-lang-dotnet=\"`NotificationEnabled`\" pulumi-lang-go=\"`notificationEnabled`\" pulumi-lang-python=\"`notification_enabled`\" pulumi-lang-yaml=\"`notificationEnabled`\" pulumi-lang-java=\"`notificationEnabled`\">`notification_enabled`</span> is **true**, this parameter is required.\n\nThe<span pulumi-lang-nodejs=\" alarmNotifications \" pulumi-lang-dotnet=\" AlarmNotifications \" pulumi-lang-go=\" alarmNotifications \" pulumi-lang-python=\" alarm_notifications \" pulumi-lang-yaml=\" alarmNotifications \" pulumi-lang-java=\" alarmNotifications \"> alarm_notifications </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesOneClickAlarmV2AlarmNotification:CesOneClickAlarmV2AlarmNotification"},"type":"array"},"cesOneClickAlarmV2Id":{"description":"The one-click alarm ID.\n","type":"string"},"description":{"description":"The description of the one-click monitoring configuration.\n","type":"string"},"dimensionNames":{"$ref":"#/types/opentelekomcloud:index%2FCesOneClickAlarmV2DimensionNames:CesOneClickAlarmV2DimensionNames","description":"Specifies the dimension names for metric and event alarm rules.\nThe<span pulumi-lang-nodejs=\" dimensionNames \" pulumi-lang-dotnet=\" DimensionNames \" pulumi-lang-go=\" dimensionNames \" pulumi-lang-python=\" dimension_names \" pulumi-lang-yaml=\" dimensionNames \" pulumi-lang-java=\" dimensionNames \"> dimension_names </span>structure is documented below.\nChanging this creates a new resource.\n"},"enabled":{"description":"Whether one-click monitoring is enabled.\n","type":"boolean"},"internalAlarmId":{"description":"The auto-generated internal alarm ID returned by the API.\n","type":"string"},"namespace":{"description":"The namespace of the monitored service.\n","type":"string"},"notificationBeginTime":{"description":"Specifies the alarm notification start time,\nfor example: **00:00**. The format is `HH:MM`.\n","type":"string"},"notificationEnabled":{"description":"Specifies whether to enable alarm notifications.\n","type":"boolean"},"notificationEndTime":{"description":"Specifies the alarm notification end time,\nfor example: **23:59**. The format is `HH:MM`.\n\n<a name=<span pulumi-lang-nodejs=\"\"dimensionNamesStruct\"\" pulumi-lang-dotnet=\"\"DimensionNamesStruct\"\" pulumi-lang-go=\"\"dimensionNamesStruct\"\" pulumi-lang-python=\"\"dimension_names_struct\"\" pulumi-lang-yaml=\"\"dimensionNamesStruct\"\" pulumi-lang-java=\"\"dimensionNamesStruct\"\">\"dimension_names_struct\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`dimensionNames`\" pulumi-lang-dotnet=\"`DimensionNames`\" pulumi-lang-go=\"`dimensionNames`\" pulumi-lang-python=\"`dimension_names`\" pulumi-lang-yaml=\"`dimensionNames`\" pulumi-lang-java=\"`dimensionNames`\">`dimension_names`</span> block supports:\n","type":"string"},"okNotifications":{"description":"Specifies the action to be triggered after an alarm is cleared.\n+ If the value of <span pulumi-lang-nodejs=\"`notificationEnabled`\" pulumi-lang-dotnet=\"`NotificationEnabled`\" pulumi-lang-go=\"`notificationEnabled`\" pulumi-lang-python=\"`notification_enabled`\" pulumi-lang-yaml=\"`notificationEnabled`\" pulumi-lang-java=\"`notificationEnabled`\">`notification_enabled`</span> is **false**, this parameter should not be set.\n\nThe<span pulumi-lang-nodejs=\" okNotifications \" pulumi-lang-dotnet=\" OkNotifications \" pulumi-lang-go=\" okNotifications \" pulumi-lang-python=\" ok_notifications \" pulumi-lang-yaml=\" okNotifications \" pulumi-lang-java=\" okNotifications \"> ok_notifications </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesOneClickAlarmV2OkNotification:CesOneClickAlarmV2OkNotification"},"type":"array"},"oneClickAlarmId":{"description":"Specifies the one-click monitoring ID.\nThe value can be a string of <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span> alphanumeric characters.\nChanging this creates a new resource.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCesOneClickAlarmV2Timeouts:CesOneClickAlarmV2Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cesResourceGroupV2:CesResourceGroupV2":{"description":"Up-to-date reference of API arguments for CES resource group you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-eye/api-ref/api_v2/resource_groups/index.html)\n\nManages a CES resource group resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Add resources manually\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst subnetId = config.requireObject<any>(\"subnetId\");\nconst vm1 = new opentelekomcloud.ComputeInstanceV2(\"vm_1\", {\n    name: \"ecs-test\",\n    imageName: \"Standard_Debian_11_latest\",\n    flavorName: \"s3.large.2\",\n    networks: [{\n        uuid: subnetId,\n    }],\n});\nconst test = new opentelekomcloud.CesResourceGroupV2(\"test\", {\n    name: \"test\",\n    resources: [\n        {\n            namespace: \"SYS.ECS\",\n            dimensions: [{\n                name: \"instance_id\",\n                value: vm1.computeInstanceV2Id,\n            }],\n        },\n        {\n            namespace: \"SYS.EVS\",\n            dimensions: [{\n                name: \"disk_name\",\n                value: pulumi.interpolate`${vm1.computeInstanceV2Id}-sda`,\n            }],\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nsubnet_id = config.require_object(\"subnetId\")\nvm1 = opentelekomcloud.ComputeInstanceV2(\"vm_1\",\n    name=\"ecs-test\",\n    image_name=\"Standard_Debian_11_latest\",\n    flavor_name=\"s3.large.2\",\n    networks=[{\n        \"uuid\": subnet_id,\n    }])\ntest = opentelekomcloud.CesResourceGroupV2(\"test\",\n    name=\"test\",\n    resources=[\n        {\n            \"namespace\": \"SYS.ECS\",\n            \"dimensions\": [{\n                \"name\": \"instance_id\",\n                \"value\": vm1.compute_instance_v2_id,\n            }],\n        },\n        {\n            \"namespace\": \"SYS.EVS\",\n            \"dimensions\": [{\n                \"name\": \"disk_name\",\n                \"value\": vm1.compute_instance_v2_id.apply(lambda compute_instance_v2_id: f\"{compute_instance_v2_id}-sda\"),\n            }],\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var subnetId = config.RequireObject<dynamic>(\"subnetId\");\n    var vm1 = new Opentelekomcloud.ComputeInstanceV2(\"vm_1\", new()\n    {\n        Name = \"ecs-test\",\n        ImageName = \"Standard_Debian_11_latest\",\n        FlavorName = \"s3.large.2\",\n        Networks = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Uuid = subnetId,\n            },\n        },\n    });\n\n    var test = new Opentelekomcloud.CesResourceGroupV2(\"test\", new()\n    {\n        Name = \"test\",\n        Resources = new[]\n        {\n            new Opentelekomcloud.Inputs.CesResourceGroupV2ResourceArgs\n            {\n                Namespace = \"SYS.ECS\",\n                Dimensions = new[]\n                {\n                    new Opentelekomcloud.Inputs.CesResourceGroupV2ResourceDimensionArgs\n                    {\n                        Name = \"instance_id\",\n                        Value = vm1.ComputeInstanceV2Id,\n                    },\n                },\n            },\n            new Opentelekomcloud.Inputs.CesResourceGroupV2ResourceArgs\n            {\n                Namespace = \"SYS.EVS\",\n                Dimensions = new[]\n                {\n                    new Opentelekomcloud.Inputs.CesResourceGroupV2ResourceDimensionArgs\n                    {\n                        Name = \"disk_name\",\n                        Value = vm1.ComputeInstanceV2Id.Apply(computeInstanceV2Id => $\"{computeInstanceV2Id}-sda\"),\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\tvm1, err := opentelekomcloud.NewComputeInstanceV2(ctx, \"vm_1\", &opentelekomcloud.ComputeInstanceV2Args{\n\t\t\tName:       pulumi.String(\"ecs-test\"),\n\t\t\tImageName:  pulumi.String(\"Standard_Debian_11_latest\"),\n\t\t\tFlavorName: pulumi.String(\"s3.large.2\"),\n\t\t\tNetworks: opentelekomcloud.ComputeInstanceV2NetworkArray{\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tUuid: pulumi.Any(subnetId),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewCesResourceGroupV2(ctx, \"test\", &opentelekomcloud.CesResourceGroupV2Args{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t\tResources: opentelekomcloud.CesResourceGroupV2ResourceArray{\n\t\t\t\t&opentelekomcloud.CesResourceGroupV2ResourceArgs{\n\t\t\t\t\tNamespace: pulumi.String(\"SYS.ECS\"),\n\t\t\t\t\tDimensions: opentelekomcloud.CesResourceGroupV2ResourceDimensionArray{\n\t\t\t\t\t\t&opentelekomcloud.CesResourceGroupV2ResourceDimensionArgs{\n\t\t\t\t\t\t\tName:  pulumi.String(\"instance_id\"),\n\t\t\t\t\t\t\tValue: vm1.ComputeInstanceV2Id,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.CesResourceGroupV2ResourceArgs{\n\t\t\t\t\tNamespace: pulumi.String(\"SYS.EVS\"),\n\t\t\t\t\tDimensions: opentelekomcloud.CesResourceGroupV2ResourceDimensionArray{\n\t\t\t\t\t\t&opentelekomcloud.CesResourceGroupV2ResourceDimensionArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"disk_name\"),\n\t\t\t\t\t\t\tValue: vm1.ComputeInstanceV2Id.ApplyT(func(computeInstanceV2Id string) (string, error) {\n\t\t\t\t\t\t\t\treturn fmt.Sprintf(\"%v-sda\", computeInstanceV2Id), nil\n\t\t\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2Args;\nimport com.pulumi.opentelekomcloud.inputs.ComputeInstanceV2NetworkArgs;\nimport com.pulumi.opentelekomcloud.CesResourceGroupV2;\nimport com.pulumi.opentelekomcloud.CesResourceGroupV2Args;\nimport com.pulumi.opentelekomcloud.inputs.CesResourceGroupV2ResourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var subnetId = config.get(\"subnetId\");\n        var vm1 = new ComputeInstanceV2(\"vm1\", ComputeInstanceV2Args.builder()\n            .name(\"ecs-test\")\n            .imageName(\"Standard_Debian_11_latest\")\n            .flavorName(\"s3.large.2\")\n            .networks(ComputeInstanceV2NetworkArgs.builder()\n                .uuid(subnetId)\n                .build())\n            .build());\n\n        var test = new CesResourceGroupV2(\"test\", CesResourceGroupV2Args.builder()\n            .name(\"test\")\n            .resources(            \n                CesResourceGroupV2ResourceArgs.builder()\n                    .namespace(\"SYS.ECS\")\n                    .dimensions(CesResourceGroupV2ResourceDimensionArgs.builder()\n                        .name(\"instance_id\")\n                        .value(vm1.computeInstanceV2Id())\n                        .build())\n                    .build(),\n                CesResourceGroupV2ResourceArgs.builder()\n                    .namespace(\"SYS.EVS\")\n                    .dimensions(CesResourceGroupV2ResourceDimensionArgs.builder()\n                        .name(\"disk_name\")\n                        .value(vm1.computeInstanceV2Id().applyValue(_computeInstanceV2Id -> String.format(\"%s-sda\", _computeInstanceV2Id)))\n                        .build())\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  subnetId:\n    type: dynamic\nresources:\n  vm1:\n    type: opentelekomcloud:ComputeInstanceV2\n    name: vm_1\n    properties:\n      name: ecs-test\n      imageName: Standard_Debian_11_latest\n      flavorName: s3.large.2\n      networks:\n        - uuid: ${subnetId}\n  test:\n    type: opentelekomcloud:CesResourceGroupV2\n    properties:\n      name: test\n      resources:\n        - namespace: SYS.ECS\n          dimensions:\n            - name: instance_id\n              value: ${vm1.computeInstanceV2Id}\n        - namespace: SYS.EVS\n          dimensions:\n            - name: disk_name\n              value: ${vm1.computeInstanceV2Id}-sda\n```\n<!--End PulumiCodeChooser -->\n\n### Add resources from enterprise projects\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst epsId = config.requireObject<any>(\"epsId\");\nconst test = new opentelekomcloud.CesResourceGroupV2(\"test\", {\n    name: \"test\",\n    type: \"EPS\",\n    associatedEpsIds: [epsId],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\neps_id = config.require_object(\"epsId\")\ntest = opentelekomcloud.CesResourceGroupV2(\"test\",\n    name=\"test\",\n    type=\"EPS\",\n    associated_eps_ids=[eps_id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var epsId = config.RequireObject<dynamic>(\"epsId\");\n    var test = new Opentelekomcloud.CesResourceGroupV2(\"test\", new()\n    {\n        Name = \"test\",\n        Type = \"EPS\",\n        AssociatedEpsIds = new[]\n        {\n            epsId,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tepsId := cfg.RequireObject(\"epsId\")\n\t\t_, err := opentelekomcloud.NewCesResourceGroupV2(ctx, \"test\", &opentelekomcloud.CesResourceGroupV2Args{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t\tType: pulumi.String(\"EPS\"),\n\t\t\tAssociatedEpsIds: pulumi.StringArray{\n\t\t\t\tepsId,\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.opentelekomcloud.CesResourceGroupV2;\nimport com.pulumi.opentelekomcloud.CesResourceGroupV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var epsId = config.get(\"epsId\");\n        var test = new CesResourceGroupV2(\"test\", CesResourceGroupV2Args.builder()\n            .name(\"test\")\n            .type(\"EPS\")\n            .associatedEpsIds(epsId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  epsId:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:CesResourceGroupV2\n    properties:\n      name: test\n      type: EPS\n      associatedEpsIds:\n        - ${epsId}\n```\n<!--End PulumiCodeChooser -->\n\n### Add resources by tags\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = new opentelekomcloud.CesResourceGroupV2(\"test\", {\n    name: \"test\",\n    type: \"TAG\",\n    tags: {\n        key: \"value\",\n        foo: \"bar\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.CesResourceGroupV2(\"test\",\n    name=\"test\",\n    type=\"TAG\",\n    tags={\n        \"key\": \"value\",\n        \"foo\": \"bar\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = new Opentelekomcloud.CesResourceGroupV2(\"test\", new()\n    {\n        Name = \"test\",\n        Type = \"TAG\",\n        Tags = \n        {\n            { \"key\", \"value\" },\n            { \"foo\", \"bar\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewCesResourceGroupV2(ctx, \"test\", &opentelekomcloud.CesResourceGroupV2Args{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t\tType: pulumi.String(\"TAG\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\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.opentelekomcloud.CesResourceGroupV2;\nimport com.pulumi.opentelekomcloud.CesResourceGroupV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new CesResourceGroupV2(\"test\", CesResourceGroupV2Args.builder()\n            .name(\"test\")\n            .type(\"TAG\")\n            .tags(Map.ofEntries(\n                Map.entry(\"key\", \"value\"),\n                Map.entry(\"foo\", \"bar\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: opentelekomcloud:CesResourceGroupV2\n    properties:\n      name: test\n      type: TAG\n      tags:\n        key: value\n        foo: bar\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe resource group can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/cesResourceGroupV2:CesResourceGroupV2 test 0ce123456a00f2591fabc00385ff1234\n```\n\nNote that the imported state may not be identical to your resource definition, due to some attributes missing from the\n\nAPI response, security or some other reason. The missing attributes include: `resources`.\n\nIt is generally recommended running `pulumi preview` after importing a resource group.\n\nYou can then decide if changes should be applied to the resource group, or the resource definition should be updated to\n\nalign with the resource group. Also you can ignore changes as below.\n\nhcl\n\nresource \"opentelekomcloud_ces_resource_group_v2\" \"test\" {\n\n  lifecycle {\n\n    ignore_changes = [\n\n      resources,\n\n    ]\n\n  }\n\n}\n\n","inputProperties":{"associatedEpsIds":{"description":"Specifies the enterprise project IDs where the resources from.\nIt's required if the value of type is **EPS**.\nChanging this parameter will create a new resource.\n","items":{"type":"string"},"type":"array"},"cesResourceGroupV2Id":{"description":"The resource ID.\n","type":"string"},"enterpriseProjectId":{"description":"Specifies the enterprise project ID of the resource group.\nChanging this parameter will create a new resource.\n","type":"string"},"name":{"description":"Specifies the dimension name.\nThe value can be a string of 1 to 32 characters that must start with a letter\nand contain only letters, digits, and underscores (_).\n","type":"string"},"resources":{"description":"Specifies the list of resources to add into the group.\nThe resources structure is documented below.\n\n<a name=\"ResourceGroup_resources\"></a>\nThe <span pulumi-lang-nodejs=\"`resources`\" pulumi-lang-dotnet=\"`Resources`\" pulumi-lang-go=\"`resources`\" pulumi-lang-python=\"`resources`\" pulumi-lang-yaml=\"`resources`\" pulumi-lang-java=\"`resources`\">`resources`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesResourceGroupV2Resource:CesResourceGroupV2Resource"},"type":"array"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value to match resources.\nIt's required if the value of type is **TAG**.\n","type":"object"},"type":{"description":"Specifies the resource group type.\nThe value can be **EPS**, **TAG**, and **Manual**. If not specified, that means add resources manually.\nChanging this parameter will create a new resource.\n","type":"string"}},"properties":{"associatedEpsIds":{"description":"Specifies the enterprise project IDs where the resources from.\nIt's required if the value of type is **EPS**.\nChanging this parameter will create a new resource.\n","items":{"type":"string"},"type":"array"},"cesResourceGroupV2Id":{"description":"The resource ID.\n","type":"string"},"createdAt":{"description":"The creation time.\n","type":"string"},"enterpriseProjectId":{"description":"Specifies the enterprise project ID of the resource group.\nChanging this parameter will create a new resource.\n","type":"string"},"name":{"description":"Specifies the dimension name.\nThe value can be a string of 1 to 32 characters that must start with a letter\nand contain only letters, digits, and underscores (_).\n","type":"string"},"region":{"description":"The region in which the resource group is created.\n","type":"string"},"resources":{"description":"Specifies the list of resources to add into the group.\nThe resources structure is documented below.\n\n<a name=\"ResourceGroup_resources\"></a>\nThe <span pulumi-lang-nodejs=\"`resources`\" pulumi-lang-dotnet=\"`Resources`\" pulumi-lang-go=\"`resources`\" pulumi-lang-python=\"`resources`\" pulumi-lang-yaml=\"`resources`\" pulumi-lang-java=\"`resources`\">`resources`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesResourceGroupV2Resource:CesResourceGroupV2Resource"},"type":"array"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value to match resources.\nIt's required if the value of type is **TAG**.\n","type":"object"},"type":{"description":"Specifies the resource group type.\nThe value can be **EPS**, **TAG**, and **Manual**. If not specified, that means add resources manually.\nChanging this parameter will create a new resource.\n","type":"string"}},"required":["associatedEpsIds","cesResourceGroupV2Id","createdAt","enterpriseProjectId","name","region","type"],"stateInputs":{"description":"Input properties used for looking up and filtering CesResourceGroupV2 resources.\n","properties":{"associatedEpsIds":{"description":"Specifies the enterprise project IDs where the resources from.\nIt's required if the value of type is **EPS**.\nChanging this parameter will create a new resource.\n","items":{"type":"string"},"type":"array"},"cesResourceGroupV2Id":{"description":"The resource ID.\n","type":"string"},"createdAt":{"description":"The creation time.\n","type":"string"},"enterpriseProjectId":{"description":"Specifies the enterprise project ID of the resource group.\nChanging this parameter will create a new resource.\n","type":"string"},"name":{"description":"Specifies the dimension name.\nThe value can be a string of 1 to 32 characters that must start with a letter\nand contain only letters, digits, and underscores (_).\n","type":"string"},"region":{"description":"The region in which the resource group is created.\n","type":"string"},"resources":{"description":"Specifies the list of resources to add into the group.\nThe resources structure is documented below.\n\n<a name=\"ResourceGroup_resources\"></a>\nThe <span pulumi-lang-nodejs=\"`resources`\" pulumi-lang-dotnet=\"`Resources`\" pulumi-lang-go=\"`resources`\" pulumi-lang-python=\"`resources`\" pulumi-lang-yaml=\"`resources`\" pulumi-lang-java=\"`resources`\">`resources`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCesResourceGroupV2Resource:CesResourceGroupV2Resource"},"type":"array"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value to match resources.\nIt's required if the value of type is **TAG**.\n","type":"object"},"type":{"description":"Specifies the resource group type.\nThe value can be **EPS**, **TAG**, and **Manual**. If not specified, that means add resources manually.\nChanging this parameter will create a new resource.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cfwAclRuleV1:CfwAclRuleV1":{"description":"Up-to-date reference of API arguments for CFW ACL rule you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-firewall/api-ref/api/acl_rule_management/index.html)\n\nManages a CFW ACL rule resource within OpenTelekomCloud.\n\n## Example Usage\n\n### \n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst objectId = config.requireObject<any>(\"objectId\");\nconst rule1 = new opentelekomcloud.CfwAclRuleV1(\"rule_1\", {\n    objectId: objectId,\n    type: 0,\n    name: \"test-acc-tf-acl-rule\",\n    sequence: {\n        top: 1,\n    },\n    addressType: 0,\n    actionType: 0,\n    status: 1,\n    longConnectEnable: 0,\n    direction: 0,\n    source: {\n        type: 0,\n        address: \"1.1.1.1\",\n    },\n    destination: {\n        type: 0,\n        address: \"2.2.2.2\",\n    },\n    service: {\n        type: 0,\n        protocol: -1,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nobject_id = config.require_object(\"objectId\")\nrule1 = opentelekomcloud.CfwAclRuleV1(\"rule_1\",\n    object_id=object_id,\n    type=0,\n    name=\"test-acc-tf-acl-rule\",\n    sequence={\n        \"top\": 1,\n    },\n    address_type=0,\n    action_type=0,\n    status=1,\n    long_connect_enable=0,\n    direction=0,\n    source={\n        \"type\": 0,\n        \"address\": \"1.1.1.1\",\n    },\n    destination={\n        \"type\": 0,\n        \"address\": \"2.2.2.2\",\n    },\n    service={\n        \"type\": 0,\n        \"protocol\": -1,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var objectId = config.RequireObject<dynamic>(\"objectId\");\n    var rule1 = new Opentelekomcloud.CfwAclRuleV1(\"rule_1\", new()\n    {\n        ObjectId = objectId,\n        Type = 0,\n        Name = \"test-acc-tf-acl-rule\",\n        Sequence = new Opentelekomcloud.Inputs.CfwAclRuleV1SequenceArgs\n        {\n            Top = 1,\n        },\n        AddressType = 0,\n        ActionType = 0,\n        Status = 1,\n        LongConnectEnable = 0,\n        Direction = 0,\n        Source = new Opentelekomcloud.Inputs.CfwAclRuleV1SourceArgs\n        {\n            Type = 0,\n            Address = \"1.1.1.1\",\n        },\n        Destination = new Opentelekomcloud.Inputs.CfwAclRuleV1DestinationArgs\n        {\n            Type = 0,\n            Address = \"2.2.2.2\",\n        },\n        Service = new Opentelekomcloud.Inputs.CfwAclRuleV1ServiceArgs\n        {\n            Type = 0,\n            Protocol = -1,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tobjectId := cfg.RequireObject(\"objectId\")\n\t\t_, err := opentelekomcloud.NewCfwAclRuleV1(ctx, \"rule_1\", &opentelekomcloud.CfwAclRuleV1Args{\n\t\t\tObjectId: pulumi.Any(objectId),\n\t\t\tType:     pulumi.Float64(0),\n\t\t\tName:     pulumi.String(\"test-acc-tf-acl-rule\"),\n\t\t\tSequence: &opentelekomcloud.CfwAclRuleV1SequenceArgs{\n\t\t\t\tTop: pulumi.Float64(1),\n\t\t\t},\n\t\t\tAddressType:       pulumi.Float64(0),\n\t\t\tActionType:        pulumi.Float64(0),\n\t\t\tStatus:            pulumi.Float64(1),\n\t\t\tLongConnectEnable: pulumi.Float64(0),\n\t\t\tDirection:         pulumi.Float64(0),\n\t\t\tSource: &opentelekomcloud.CfwAclRuleV1SourceArgs{\n\t\t\t\tType:    pulumi.Float64(0),\n\t\t\t\tAddress: pulumi.String(\"1.1.1.1\"),\n\t\t\t},\n\t\t\tDestination: &opentelekomcloud.CfwAclRuleV1DestinationArgs{\n\t\t\t\tType:    pulumi.Float64(0),\n\t\t\t\tAddress: pulumi.String(\"2.2.2.2\"),\n\t\t\t},\n\t\t\tService: &opentelekomcloud.CfwAclRuleV1ServiceArgs{\n\t\t\t\tType:     pulumi.Float64(0),\n\t\t\t\tProtocol: pulumi.Float64(-1),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CfwAclRuleV1;\nimport com.pulumi.opentelekomcloud.CfwAclRuleV1Args;\nimport com.pulumi.opentelekomcloud.inputs.CfwAclRuleV1SequenceArgs;\nimport com.pulumi.opentelekomcloud.inputs.CfwAclRuleV1SourceArgs;\nimport com.pulumi.opentelekomcloud.inputs.CfwAclRuleV1DestinationArgs;\nimport com.pulumi.opentelekomcloud.inputs.CfwAclRuleV1ServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var objectId = config.get(\"objectId\");\n        var rule1 = new CfwAclRuleV1(\"rule1\", CfwAclRuleV1Args.builder()\n            .objectId(objectId)\n            .type(0.0)\n            .name(\"test-acc-tf-acl-rule\")\n            .sequence(CfwAclRuleV1SequenceArgs.builder()\n                .top(1.0)\n                .build())\n            .addressType(0.0)\n            .actionType(0.0)\n            .status(1.0)\n            .longConnectEnable(0.0)\n            .direction(0.0)\n            .source(CfwAclRuleV1SourceArgs.builder()\n                .type(0.0)\n                .address(\"1.1.1.1\")\n                .build())\n            .destination(CfwAclRuleV1DestinationArgs.builder()\n                .type(0.0)\n                .address(\"2.2.2.2\")\n                .build())\n            .service(CfwAclRuleV1ServiceArgs.builder()\n                .type(0.0)\n                .protocol(-1.0)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  objectId:\n    type: dynamic\nresources:\n  rule1:\n    type: opentelekomcloud:CfwAclRuleV1\n    name: rule_1\n    properties:\n      objectId: ${objectId}\n      type: 0\n      name: test-acc-tf-acl-rule\n      sequence:\n        top: 1\n      addressType: 0\n      actionType: 0\n      status: 1\n      longConnectEnable: 0\n      direction: 0\n      source:\n        type: 0\n        address: 1.1.1.1\n      destination:\n        type: 0\n        address: 2.2.2.2\n      service:\n        type: 0\n        protocol: -1\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCFW ACL V1 Rule can be imported using the CFW Firewall protection object ID, `object_id` and rule name `name`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/cfwAclRuleV1:CfwAclRuleV1 rule_1 b4cd6aeb0b7445d3bf271457c6941544in09/name\n```\n\n","inputProperties":{"actionType":{"description":"Specifies the rule action: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (permit), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (deny).\n","type":"number"},"addressType":{"description":"Specifies theInternet protocol type of an address: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (IPv4), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (IPv6). If type is 0, this parameter cannot be left blank.\n","type":"number"},"applications":{"description":"Specifies the rule application list . Allowed list values: `HTTP`, `HTTPS`, `TLS1`, `DNS`, `SSH`, `MYSQL`, `SMTP`, `RDP`, `RDPS`, `VNC`, `POP3`, `IMAP4`, `SMTPS`, `POP3S`, `FTPS`, `ANY`, or `BGP`.\n","items":{"type":"string"},"type":"array"},"applicationsJsonString":{"description":"Specifies the JSON string converted from the <span pulumi-lang-nodejs=\"`applications`\" pulumi-lang-dotnet=\"`Applications`\" pulumi-lang-go=\"`applications`\" pulumi-lang-python=\"`applications`\" pulumi-lang-yaml=\"`applications`\" pulumi-lang-java=\"`applications`\">`applications`</span> field in the application list.\n","type":"string"},"description":{"description":"Specifies the description of the rule.\n","type":"string"},"destination":{"$ref":"#/types/opentelekomcloud:index%2FCfwAclRuleV1Destination:CfwAclRuleV1Destination","description":"Specifies the destination address Data Transport Object.\nThe destination structure is documented below.\n"},"direction":{"description":"Specifies the Direction: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (inbound) or <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (outbound). This parameter is **mandatory** **when** <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is set to <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (Internet rule) or <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span> (NAT rule).\n","type":"number"},"longConnectEnable":{"description":"Specifies whether to support persistent connections: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (no), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (yes).\n","type":"number"},"longConnectTime":{"description":"Specifies the persistent connection duration.\n","type":"number"},"longConnectTimeHour":{"description":"Specifies the persistent connection duration (hour).\n","type":"number"},"longConnectTimeMinute":{"description":"Specifies the persistent connection duration (minute).\n","type":"number"},"longConnectTimeSecond":{"description":"Specifies the persistent connection duration (second).\n","type":"number"},"name":{"description":"Specifies the CFW ACL rule name. The CFW ACL rule name of the same type is unique in the same firewall instance.\n","type":"string"},"objectId":{"description":"Protected object ID, which is used to distinguish between Internet border protection and VPC border protection after a cloud firewall is created. If the value of type is 0, the protected object ID belongs to the Internet border. If the value of type is 1, the protected object ID belongs to the VPC border.\n","type":"string"},"sequence":{"$ref":"#/types/opentelekomcloud:index%2FCfwAclRuleV1Sequence:CfwAclRuleV1Sequence","description":"Specifies the request body for changing the rule sequence. The sequence structure is documented below.\n"},"service":{"$ref":"#/types/opentelekomcloud:index%2FCfwAclRuleV1Service:CfwAclRuleV1Service","description":"Specifies the service object.\nThe service structure is documented below.\n\n<a name=\"sequence\"></a>\nThe <span pulumi-lang-nodejs=\"`sequence`\" pulumi-lang-dotnet=\"`Sequence`\" pulumi-lang-go=\"`sequence`\" pulumi-lang-python=\"`sequence`\" pulumi-lang-yaml=\"`sequence`\" pulumi-lang-java=\"`sequence`\">`sequence`</span> block supports:\n"},"source":{"$ref":"#/types/opentelekomcloud:index%2FCfwAclRuleV1Source:CfwAclRuleV1Source","description":"Specifies the source address Data Transport Object.\nThe source structure is documented below.\n"},"status":{"description":"Specifies the rule status: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (disabled), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (enabled).\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwAclRuleV1Timeouts:CfwAclRuleV1Timeouts"},"type":{"description":"Specifies the service input type: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (manual), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (automatic).\n","type":"number"}},"properties":{"actionType":{"description":"Specifies the rule action: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (permit), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (deny).\n","type":"number"},"addressType":{"description":"Specifies theInternet protocol type of an address: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (IPv4), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (IPv6). If type is 0, this parameter cannot be left blank.\n","type":"number"},"applications":{"description":"Specifies the rule application list . Allowed list values: `HTTP`, `HTTPS`, `TLS1`, `DNS`, `SSH`, `MYSQL`, `SMTP`, `RDP`, `RDPS`, `VNC`, `POP3`, `IMAP4`, `SMTPS`, `POP3S`, `FTPS`, `ANY`, or `BGP`.\n","items":{"type":"string"},"type":"array"},"applicationsJsonString":{"description":"Specifies the JSON string converted from the <span pulumi-lang-nodejs=\"`applications`\" pulumi-lang-dotnet=\"`Applications`\" pulumi-lang-go=\"`applications`\" pulumi-lang-python=\"`applications`\" pulumi-lang-yaml=\"`applications`\" pulumi-lang-java=\"`applications`\">`applications`</span> field in the application list.\n","type":"string"},"createdDate":{"description":"Indicates the Rule creation time in YYYY-MM-DD hh:mm:ss format.\n","type":"string"},"description":{"description":"Specifies the description of the rule.\n","type":"string"},"destination":{"$ref":"#/types/opentelekomcloud:index%2FCfwAclRuleV1Destination:CfwAclRuleV1Destination","description":"Specifies the destination address Data Transport Object.\nThe destination structure is documented below.\n"},"direction":{"description":"Specifies the Direction: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (inbound) or <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (outbound). This parameter is **mandatory** **when** <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is set to <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (Internet rule) or <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span> (NAT rule).\n","type":"number"},"lastOpenTime":{"description":"Indicates the Last time when the rule was enabled in  YYYY-MM-DD hh:mm:ss format.\n","type":"string"},"longConnectEnable":{"description":"Specifies whether to support persistent connections: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (no), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (yes).\n","type":"number"},"longConnectTime":{"description":"Specifies the persistent connection duration.\n","type":"number"},"longConnectTimeHour":{"description":"Specifies the persistent connection duration (hour).\n","type":"number"},"longConnectTimeMinute":{"description":"Specifies the persistent connection duration (minute).\n","type":"number"},"longConnectTimeSecond":{"description":"Specifies the persistent connection duration (second).\n","type":"number"},"name":{"description":"Specifies the CFW ACL rule name. The CFW ACL rule name of the same type is unique in the same firewall instance.\n","type":"string"},"objectId":{"description":"Protected object ID, which is used to distinguish between Internet border protection and VPC border protection after a cloud firewall is created. If the value of type is 0, the protected object ID belongs to the Internet border. If the value of type is 1, the protected object ID belongs to the VPC border.\n","type":"string"},"sequence":{"$ref":"#/types/opentelekomcloud:index%2FCfwAclRuleV1Sequence:CfwAclRuleV1Sequence","description":"Specifies the request body for changing the rule sequence. The sequence structure is documented below.\n"},"service":{"$ref":"#/types/opentelekomcloud:index%2FCfwAclRuleV1Service:CfwAclRuleV1Service","description":"Specifies the service object.\nThe service structure is documented below.\n\n<a name=\"sequence\"></a>\nThe <span pulumi-lang-nodejs=\"`sequence`\" pulumi-lang-dotnet=\"`Sequence`\" pulumi-lang-go=\"`sequence`\" pulumi-lang-python=\"`sequence`\" pulumi-lang-yaml=\"`sequence`\" pulumi-lang-java=\"`sequence`\">`sequence`</span> block supports:\n"},"source":{"$ref":"#/types/opentelekomcloud:index%2FCfwAclRuleV1Source:CfwAclRuleV1Source","description":"Specifies the source address Data Transport Object.\nThe source structure is documented below.\n"},"status":{"description":"Specifies the rule status: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (disabled), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (enabled).\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwAclRuleV1Timeouts:CfwAclRuleV1Timeouts"},"type":{"description":"Specifies the service input type: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (manual), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (automatic).\n","type":"number"}},"required":["actionType","addressType","createdDate","destination","lastOpenTime","longConnectEnable","name","objectId","sequence","service","source","status","type"],"requiredInputs":["actionType","addressType","destination","longConnectEnable","objectId","sequence","service","source","status","type"],"stateInputs":{"description":"Input properties used for looking up and filtering CfwAclRuleV1 resources.\n","properties":{"actionType":{"description":"Specifies the rule action: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (permit), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (deny).\n","type":"number"},"addressType":{"description":"Specifies theInternet protocol type of an address: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (IPv4), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (IPv6). If type is 0, this parameter cannot be left blank.\n","type":"number"},"applications":{"description":"Specifies the rule application list . Allowed list values: `HTTP`, `HTTPS`, `TLS1`, `DNS`, `SSH`, `MYSQL`, `SMTP`, `RDP`, `RDPS`, `VNC`, `POP3`, `IMAP4`, `SMTPS`, `POP3S`, `FTPS`, `ANY`, or `BGP`.\n","items":{"type":"string"},"type":"array"},"applicationsJsonString":{"description":"Specifies the JSON string converted from the <span pulumi-lang-nodejs=\"`applications`\" pulumi-lang-dotnet=\"`Applications`\" pulumi-lang-go=\"`applications`\" pulumi-lang-python=\"`applications`\" pulumi-lang-yaml=\"`applications`\" pulumi-lang-java=\"`applications`\">`applications`</span> field in the application list.\n","type":"string"},"createdDate":{"description":"Indicates the Rule creation time in YYYY-MM-DD hh:mm:ss format.\n","type":"string"},"description":{"description":"Specifies the description of the rule.\n","type":"string"},"destination":{"$ref":"#/types/opentelekomcloud:index%2FCfwAclRuleV1Destination:CfwAclRuleV1Destination","description":"Specifies the destination address Data Transport Object.\nThe destination structure is documented below.\n"},"direction":{"description":"Specifies the Direction: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (inbound) or <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (outbound). This parameter is **mandatory** **when** <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is set to <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (Internet rule) or <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span> (NAT rule).\n","type":"number"},"lastOpenTime":{"description":"Indicates the Last time when the rule was enabled in  YYYY-MM-DD hh:mm:ss format.\n","type":"string"},"longConnectEnable":{"description":"Specifies whether to support persistent connections: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (no), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (yes).\n","type":"number"},"longConnectTime":{"description":"Specifies the persistent connection duration.\n","type":"number"},"longConnectTimeHour":{"description":"Specifies the persistent connection duration (hour).\n","type":"number"},"longConnectTimeMinute":{"description":"Specifies the persistent connection duration (minute).\n","type":"number"},"longConnectTimeSecond":{"description":"Specifies the persistent connection duration (second).\n","type":"number"},"name":{"description":"Specifies the CFW ACL rule name. The CFW ACL rule name of the same type is unique in the same firewall instance.\n","type":"string"},"objectId":{"description":"Protected object ID, which is used to distinguish between Internet border protection and VPC border protection after a cloud firewall is created. If the value of type is 0, the protected object ID belongs to the Internet border. If the value of type is 1, the protected object ID belongs to the VPC border.\n","type":"string"},"sequence":{"$ref":"#/types/opentelekomcloud:index%2FCfwAclRuleV1Sequence:CfwAclRuleV1Sequence","description":"Specifies the request body for changing the rule sequence. The sequence structure is documented below.\n"},"service":{"$ref":"#/types/opentelekomcloud:index%2FCfwAclRuleV1Service:CfwAclRuleV1Service","description":"Specifies the service object.\nThe service structure is documented below.\n\n<a name=\"sequence\"></a>\nThe <span pulumi-lang-nodejs=\"`sequence`\" pulumi-lang-dotnet=\"`Sequence`\" pulumi-lang-go=\"`sequence`\" pulumi-lang-python=\"`sequence`\" pulumi-lang-yaml=\"`sequence`\" pulumi-lang-java=\"`sequence`\">`sequence`</span> block supports:\n"},"source":{"$ref":"#/types/opentelekomcloud:index%2FCfwAclRuleV1Source:CfwAclRuleV1Source","description":"Specifies the source address Data Transport Object.\nThe source structure is documented below.\n"},"status":{"description":"Specifies the rule status: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (disabled), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (enabled).\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwAclRuleV1Timeouts:CfwAclRuleV1Timeouts"},"type":{"description":"Specifies the service input type: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (manual), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (automatic).\n","type":"number"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cfwAddressGroupMemberV1:CfwAddressGroupMemberV1":{"description":"Up-to-date reference of API arguments for CFW address group member you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-firewall/api-ref/api/address_group_management/index.html)\n\nManages a CFW Address Group Member resource within OpenTelekomCloud.\n\n## Example Usage\n\n### \n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst setId = config.requireObject<any>(\"setId\");\nconst group1 = new opentelekomcloud.CfwAddressGroupMemberV1(\"group_1\", {\n    setId: setId,\n    address: \"1.1.1.1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nset_id = config.require_object(\"setId\")\ngroup1 = opentelekomcloud.CfwAddressGroupMemberV1(\"group_1\",\n    set_id=set_id,\n    address=\"1.1.1.1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var setId = config.RequireObject<dynamic>(\"setId\");\n    var group1 = new Opentelekomcloud.CfwAddressGroupMemberV1(\"group_1\", new()\n    {\n        SetId = setId,\n        Address = \"1.1.1.1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tsetId := cfg.RequireObject(\"setId\")\n\t\t_, err := opentelekomcloud.NewCfwAddressGroupMemberV1(ctx, \"group_1\", &opentelekomcloud.CfwAddressGroupMemberV1Args{\n\t\t\tSetId:   pulumi.Any(setId),\n\t\t\tAddress: pulumi.String(\"1.1.1.1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CfwAddressGroupMemberV1;\nimport com.pulumi.opentelekomcloud.CfwAddressGroupMemberV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var setId = config.get(\"setId\");\n        var group1 = new CfwAddressGroupMemberV1(\"group1\", CfwAddressGroupMemberV1Args.builder()\n            .setId(setId)\n            .address(\"1.1.1.1\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  setId:\n    type: dynamic\nresources:\n  group1:\n    type: opentelekomcloud:CfwAddressGroupMemberV1\n    name: group_1\n    properties:\n      setId: ${setId}\n      address: 1.1.1.1\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCFW Address Group Member V1 resource can be imported using the address group ID, `set_id` and IP address, `address`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/cfwAddressGroupMemberV1:CfwAddressGroupMemberV1 member_1 b4cd6aeb0b7445d3bf271457c6941544in09/address\n```\n\n","inputProperties":{"address":{"description":"Specifies the IP Address.\n","type":"string"},"addressType":{"description":"Specifies the Internet protocol type of an address: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (IPv4), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (IPv6).\n","type":"number"},"description":{"description":"Specifies the description of the address group member.\n","type":"string"},"setId":{"description":"Specifies the address group ID.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwAddressGroupMemberV1Timeouts:CfwAddressGroupMemberV1Timeouts"}},"properties":{"address":{"description":"Specifies the IP Address.\n","type":"string"},"addressType":{"description":"Specifies the Internet protocol type of an address: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (IPv4), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (IPv6).\n","type":"number"},"description":{"description":"Specifies the description of the address group member.\n","type":"string"},"name":{"description":"Indicates the CFW Address group member name.\n","type":"string"},"setId":{"description":"Specifies the address group ID.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwAddressGroupMemberV1Timeouts:CfwAddressGroupMemberV1Timeouts"}},"required":["address","name","setId"],"requiredInputs":["address","setId"],"stateInputs":{"description":"Input properties used for looking up and filtering CfwAddressGroupMemberV1 resources.\n","properties":{"address":{"description":"Specifies the IP Address.\n","type":"string"},"addressType":{"description":"Specifies the Internet protocol type of an address: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (IPv4), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (IPv6).\n","type":"number"},"description":{"description":"Specifies the description of the address group member.\n","type":"string"},"name":{"description":"Indicates the CFW Address group member name.\n","type":"string"},"setId":{"description":"Specifies the address group ID.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwAddressGroupMemberV1Timeouts:CfwAddressGroupMemberV1Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cfwAddressGroupV1:CfwAddressGroupV1":{"description":"Up-to-date reference of API arguments for CFW address group you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-firewall/api-ref/api/address_group_management/index.html)\n\nManages a CFW Address Group resource within OpenTelekomCloud.\n\n## Example Usage\n\n### \n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst objectId = config.requireObject<any>(\"objectId\");\nconst group1 = new opentelekomcloud.CfwAddressGroupV1(\"group_1\", {\n    objectId: objectId,\n    name: \"test-acc-tf-address-group\",\n    addressType: 0,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nobject_id = config.require_object(\"objectId\")\ngroup1 = opentelekomcloud.CfwAddressGroupV1(\"group_1\",\n    object_id=object_id,\n    name=\"test-acc-tf-address-group\",\n    address_type=0)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var objectId = config.RequireObject<dynamic>(\"objectId\");\n    var group1 = new Opentelekomcloud.CfwAddressGroupV1(\"group_1\", new()\n    {\n        ObjectId = objectId,\n        Name = \"test-acc-tf-address-group\",\n        AddressType = 0,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tobjectId := cfg.RequireObject(\"objectId\")\n\t\t_, err := opentelekomcloud.NewCfwAddressGroupV1(ctx, \"group_1\", &opentelekomcloud.CfwAddressGroupV1Args{\n\t\t\tObjectId:    pulumi.Any(objectId),\n\t\t\tName:        pulumi.String(\"test-acc-tf-address-group\"),\n\t\t\tAddressType: pulumi.Float64(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.opentelekomcloud.CfwAddressGroupV1;\nimport com.pulumi.opentelekomcloud.CfwAddressGroupV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var objectId = config.get(\"objectId\");\n        var group1 = new CfwAddressGroupV1(\"group1\", CfwAddressGroupV1Args.builder()\n            .objectId(objectId)\n            .name(\"test-acc-tf-address-group\")\n            .addressType(0.0)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  objectId:\n    type: dynamic\nresources:\n  group1:\n    type: opentelekomcloud:CfwAddressGroupV1\n    name: group_1\n    properties:\n      objectId: ${objectId}\n      name: test-acc-tf-address-group\n      addressType: 0\n```\n<!--End PulumiCodeChooser -->\n\n## Notes\n\nBut due to some attributes missing from the API response, it's required to ignore changes as below:\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst group1 = new opentelekomcloud.CfwAddressGroupV1(\"group_1\", {});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ngroup1 = opentelekomcloud.CfwAddressGroupV1(\"group_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var group1 = new Opentelekomcloud.CfwAddressGroupV1(\"group_1\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewCfwAddressGroupV1(ctx, \"group_1\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CfwAddressGroupV1;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var group1 = new CfwAddressGroupV1(\"group1\");\n\n    }\n}\n```\n```yaml\nresources:\n  group1:\n    type: opentelekomcloud:CfwAddressGroupV1\n    name: group_1\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCFW Address Group V1 resource can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/cfwAddressGroupV1:CfwAddressGroupV1 group_1 b4cd6aeb0b7445d3bf271457c6941544in09\n```\n\n","inputProperties":{"addressType":{"description":"Specifies the Internet protocol type of an address: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (IPv4), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (IPv6).\n","type":"number"},"description":{"description":"Specifies the description of the address group.\n","type":"string"},"name":{"description":"Specifies the CFW Address group name. The CFW address group name of the same type is unique in the same firewall.\n","type":"string"},"objectId":{"description":"Protected object ID, which is used to distinguish between Internet border protection and VPC border protection after a cloud firewall is created. If the value of type is 0, the protected object ID belongs to the Internet border. If the value of type is 1, the protected object ID belongs to the VPC border.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwAddressGroupV1Timeouts:CfwAddressGroupV1Timeouts"}},"properties":{"addressSetType":{"description":"Indicates the Address group type: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (user-defined address group), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (WAF back-to-source IP address group), <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span> (DDoS back-to-source IP address group), or <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> (NAT64 address group).\n","type":"number"},"addressType":{"description":"Specifies the Internet protocol type of an address: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (IPv4), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (IPv6).\n","type":"number"},"description":{"description":"Specifies the description of the address group.\n","type":"string"},"name":{"description":"Specifies the CFW Address group name. The CFW address group name of the same type is unique in the same firewall.\n","type":"string"},"objectId":{"description":"Protected object ID, which is used to distinguish between Internet border protection and VPC border protection after a cloud firewall is created. If the value of type is 0, the protected object ID belongs to the Internet border. If the value of type is 1, the protected object ID belongs to the VPC border.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwAddressGroupV1Timeouts:CfwAddressGroupV1Timeouts"}},"required":["addressSetType","name","objectId"],"requiredInputs":["objectId"],"stateInputs":{"description":"Input properties used for looking up and filtering CfwAddressGroupV1 resources.\n","properties":{"addressSetType":{"description":"Indicates the Address group type: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (user-defined address group), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (WAF back-to-source IP address group), <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span> (DDoS back-to-source IP address group), or <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> (NAT64 address group).\n","type":"number"},"addressType":{"description":"Specifies the Internet protocol type of an address: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (IPv4), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (IPv6).\n","type":"number"},"description":{"description":"Specifies the description of the address group.\n","type":"string"},"name":{"description":"Specifies the CFW Address group name. The CFW address group name of the same type is unique in the same firewall.\n","type":"string"},"objectId":{"description":"Protected object ID, which is used to distinguish between Internet border protection and VPC border protection after a cloud firewall is created. If the value of type is 0, the protected object ID belongs to the Internet border. If the value of type is 1, the protected object ID belongs to the VPC border.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwAddressGroupV1Timeouts:CfwAddressGroupV1Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cfwBlacklistWhitelistRuleV1:CfwBlacklistWhitelistRuleV1":{"description":"Up-to-date reference of API arguments for CFW blacklist/whitelist rule you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-firewall/api-ref/api/blacklist_whitelist_management/index.html)\n\nManages a CFW blacklist/whitelist rule resource within OpenTelekomCloud.\n\n## Example Usage\n\n### \n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst objectId = config.requireObject<any>(\"objectId\");\nconst rule1 = new opentelekomcloud.CfwBlacklistWhitelistRuleV1(\"rule_1\", {\n    objectId: objectId,\n    listType: 5,\n    direction: 0,\n    addressType: 0,\n    address: \"1.1.1.1\",\n    protocol: 6,\n    port: \"1\",\n    description: \"Test111161\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nobject_id = config.require_object(\"objectId\")\nrule1 = opentelekomcloud.CfwBlacklistWhitelistRuleV1(\"rule_1\",\n    object_id=object_id,\n    list_type=5,\n    direction=0,\n    address_type=0,\n    address=\"1.1.1.1\",\n    protocol=6,\n    port=\"1\",\n    description=\"Test111161\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var objectId = config.RequireObject<dynamic>(\"objectId\");\n    var rule1 = new Opentelekomcloud.CfwBlacklistWhitelistRuleV1(\"rule_1\", new()\n    {\n        ObjectId = objectId,\n        ListType = 5,\n        Direction = 0,\n        AddressType = 0,\n        Address = \"1.1.1.1\",\n        Protocol = 6,\n        Port = \"1\",\n        Description = \"Test111161\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tobjectId := cfg.RequireObject(\"objectId\")\n\t\t_, err := opentelekomcloud.NewCfwBlacklistWhitelistRuleV1(ctx, \"rule_1\", &opentelekomcloud.CfwBlacklistWhitelistRuleV1Args{\n\t\t\tObjectId:    pulumi.Any(objectId),\n\t\t\tListType:    pulumi.Float64(5),\n\t\t\tDirection:   pulumi.Float64(0),\n\t\t\tAddressType: pulumi.Float64(0),\n\t\t\tAddress:     pulumi.String(\"1.1.1.1\"),\n\t\t\tProtocol:    pulumi.Float64(6),\n\t\t\tPort:        pulumi.String(\"1\"),\n\t\t\tDescription: pulumi.String(\"Test111161\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CfwBlacklistWhitelistRuleV1;\nimport com.pulumi.opentelekomcloud.CfwBlacklistWhitelistRuleV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var objectId = config.get(\"objectId\");\n        var rule1 = new CfwBlacklistWhitelistRuleV1(\"rule1\", CfwBlacklistWhitelistRuleV1Args.builder()\n            .objectId(objectId)\n            .listType(5.0)\n            .direction(0.0)\n            .addressType(0.0)\n            .address(\"1.1.1.1\")\n            .protocol(6.0)\n            .port(\"1\")\n            .description(\"Test111161\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  objectId:\n    type: dynamic\nresources:\n  rule1:\n    type: opentelekomcloud:CfwBlacklistWhitelistRuleV1\n    name: rule_1\n    properties:\n      objectId: ${objectId}\n      listType: 5\n      direction: 0\n      addressType: 0\n      address: 1.1.1.1\n      protocol: 6\n      port: '1'\n      description: Test111161\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCFW Blacklist or Whitelist Rule V1 resource can be imported using the object ID, `object_id`, the type of list, `list_type` and IP address, `address`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/cfwBlacklistWhitelistRuleV1:CfwBlacklistWhitelistRuleV1 rule_1 <object_id>/<list_type>/<address>\n```\n\n","inputProperties":{"address":{"description":"Specifies the IP address.\n","type":"string"},"addressType":{"description":"Specifies the Internet protocol type of an address: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (IPv4), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (IPv6).\n","type":"number"},"description":{"description":"Specifies the description of the blacklist or whitelist rule.\n","type":"string"},"direction":{"description":"Specifies the address direction: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (source), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (destination).\n","type":"number"},"listType":{"description":"Specifies the list type. <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span> (blacklist), <span pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\">`5`</span> (whitelist).\n","type":"number"},"objectId":{"description":"Specifies the protected object ID, which is used to distinguish between Internet border protection and VPC border protection after a cloud firewall is created. If the value of type is 0, the protected object ID belongs to the Internet border. If the value of type is 1, the protected object ID belongs to the VPC border.\n","type":"string"},"port":{"description":"Specifies the destination port.\n","type":"string"},"protocol":{"description":"Specifies the Protocol type: <span pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\">`6`</span> (TCP), <span pulumi-lang-nodejs=\"`17`\" pulumi-lang-dotnet=\"`17`\" pulumi-lang-go=\"`17`\" pulumi-lang-python=\"`17`\" pulumi-lang-yaml=\"`17`\" pulumi-lang-java=\"`17`\">`17`</span> (UDP), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (ICMP), <span pulumi-lang-nodejs=\"`58`\" pulumi-lang-dotnet=\"`58`\" pulumi-lang-go=\"`58`\" pulumi-lang-python=\"`58`\" pulumi-lang-yaml=\"`58`\" pulumi-lang-java=\"`58`\">`58`</span> (ICMPv6), or -<span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (any).\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwBlacklistWhitelistRuleV1Timeouts:CfwBlacklistWhitelistRuleV1Timeouts"}},"properties":{"address":{"description":"Specifies the IP address.\n","type":"string"},"addressType":{"description":"Specifies the Internet protocol type of an address: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (IPv4), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (IPv6).\n","type":"number"},"description":{"description":"Specifies the description of the blacklist or whitelist rule.\n","type":"string"},"direction":{"description":"Specifies the address direction: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (source), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (destination).\n","type":"number"},"listType":{"description":"Specifies the list type. <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span> (blacklist), <span pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\">`5`</span> (whitelist).\n","type":"number"},"objectId":{"description":"Specifies the protected object ID, which is used to distinguish between Internet border protection and VPC border protection after a cloud firewall is created. If the value of type is 0, the protected object ID belongs to the Internet border. If the value of type is 1, the protected object ID belongs to the VPC border.\n","type":"string"},"port":{"description":"Specifies the destination port.\n","type":"string"},"protocol":{"description":"Specifies the Protocol type: <span pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\">`6`</span> (TCP), <span pulumi-lang-nodejs=\"`17`\" pulumi-lang-dotnet=\"`17`\" pulumi-lang-go=\"`17`\" pulumi-lang-python=\"`17`\" pulumi-lang-yaml=\"`17`\" pulumi-lang-java=\"`17`\">`17`</span> (UDP), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (ICMP), <span pulumi-lang-nodejs=\"`58`\" pulumi-lang-dotnet=\"`58`\" pulumi-lang-go=\"`58`\" pulumi-lang-python=\"`58`\" pulumi-lang-yaml=\"`58`\" pulumi-lang-java=\"`58`\">`58`</span> (ICMPv6), or -<span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (any).\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwBlacklistWhitelistRuleV1Timeouts:CfwBlacklistWhitelistRuleV1Timeouts"}},"required":["address","addressType","direction","listType","objectId","port","protocol"],"requiredInputs":["address","addressType","direction","listType","objectId","port","protocol"],"stateInputs":{"description":"Input properties used for looking up and filtering CfwBlacklistWhitelistRuleV1 resources.\n","properties":{"address":{"description":"Specifies the IP address.\n","type":"string"},"addressType":{"description":"Specifies the Internet protocol type of an address: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (IPv4), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (IPv6).\n","type":"number"},"description":{"description":"Specifies the description of the blacklist or whitelist rule.\n","type":"string"},"direction":{"description":"Specifies the address direction: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (source), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (destination).\n","type":"number"},"listType":{"description":"Specifies the list type. <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span> (blacklist), <span pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\">`5`</span> (whitelist).\n","type":"number"},"objectId":{"description":"Specifies the protected object ID, which is used to distinguish between Internet border protection and VPC border protection after a cloud firewall is created. If the value of type is 0, the protected object ID belongs to the Internet border. If the value of type is 1, the protected object ID belongs to the VPC border.\n","type":"string"},"port":{"description":"Specifies the destination port.\n","type":"string"},"protocol":{"description":"Specifies the Protocol type: <span pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\">`6`</span> (TCP), <span pulumi-lang-nodejs=\"`17`\" pulumi-lang-dotnet=\"`17`\" pulumi-lang-go=\"`17`\" pulumi-lang-python=\"`17`\" pulumi-lang-yaml=\"`17`\" pulumi-lang-java=\"`17`\">`17`</span> (UDP), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (ICMP), <span pulumi-lang-nodejs=\"`58`\" pulumi-lang-dotnet=\"`58`\" pulumi-lang-go=\"`58`\" pulumi-lang-python=\"`58`\" pulumi-lang-yaml=\"`58`\" pulumi-lang-java=\"`58`\">`58`</span> (ICMPv6), or -<span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (any).\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwBlacklistWhitelistRuleV1Timeouts:CfwBlacklistWhitelistRuleV1Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cfwDomainNameGroupV1:CfwDomainNameGroupV1":{"description":"Up-to-date reference of API arguments for CFW domain name group you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-firewall/api-ref/api/domain_name_resolution_and_domain_name_group_management/index.html)\n\nManages a CFW domain name Group resource within OpenTelekomCloud.\n\n## Example Usage\n\n### \n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst firewallId = config.requireObject<any>(\"firewallId\");\nconst objectId = config.requireObject<any>(\"objectId\");\nconst group1 = new opentelekomcloud.CfwDomainNameGroupV1(\"group_1\", {\n    firewallId: firewallId,\n    objectId: objectId,\n    name: \"test-acc-tf-domain-group\",\n    domainNames: [{\n        domainName: \"www.testacctf.com\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nfirewall_id = config.require_object(\"firewallId\")\nobject_id = config.require_object(\"objectId\")\ngroup1 = opentelekomcloud.CfwDomainNameGroupV1(\"group_1\",\n    firewall_id=firewall_id,\n    object_id=object_id,\n    name=\"test-acc-tf-domain-group\",\n    domain_names=[{\n        \"domain_name\": \"www.testacctf.com\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var firewallId = config.RequireObject<dynamic>(\"firewallId\");\n    var objectId = config.RequireObject<dynamic>(\"objectId\");\n    var group1 = new Opentelekomcloud.CfwDomainNameGroupV1(\"group_1\", new()\n    {\n        FirewallId = firewallId,\n        ObjectId = objectId,\n        Name = \"test-acc-tf-domain-group\",\n        DomainNames = new[]\n        {\n            new Opentelekomcloud.Inputs.CfwDomainNameGroupV1DomainNameArgs\n            {\n                DomainName = \"www.testacctf.com\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tfirewallId := cfg.RequireObject(\"firewallId\")\n\t\tobjectId := cfg.RequireObject(\"objectId\")\n\t\t_, err := opentelekomcloud.NewCfwDomainNameGroupV1(ctx, \"group_1\", &opentelekomcloud.CfwDomainNameGroupV1Args{\n\t\t\tFirewallId: pulumi.Any(firewallId),\n\t\t\tObjectId:   pulumi.Any(objectId),\n\t\t\tName:       pulumi.String(\"test-acc-tf-domain-group\"),\n\t\t\tDomainNames: opentelekomcloud.CfwDomainNameGroupV1DomainNameArray{\n\t\t\t\t&opentelekomcloud.CfwDomainNameGroupV1DomainNameArgs{\n\t\t\t\t\tDomainName: pulumi.String(\"www.testacctf.com\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CfwDomainNameGroupV1;\nimport com.pulumi.opentelekomcloud.CfwDomainNameGroupV1Args;\nimport com.pulumi.opentelekomcloud.inputs.CfwDomainNameGroupV1DomainNameArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var firewallId = config.get(\"firewallId\");\n        final var objectId = config.get(\"objectId\");\n        var group1 = new CfwDomainNameGroupV1(\"group1\", CfwDomainNameGroupV1Args.builder()\n            .firewallId(firewallId)\n            .objectId(objectId)\n            .name(\"test-acc-tf-domain-group\")\n            .domainNames(CfwDomainNameGroupV1DomainNameArgs.builder()\n                .domainName(\"www.testacctf.com\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  firewallId:\n    type: dynamic\n  objectId:\n    type: dynamic\nresources:\n  group1:\n    type: opentelekomcloud:CfwDomainNameGroupV1\n    name: group_1\n    properties:\n      firewallId: ${firewallId}\n      objectId: ${objectId}\n      name: test-acc-tf-domain-group\n      domainNames:\n        - domainName: www.testacctf.com\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCFW Domain name Group V1 resource can be imported using the firewall ID, `firewall_id`, the object ID, `object_id`, and the name of the group, `name`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/cfwDomainNameGroupV1:CfwDomainNameGroupV1 group_1 <firewall_id>/<object_id>/<name>\n```\n\n","inputProperties":{"description":{"description":"Specifies the domain name description.\n","type":"string"},"domainNames":{"description":"Specifies the domain name information list. The<span pulumi-lang-nodejs=\" domainNames \" pulumi-lang-dotnet=\" DomainNames \" pulumi-lang-go=\" domainNames \" pulumi-lang-python=\" domain_names \" pulumi-lang-yaml=\" domainNames \" pulumi-lang-java=\" domainNames \"> domain_names </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCfwDomainNameGroupV1DomainName:CfwDomainNameGroupV1DomainName"},"type":"array"},"domainSetType":{"description":"Specifies the domain name group typ: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (application domain name group), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (network domain name group).\n\n<a name=\"domainnames\"></a>\nThe <span pulumi-lang-nodejs=\"`domainNames`\" pulumi-lang-dotnet=\"`DomainNames`\" pulumi-lang-go=\"`domainNames`\" pulumi-lang-python=\"`domain_names`\" pulumi-lang-yaml=\"`domainNames`\" pulumi-lang-java=\"`domainNames`\">`domain_names`</span> block supports:\n","type":"number"},"firewallId":{"description":"Specifies the Firewall ID.\n","type":"string"},"name":{"description":"Specifies the CFW domain name group name. The CFW domain name group name of the same type is unique in the same firewall.\n","type":"string"},"objectId":{"description":"Specifies the protected object ID, which is used to distinguish between Internet border protection and VPC border protection after a cloud firewall is created. If the value of type is 0, the protected object ID belongs to the Internet border. If the value of type is 1, the protected object ID belongs to the VPC border.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwDomainNameGroupV1Timeouts:CfwDomainNameGroupV1Timeouts"}},"properties":{"configStatus":{"description":"Indicates the configuration status: `-1` (unconfigured), <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (configuration failed), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (configuration succeeded), <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span> (configuring), 3 (normal), or <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span> (abnormal).\n","type":"number"},"description":{"description":"Specifies the domain name description.\n","type":"string"},"domainNames":{"description":"Specifies the domain name information list. The<span pulumi-lang-nodejs=\" domainNames \" pulumi-lang-dotnet=\" DomainNames \" pulumi-lang-go=\" domainNames \" pulumi-lang-python=\" domain_names \" pulumi-lang-yaml=\" domainNames \" pulumi-lang-java=\" domainNames \"> domain_names </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCfwDomainNameGroupV1DomainName:CfwDomainNameGroupV1DomainName"},"type":"array"},"domainSetType":{"description":"Specifies the domain name group typ: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (application domain name group), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (network domain name group).\n\n<a name=\"domainnames\"></a>\nThe <span pulumi-lang-nodejs=\"`domainNames`\" pulumi-lang-dotnet=\"`DomainNames`\" pulumi-lang-go=\"`domainNames`\" pulumi-lang-python=\"`domain_names`\" pulumi-lang-yaml=\"`domainNames`\" pulumi-lang-java=\"`domainNames`\">`domain_names`</span> block supports:\n","type":"number"},"firewallId":{"description":"Specifies the Firewall ID.\n","type":"string"},"name":{"description":"Specifies the CFW domain name group name. The CFW domain name group name of the same type is unique in the same firewall.\n","type":"string"},"objectId":{"description":"Specifies the protected object ID, which is used to distinguish between Internet border protection and VPC border protection after a cloud firewall is created. If the value of type is 0, the protected object ID belongs to the Internet border. If the value of type is 1, the protected object ID belongs to the VPC border.\n","type":"string"},"refCount":{"description":"Indicates the number of times a domain name group is referenced by rules.\n","type":"number"},"rules":{"description":"Indicates the used rule ID list. The <span pulumi-lang-nodejs=\"`rules`\" pulumi-lang-dotnet=\"`Rules`\" pulumi-lang-go=\"`rules`\" pulumi-lang-python=\"`rules`\" pulumi-lang-yaml=\"`rules`\" pulumi-lang-java=\"`rules`\">`rules`</span> structure is as follows:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCfwDomainNameGroupV1Rule:CfwDomainNameGroupV1Rule"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwDomainNameGroupV1Timeouts:CfwDomainNameGroupV1Timeouts"}},"required":["configStatus","domainNames","firewallId","name","objectId","refCount","rules"],"requiredInputs":["domainNames","firewallId","objectId"],"stateInputs":{"description":"Input properties used for looking up and filtering CfwDomainNameGroupV1 resources.\n","properties":{"configStatus":{"description":"Indicates the configuration status: `-1` (unconfigured), <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (configuration failed), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (configuration succeeded), <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span> (configuring), 3 (normal), or <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span> (abnormal).\n","type":"number"},"description":{"description":"Specifies the domain name description.\n","type":"string"},"domainNames":{"description":"Specifies the domain name information list. The<span pulumi-lang-nodejs=\" domainNames \" pulumi-lang-dotnet=\" DomainNames \" pulumi-lang-go=\" domainNames \" pulumi-lang-python=\" domain_names \" pulumi-lang-yaml=\" domainNames \" pulumi-lang-java=\" domainNames \"> domain_names </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCfwDomainNameGroupV1DomainName:CfwDomainNameGroupV1DomainName"},"type":"array"},"domainSetType":{"description":"Specifies the domain name group typ: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (application domain name group), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (network domain name group).\n\n<a name=\"domainnames\"></a>\nThe <span pulumi-lang-nodejs=\"`domainNames`\" pulumi-lang-dotnet=\"`DomainNames`\" pulumi-lang-go=\"`domainNames`\" pulumi-lang-python=\"`domain_names`\" pulumi-lang-yaml=\"`domainNames`\" pulumi-lang-java=\"`domainNames`\">`domain_names`</span> block supports:\n","type":"number"},"firewallId":{"description":"Specifies the Firewall ID.\n","type":"string"},"name":{"description":"Specifies the CFW domain name group name. The CFW domain name group name of the same type is unique in the same firewall.\n","type":"string"},"objectId":{"description":"Specifies the protected object ID, which is used to distinguish between Internet border protection and VPC border protection after a cloud firewall is created. If the value of type is 0, the protected object ID belongs to the Internet border. If the value of type is 1, the protected object ID belongs to the VPC border.\n","type":"string"},"refCount":{"description":"Indicates the number of times a domain name group is referenced by rules.\n","type":"number"},"rules":{"description":"Indicates the used rule ID list. The <span pulumi-lang-nodejs=\"`rules`\" pulumi-lang-dotnet=\"`Rules`\" pulumi-lang-go=\"`rules`\" pulumi-lang-python=\"`rules`\" pulumi-lang-yaml=\"`rules`\" pulumi-lang-java=\"`rules`\">`rules`</span> structure is as follows:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCfwDomainNameGroupV1Rule:CfwDomainNameGroupV1Rule"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwDomainNameGroupV1Timeouts:CfwDomainNameGroupV1Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cfwEipProtectionV1:CfwEipProtectionV1":{"description":"Up-to-date reference of API arguments for CFW EIP protection you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-firewall/api-ref/api/eip_management/index.html)\n\n  Enable or Disable EIP protection using CFW firewall within OpenTelekomCloud.\n\n## Example Usage\n\n### \n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst firewallId = config.requireObject<any>(\"firewallId\");\nconst objectId = config.requireObject<any>(\"objectId\");\nconst eipId = config.requireObject<any>(\"eipId\");\nconst ipAddress = config.requireObject<any>(\"ipAddress\");\nconst protect1 = new opentelekomcloud.CfwEipProtectionV1(\"protect_1\", {\n    firewallId: firewallId,\n    objectId: objectId,\n    status: 0,\n    eipId: eipId,\n    publicIp: ipAddress,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nfirewall_id = config.require_object(\"firewallId\")\nobject_id = config.require_object(\"objectId\")\neip_id = config.require_object(\"eipId\")\nip_address = config.require_object(\"ipAddress\")\nprotect1 = opentelekomcloud.CfwEipProtectionV1(\"protect_1\",\n    firewall_id=firewall_id,\n    object_id=object_id,\n    status=0,\n    eip_id=eip_id,\n    public_ip=ip_address)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var firewallId = config.RequireObject<dynamic>(\"firewallId\");\n    var objectId = config.RequireObject<dynamic>(\"objectId\");\n    var eipId = config.RequireObject<dynamic>(\"eipId\");\n    var ipAddress = config.RequireObject<dynamic>(\"ipAddress\");\n    var protect1 = new Opentelekomcloud.CfwEipProtectionV1(\"protect_1\", new()\n    {\n        FirewallId = firewallId,\n        ObjectId = objectId,\n        Status = 0,\n        EipId = eipId,\n        PublicIp = ipAddress,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tfirewallId := cfg.RequireObject(\"firewallId\")\n\t\tobjectId := cfg.RequireObject(\"objectId\")\n\t\teipId := cfg.RequireObject(\"eipId\")\n\t\tipAddress := cfg.RequireObject(\"ipAddress\")\n\t\t_, err := opentelekomcloud.NewCfwEipProtectionV1(ctx, \"protect_1\", &opentelekomcloud.CfwEipProtectionV1Args{\n\t\t\tFirewallId: pulumi.Any(firewallId),\n\t\t\tObjectId:   pulumi.Any(objectId),\n\t\t\tStatus:     pulumi.Float64(0),\n\t\t\tEipId:      pulumi.Any(eipId),\n\t\t\tPublicIp:   pulumi.Any(ipAddress),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CfwEipProtectionV1;\nimport com.pulumi.opentelekomcloud.CfwEipProtectionV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var firewallId = config.get(\"firewallId\");\n        final var objectId = config.get(\"objectId\");\n        final var eipId = config.get(\"eipId\");\n        final var ipAddress = config.get(\"ipAddress\");\n        var protect1 = new CfwEipProtectionV1(\"protect1\", CfwEipProtectionV1Args.builder()\n            .firewallId(firewallId)\n            .objectId(objectId)\n            .status(0.0)\n            .eipId(eipId)\n            .publicIp(ipAddress)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  firewallId:\n    type: dynamic\n  objectId:\n    type: dynamic\n  eipId:\n    type: dynamic\n  ipAddress:\n    type: dynamic\nresources:\n  protect1:\n    type: opentelekomcloud:CfwEipProtectionV1\n    name: protect_1\n    properties:\n      firewallId: ${firewallId}\n      objectId: ${objectId}\n      status: 0\n      eipId: ${eipId}\n      publicIp: ${ipAddress}\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"cfwEipProtectionV1Id":{"type":"string"},"eipId":{"description":"Specifies the EIP ID.\n","type":"string"},"firewallId":{"description":"Specifies the Firewall ID.\n","type":"string"},"objectId":{"description":"Specifies the protected object ID, which is used to distinguish between Internet border protection and VPC border protection after a cloud firewall is created. If the value of type is 0, the protected object ID belongs to the Internet border. If the value of type is 1, the protected object ID belongs to the VPC border.\n","type":"string"},"publicIp":{"description":"Specifies the EIP IPV4 address. Required if <span pulumi-lang-nodejs=\"`publicIpv6`\" pulumi-lang-dotnet=\"`PublicIpv6`\" pulumi-lang-go=\"`publicIpv6`\" pulumi-lang-python=\"`public_ipv6`\" pulumi-lang-yaml=\"`publicIpv6`\" pulumi-lang-java=\"`publicIpv6`\">`public_ipv6`</span> is not set.\n","type":"string"},"publicIpv6":{"description":"Specifies the EIP IPV6 address. Required if <span pulumi-lang-nodejs=\"`publicIp`\" pulumi-lang-dotnet=\"`PublicIp`\" pulumi-lang-go=\"`publicIp`\" pulumi-lang-python=\"`public_ip`\" pulumi-lang-yaml=\"`publicIp`\" pulumi-lang-java=\"`publicIp`\">`public_ip`</span> is not set.\n","type":"string"},"status":{"description":"Specifies the desired EIP protection status: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (protected), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (unprotected).\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwEipProtectionV1Timeouts:CfwEipProtectionV1Timeouts"}},"properties":{"cfwEipProtectionV1Id":{"type":"string"},"eipId":{"description":"Specifies the EIP ID.\n","type":"string"},"firewallId":{"description":"Specifies the Firewall ID.\n","type":"string"},"objectId":{"description":"Specifies the protected object ID, which is used to distinguish between Internet border protection and VPC border protection after a cloud firewall is created. If the value of type is 0, the protected object ID belongs to the Internet border. If the value of type is 1, the protected object ID belongs to the VPC border.\n","type":"string"},"publicIp":{"description":"Specifies the EIP IPV4 address. Required if <span pulumi-lang-nodejs=\"`publicIpv6`\" pulumi-lang-dotnet=\"`PublicIpv6`\" pulumi-lang-go=\"`publicIpv6`\" pulumi-lang-python=\"`public_ipv6`\" pulumi-lang-yaml=\"`publicIpv6`\" pulumi-lang-java=\"`publicIpv6`\">`public_ipv6`</span> is not set.\n","type":"string"},"publicIpv6":{"description":"Specifies the EIP IPV6 address. Required if <span pulumi-lang-nodejs=\"`publicIp`\" pulumi-lang-dotnet=\"`PublicIp`\" pulumi-lang-go=\"`publicIp`\" pulumi-lang-python=\"`public_ip`\" pulumi-lang-yaml=\"`publicIp`\" pulumi-lang-java=\"`publicIp`\">`public_ip`</span> is not set.\n","type":"string"},"status":{"description":"Specifies the desired EIP protection status: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (protected), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (unprotected).\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwEipProtectionV1Timeouts:CfwEipProtectionV1Timeouts"}},"required":["cfwEipProtectionV1Id","eipId","firewallId","objectId","status"],"requiredInputs":["eipId","firewallId","objectId","status"],"stateInputs":{"description":"Input properties used for looking up and filtering CfwEipProtectionV1 resources.\n","properties":{"cfwEipProtectionV1Id":{"type":"string"},"eipId":{"description":"Specifies the EIP ID.\n","type":"string"},"firewallId":{"description":"Specifies the Firewall ID.\n","type":"string"},"objectId":{"description":"Specifies the protected object ID, which is used to distinguish between Internet border protection and VPC border protection after a cloud firewall is created. If the value of type is 0, the protected object ID belongs to the Internet border. If the value of type is 1, the protected object ID belongs to the VPC border.\n","type":"string"},"publicIp":{"description":"Specifies the EIP IPV4 address. Required if <span pulumi-lang-nodejs=\"`publicIpv6`\" pulumi-lang-dotnet=\"`PublicIpv6`\" pulumi-lang-go=\"`publicIpv6`\" pulumi-lang-python=\"`public_ipv6`\" pulumi-lang-yaml=\"`publicIpv6`\" pulumi-lang-java=\"`publicIpv6`\">`public_ipv6`</span> is not set.\n","type":"string"},"publicIpv6":{"description":"Specifies the EIP IPV6 address. Required if <span pulumi-lang-nodejs=\"`publicIp`\" pulumi-lang-dotnet=\"`PublicIp`\" pulumi-lang-go=\"`publicIp`\" pulumi-lang-python=\"`public_ip`\" pulumi-lang-yaml=\"`publicIp`\" pulumi-lang-java=\"`publicIp`\">`public_ip`</span> is not set.\n","type":"string"},"status":{"description":"Specifies the desired EIP protection status: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (protected), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (unprotected).\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwEipProtectionV1Timeouts:CfwEipProtectionV1Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cfwFirewallV1:CfwFirewallV1":{"description":"Up-to-date reference of API arguments for CFW firewall instance you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-firewall/api-ref/api/firewall_management/index.html)\n\nManages a CFW Firewall Instance resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Creating A Basic CFW Firewall Instance\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst firewall1 = new opentelekomcloud.CfwFirewallV1(\"firewall_1\", {\n    name: \"test-acc-tf-firewall\",\n    flavor: {\n        version: \"standard\",\n    },\n    chargeInfo: {\n        chargeMode: \"postPaid\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nfirewall1 = opentelekomcloud.CfwFirewallV1(\"firewall_1\",\n    name=\"test-acc-tf-firewall\",\n    flavor={\n        \"version\": \"standard\",\n    },\n    charge_info={\n        \"charge_mode\": \"postPaid\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var firewall1 = new Opentelekomcloud.CfwFirewallV1(\"firewall_1\", new()\n    {\n        Name = \"test-acc-tf-firewall\",\n        Flavor = new Opentelekomcloud.Inputs.CfwFirewallV1FlavorArgs\n        {\n            Version = \"standard\",\n        },\n        ChargeInfo = new Opentelekomcloud.Inputs.CfwFirewallV1ChargeInfoArgs\n        {\n            ChargeMode = \"postPaid\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewCfwFirewallV1(ctx, \"firewall_1\", &opentelekomcloud.CfwFirewallV1Args{\n\t\t\tName: pulumi.String(\"test-acc-tf-firewall\"),\n\t\t\tFlavor: &opentelekomcloud.CfwFirewallV1FlavorArgs{\n\t\t\t\tVersion: pulumi.String(\"standard\"),\n\t\t\t},\n\t\t\tChargeInfo: &opentelekomcloud.CfwFirewallV1ChargeInfoArgs{\n\t\t\t\tChargeMode: pulumi.String(\"postPaid\"),\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.opentelekomcloud.CfwFirewallV1;\nimport com.pulumi.opentelekomcloud.CfwFirewallV1Args;\nimport com.pulumi.opentelekomcloud.inputs.CfwFirewallV1FlavorArgs;\nimport com.pulumi.opentelekomcloud.inputs.CfwFirewallV1ChargeInfoArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var firewall1 = new CfwFirewallV1(\"firewall1\", CfwFirewallV1Args.builder()\n            .name(\"test-acc-tf-firewall\")\n            .flavor(CfwFirewallV1FlavorArgs.builder()\n                .version(\"standard\")\n                .build())\n            .chargeInfo(CfwFirewallV1ChargeInfoArgs.builder()\n                .chargeMode(\"postPaid\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  firewall1:\n    type: opentelekomcloud:CfwFirewallV1\n    name: firewall_1\n    properties:\n      name: test-acc-tf-firewall\n      flavor:\n        version: standard\n      chargeInfo:\n        chargeMode: postPaid\n```\n<!--End PulumiCodeChooser -->\n\n## Notes\n\nBut due to some attributes missing from the API response, it's required to ignore changes as below:\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst firewall1 = new opentelekomcloud.CfwFirewallV1(\"firewall_1\", {});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nfirewall1 = opentelekomcloud.CfwFirewallV1(\"firewall_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var firewall1 = new Opentelekomcloud.CfwFirewallV1(\"firewall_1\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewCfwFirewallV1(ctx, \"firewall_1\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CfwFirewallV1;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var firewall1 = new CfwFirewallV1(\"firewall1\");\n\n    }\n}\n```\n```yaml\nresources:\n  firewall1:\n    type: opentelekomcloud:CfwFirewallV1\n    name: firewall_1\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCFW Firewall V1 Instance can be imported using the CFW firewall instance ID, `id` and service type `service_type`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/cfwFirewallV1:CfwFirewallV1 firewall_1 b4cd6aeb0b7445d3bf271457c6941544in09/service_type\n```\n\n","inputProperties":{"chargeInfo":{"$ref":"#/types/opentelekomcloud:index%2FCfwFirewallV1ChargeInfo:CfwFirewallV1ChargeInfo","description":"Specifies the billing type, which can be yearly/monthly or pay-per-use (default setting).\nThe<span pulumi-lang-nodejs=\" chargeInfo \" pulumi-lang-dotnet=\" ChargeInfo \" pulumi-lang-go=\" chargeInfo \" pulumi-lang-python=\" charge_info \" pulumi-lang-yaml=\" chargeInfo \" pulumi-lang-java=\" chargeInfo \"> charge_info </span>structure is documented below.\n\n<a name=\"flavor\"></a>\nThe <span pulumi-lang-nodejs=\"`flavor`\" pulumi-lang-dotnet=\"`Flavor`\" pulumi-lang-go=\"`flavor`\" pulumi-lang-python=\"`flavor`\" pulumi-lang-yaml=\"`flavor`\" pulumi-lang-java=\"`flavor`\">`flavor`</span> block supports:\n"},"flavor":{"$ref":"#/types/opentelekomcloud:index%2FCfwFirewallV1Flavor:CfwFirewallV1Flavor","description":"Specifies the Firewall specifications. The flavor structure is documented below.\n"},"name":{"description":"Specifies the CFW firewall instance name. The CFW firewall instance name of the same\ntype is unique in the same tenant.\n","type":"string"},"serviceType":{"description":"Specifies the Firewall protection type. Currently, its value can only be <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (Internet protection).\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwFirewallV1Timeouts:CfwFirewallV1Timeouts"}},"properties":{"chargeInfo":{"$ref":"#/types/opentelekomcloud:index%2FCfwFirewallV1ChargeInfo:CfwFirewallV1ChargeInfo","description":"Specifies the billing type, which can be yearly/monthly or pay-per-use (default setting).\nThe<span pulumi-lang-nodejs=\" chargeInfo \" pulumi-lang-dotnet=\" ChargeInfo \" pulumi-lang-go=\" chargeInfo \" pulumi-lang-python=\" charge_info \" pulumi-lang-yaml=\" chargeInfo \" pulumi-lang-java=\" chargeInfo \"> charge_info </span>structure is documented below.\n\n<a name=\"flavor\"></a>\nThe <span pulumi-lang-nodejs=\"`flavor`\" pulumi-lang-dotnet=\"`Flavor`\" pulumi-lang-go=\"`flavor`\" pulumi-lang-python=\"`flavor`\" pulumi-lang-yaml=\"`flavor`\" pulumi-lang-java=\"`flavor`\">`flavor`</span> block supports:\n"},"chargeMode":{"description":"Specifies the Billing mode. The value can only be `postPaid` (case-sensitive), indicating pay-per-use billing.\n","type":"number"},"engineType":{"description":"Indicates the engine type. Its value can only be 1 (Hillstone engine).\n","type":"number"},"enterpriseProjectId":{"description":"Indicates the Enterprise project ID, which is the ID of a project planned based on organizations.\n","type":"string"},"featureToggle":{"additionalProperties":{"type":"boolean"},"description":"Provides a map of features indicating whether a feature is enabled: true (yes), false (no).\n","type":"object"},"flavor":{"$ref":"#/types/opentelekomcloud:index%2FCfwFirewallV1Flavor:CfwFirewallV1Flavor","description":"Specifies the Firewall specifications. The flavor structure is documented below.\n"},"haType":{"description":"Indicates the Cluster type: 0 (active/standby), 1 (cluster). In active/standby mode, there are four nodes. Two active nodes form a cluster, and the other two are the standby of the active nodes. In cluster mode, only two nodes are started to form a cluster..\n","type":"number"},"isAvailableObs":{"description":"Indicates whether OBS is supported: true (yes), false (no).\n","type":"boolean"},"isOldFirewallInstance":{"description":"Indicates whether an engine is old: true (yes), false (no)..\n","type":"boolean"},"isSupportThreatTags":{"description":"Indicates whether threat intelligence tags are supported: true (yes), false (no).\n","type":"boolean"},"name":{"description":"Specifies the CFW firewall instance name. The CFW firewall instance name of the same\ntype is unique in the same tenant.\n","type":"string"},"protectObjects":{"description":"Indicates the protected object list. The<span pulumi-lang-nodejs=\" protectObjects \" pulumi-lang-dotnet=\" ProtectObjects \" pulumi-lang-go=\" protectObjects \" pulumi-lang-python=\" protect_objects \" pulumi-lang-yaml=\" protectObjects \" pulumi-lang-java=\" protectObjects \"> protect_objects </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCfwFirewallV1ProtectObject:CfwFirewallV1ProtectObject"},"type":"array"},"resourceId":{"description":"Indicates the resource ID. It can be the firewall ID, bandwidth ID, EIP ID, VPC ID, or the ID returned after CBC callback.\n","type":"string"},"resources":{"description":"Indicates the firewall resource list. The resources structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCfwFirewallV1Resource:CfwFirewallV1Resource"},"type":"array"},"serviceType":{"description":"Specifies the Firewall protection type. Currently, its value can only be <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (Internet protection).\n","type":"string"},"status":{"description":"Indicates the firewall status: -1 (waiting for payment), 0 (creating), 1 (deleting), 2 (running), 3 (upgrading), 4 (deleted), 5 (frozen), 6 (creation failed), 7 (deletion failed), 8 (freezing failed), or 9 (being stored), 10 (storage failed), or 11 (upgrade failed).\n","type":"number"},"supportIpv6":{"description":"Indicates whether IPv6 is supported: true (yes), false (no).\n","type":"boolean"},"supportUrlFiltering":{"description":"Indicates whether website filtering is supported: true (yes), false (no).\n","type":"boolean"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwFirewallV1Timeouts:CfwFirewallV1Timeouts"}},"required":["chargeInfo","chargeMode","engineType","enterpriseProjectId","featureToggle","flavor","haType","isAvailableObs","isOldFirewallInstance","isSupportThreatTags","name","protectObjects","resourceId","resources","status","supportIpv6","supportUrlFiltering"],"requiredInputs":["chargeInfo","flavor"],"stateInputs":{"description":"Input properties used for looking up and filtering CfwFirewallV1 resources.\n","properties":{"chargeInfo":{"$ref":"#/types/opentelekomcloud:index%2FCfwFirewallV1ChargeInfo:CfwFirewallV1ChargeInfo","description":"Specifies the billing type, which can be yearly/monthly or pay-per-use (default setting).\nThe<span pulumi-lang-nodejs=\" chargeInfo \" pulumi-lang-dotnet=\" ChargeInfo \" pulumi-lang-go=\" chargeInfo \" pulumi-lang-python=\" charge_info \" pulumi-lang-yaml=\" chargeInfo \" pulumi-lang-java=\" chargeInfo \"> charge_info </span>structure is documented below.\n\n<a name=\"flavor\"></a>\nThe <span pulumi-lang-nodejs=\"`flavor`\" pulumi-lang-dotnet=\"`Flavor`\" pulumi-lang-go=\"`flavor`\" pulumi-lang-python=\"`flavor`\" pulumi-lang-yaml=\"`flavor`\" pulumi-lang-java=\"`flavor`\">`flavor`</span> block supports:\n"},"chargeMode":{"description":"Specifies the Billing mode. The value can only be `postPaid` (case-sensitive), indicating pay-per-use billing.\n","type":"number"},"engineType":{"description":"Indicates the engine type. Its value can only be 1 (Hillstone engine).\n","type":"number"},"enterpriseProjectId":{"description":"Indicates the Enterprise project ID, which is the ID of a project planned based on organizations.\n","type":"string"},"featureToggle":{"additionalProperties":{"type":"boolean"},"description":"Provides a map of features indicating whether a feature is enabled: true (yes), false (no).\n","type":"object"},"flavor":{"$ref":"#/types/opentelekomcloud:index%2FCfwFirewallV1Flavor:CfwFirewallV1Flavor","description":"Specifies the Firewall specifications. The flavor structure is documented below.\n"},"haType":{"description":"Indicates the Cluster type: 0 (active/standby), 1 (cluster). In active/standby mode, there are four nodes. Two active nodes form a cluster, and the other two are the standby of the active nodes. In cluster mode, only two nodes are started to form a cluster..\n","type":"number"},"isAvailableObs":{"description":"Indicates whether OBS is supported: true (yes), false (no).\n","type":"boolean"},"isOldFirewallInstance":{"description":"Indicates whether an engine is old: true (yes), false (no)..\n","type":"boolean"},"isSupportThreatTags":{"description":"Indicates whether threat intelligence tags are supported: true (yes), false (no).\n","type":"boolean"},"name":{"description":"Specifies the CFW firewall instance name. The CFW firewall instance name of the same\ntype is unique in the same tenant.\n","type":"string"},"protectObjects":{"description":"Indicates the protected object list. The<span pulumi-lang-nodejs=\" protectObjects \" pulumi-lang-dotnet=\" ProtectObjects \" pulumi-lang-go=\" protectObjects \" pulumi-lang-python=\" protect_objects \" pulumi-lang-yaml=\" protectObjects \" pulumi-lang-java=\" protectObjects \"> protect_objects </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCfwFirewallV1ProtectObject:CfwFirewallV1ProtectObject"},"type":"array"},"resourceId":{"description":"Indicates the resource ID. It can be the firewall ID, bandwidth ID, EIP ID, VPC ID, or the ID returned after CBC callback.\n","type":"string"},"resources":{"description":"Indicates the firewall resource list. The resources structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCfwFirewallV1Resource:CfwFirewallV1Resource"},"type":"array"},"serviceType":{"description":"Specifies the Firewall protection type. Currently, its value can only be <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (Internet protection).\n","type":"string"},"status":{"description":"Indicates the firewall status: -1 (waiting for payment), 0 (creating), 1 (deleting), 2 (running), 3 (upgrading), 4 (deleted), 5 (frozen), 6 (creation failed), 7 (deletion failed), 8 (freezing failed), or 9 (being stored), 10 (storage failed), or 11 (upgrade failed).\n","type":"number"},"supportIpv6":{"description":"Indicates whether IPv6 is supported: true (yes), false (no).\n","type":"boolean"},"supportUrlFiltering":{"description":"Indicates whether website filtering is supported: true (yes), false (no).\n","type":"boolean"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwFirewallV1Timeouts:CfwFirewallV1Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cfwIpsProtectionV1:CfwIpsProtectionV1":{"description":"Up-to-date reference of API arguments for CFW IPS protection you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-firewall/api-ref/api/ips_management/index.html)\n\n  Configure IPS protection associated with CFW firewall within OpenTelekomCloud.\n\n## Example Usage\n\n### \n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst objectId = config.requireObject<any>(\"objectId\");\nconst protect1 = new opentelekomcloud.CfwIpsProtectionV1(\"protect_1\", {\n    objectId: objectId,\n    ipsType: 2,\n    featureStatus: 1,\n    mode: 0,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nobject_id = config.require_object(\"objectId\")\nprotect1 = opentelekomcloud.CfwIpsProtectionV1(\"protect_1\",\n    object_id=object_id,\n    ips_type=2,\n    feature_status=1,\n    mode=0)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var objectId = config.RequireObject<dynamic>(\"objectId\");\n    var protect1 = new Opentelekomcloud.CfwIpsProtectionV1(\"protect_1\", new()\n    {\n        ObjectId = objectId,\n        IpsType = 2,\n        FeatureStatus = 1,\n        Mode = 0,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tobjectId := cfg.RequireObject(\"objectId\")\n\t\t_, err := opentelekomcloud.NewCfwIpsProtectionV1(ctx, \"protect_1\", &opentelekomcloud.CfwIpsProtectionV1Args{\n\t\t\tObjectId:      pulumi.Any(objectId),\n\t\t\tIpsType:       pulumi.Float64(2),\n\t\t\tFeatureStatus: pulumi.Float64(1),\n\t\t\tMode:          pulumi.Float64(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.opentelekomcloud.CfwIpsProtectionV1;\nimport com.pulumi.opentelekomcloud.CfwIpsProtectionV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var objectId = config.get(\"objectId\");\n        var protect1 = new CfwIpsProtectionV1(\"protect1\", CfwIpsProtectionV1Args.builder()\n            .objectId(objectId)\n            .ipsType(2.0)\n            .featureStatus(1.0)\n            .mode(0.0)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  objectId:\n    type: dynamic\nresources:\n  protect1:\n    type: opentelekomcloud:CfwIpsProtectionV1\n    name: protect_1\n    properties:\n      objectId: ${objectId}\n      ipsType: 2\n      featureStatus: 1\n      mode: 0\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"cfwIpsProtectionV1Id":{"type":"string"},"featureStatus":{"description":"Specifies the desired IPS virtual patching status: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (disabled), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (enabled).\n","type":"number"},"ipsType":{"description":"Specifies the IPS patch type. Its value can only be <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span> (virtual patch). Default: <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span>.\n","type":"number"},"mode":{"description":"Specifies the IPS protection mode: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (observation mode), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (strict mode), <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span> (medium mode), or <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> (loose mode).\n","type":"number"},"objectId":{"description":"Specifies the protected object ID, which is used to distinguish between Internet border protection and VPC border protection after a cloud firewall is created. If the value of type is <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>, the protected object ID belongs to the Internet border. If the value of type is <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>, the protected object ID belongs to the VPC border.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwIpsProtectionV1Timeouts:CfwIpsProtectionV1Timeouts"}},"properties":{"basicDefenseStatus":{"description":"Indicates the basic defense status: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (disabled), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (enabled).\n","type":"number"},"cfwIpsProtectionV1Id":{"type":"string"},"featureStatus":{"description":"Specifies the desired IPS virtual patching status: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (disabled), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (enabled).\n","type":"number"},"ipsProtectionModeId":{"description":"Indicates the IPS protection mode ID.\n","type":"string"},"ipsSwitchId":{"description":"Indicates the IPS switch ID.\n","type":"string"},"ipsType":{"description":"Specifies the IPS patch type. Its value can only be <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span> (virtual patch). Default: <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span>.\n","type":"number"},"mode":{"description":"Specifies the IPS protection mode: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (observation mode), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (strict mode), <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span> (medium mode), or <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> (loose mode).\n","type":"number"},"objectId":{"description":"Specifies the protected object ID, which is used to distinguish between Internet border protection and VPC border protection after a cloud firewall is created. If the value of type is <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>, the protected object ID belongs to the Internet border. If the value of type is <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>, the protected object ID belongs to the VPC border.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwIpsProtectionV1Timeouts:CfwIpsProtectionV1Timeouts"}},"required":["basicDefenseStatus","cfwIpsProtectionV1Id","featureStatus","ipsProtectionModeId","ipsSwitchId","mode","objectId"],"requiredInputs":["featureStatus","mode","objectId"],"stateInputs":{"description":"Input properties used for looking up and filtering CfwIpsProtectionV1 resources.\n","properties":{"basicDefenseStatus":{"description":"Indicates the basic defense status: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (disabled), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (enabled).\n","type":"number"},"cfwIpsProtectionV1Id":{"type":"string"},"featureStatus":{"description":"Specifies the desired IPS virtual patching status: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (disabled), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (enabled).\n","type":"number"},"ipsProtectionModeId":{"description":"Indicates the IPS protection mode ID.\n","type":"string"},"ipsSwitchId":{"description":"Indicates the IPS switch ID.\n","type":"string"},"ipsType":{"description":"Specifies the IPS patch type. Its value can only be <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span> (virtual patch). Default: <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span>.\n","type":"number"},"mode":{"description":"Specifies the IPS protection mode: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (observation mode), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (strict mode), <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span> (medium mode), or <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> (loose mode).\n","type":"number"},"objectId":{"description":"Specifies the protected object ID, which is used to distinguish between Internet border protection and VPC border protection after a cloud firewall is created. If the value of type is <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>, the protected object ID belongs to the Internet border. If the value of type is <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>, the protected object ID belongs to the VPC border.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwIpsProtectionV1Timeouts:CfwIpsProtectionV1Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cfwServiceGroupMemberV1:CfwServiceGroupMemberV1":{"description":"Up-to-date reference of API arguments for CFW service group member you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-firewall/api-ref/api/service_group_management/index.html)\n\nManages a CFW Service Group Member resource within OpenTelekomCloud.\n\n## Example Usage\n\n### \n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst setId = config.requireObject<any>(\"setId\");\nconst member1 = new opentelekomcloud.CfwServiceGroupMemberV1(\"member_1\", {\n    setId: setId,\n    protocol: 6,\n    sourcePort: \"1\",\n    destPort: \"1\",\n    description: \"Test611\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nset_id = config.require_object(\"setId\")\nmember1 = opentelekomcloud.CfwServiceGroupMemberV1(\"member_1\",\n    set_id=set_id,\n    protocol=6,\n    source_port=\"1\",\n    dest_port=\"1\",\n    description=\"Test611\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var setId = config.RequireObject<dynamic>(\"setId\");\n    var member1 = new Opentelekomcloud.CfwServiceGroupMemberV1(\"member_1\", new()\n    {\n        SetId = setId,\n        Protocol = 6,\n        SourcePort = \"1\",\n        DestPort = \"1\",\n        Description = \"Test611\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tsetId := cfg.RequireObject(\"setId\")\n\t\t_, err := opentelekomcloud.NewCfwServiceGroupMemberV1(ctx, \"member_1\", &opentelekomcloud.CfwServiceGroupMemberV1Args{\n\t\t\tSetId:       pulumi.Any(setId),\n\t\t\tProtocol:    pulumi.Float64(6),\n\t\t\tSourcePort:  pulumi.String(\"1\"),\n\t\t\tDestPort:    pulumi.String(\"1\"),\n\t\t\tDescription: pulumi.String(\"Test611\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CfwServiceGroupMemberV1;\nimport com.pulumi.opentelekomcloud.CfwServiceGroupMemberV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var setId = config.get(\"setId\");\n        var member1 = new CfwServiceGroupMemberV1(\"member1\", CfwServiceGroupMemberV1Args.builder()\n            .setId(setId)\n            .protocol(6.0)\n            .sourcePort(\"1\")\n            .destPort(\"1\")\n            .description(\"Test611\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  setId:\n    type: dynamic\nresources:\n  member1:\n    type: opentelekomcloud:CfwServiceGroupMemberV1\n    name: member_1\n    properties:\n      setId: ${setId}\n      protocol: 6\n      sourcePort: '1'\n      destPort: '1'\n      description: Test611\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCFW Service Group Member V1 resource can be imported using the service group ID, `set_id` and member ID, `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/cfwServiceGroupMemberV1:CfwServiceGroupMemberV1 member_1 <set_id>/<id>\n```\n\n","inputProperties":{"description":{"description":"Specifies the description of the service group member.\n","type":"string"},"destPort":{"description":"Specifies the destination port.\n","type":"string"},"protocol":{"description":"Specifies the Protocol type: <span pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\">`6`</span> (TCP), <span pulumi-lang-nodejs=\"`17`\" pulumi-lang-dotnet=\"`17`\" pulumi-lang-go=\"`17`\" pulumi-lang-python=\"`17`\" pulumi-lang-yaml=\"`17`\" pulumi-lang-java=\"`17`\">`17`</span> (UDP), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (ICMP), <span pulumi-lang-nodejs=\"`58`\" pulumi-lang-dotnet=\"`58`\" pulumi-lang-go=\"`58`\" pulumi-lang-python=\"`58`\" pulumi-lang-yaml=\"`58`\" pulumi-lang-java=\"`58`\">`58`</span> (ICMPv6), or -<span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (any).\n","type":"number"},"setId":{"description":"Specifies the service group ID.\n","type":"string"},"sourcePort":{"description":"Specifies the source port.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwServiceGroupMemberV1Timeouts:CfwServiceGroupMemberV1Timeouts"}},"properties":{"description":{"description":"Specifies the description of the service group member.\n","type":"string"},"destPort":{"description":"Specifies the destination port.\n","type":"string"},"protocol":{"description":"Specifies the Protocol type: <span pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\">`6`</span> (TCP), <span pulumi-lang-nodejs=\"`17`\" pulumi-lang-dotnet=\"`17`\" pulumi-lang-go=\"`17`\" pulumi-lang-python=\"`17`\" pulumi-lang-yaml=\"`17`\" pulumi-lang-java=\"`17`\">`17`</span> (UDP), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (ICMP), <span pulumi-lang-nodejs=\"`58`\" pulumi-lang-dotnet=\"`58`\" pulumi-lang-go=\"`58`\" pulumi-lang-python=\"`58`\" pulumi-lang-yaml=\"`58`\" pulumi-lang-java=\"`58`\">`58`</span> (ICMPv6), or -<span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (any).\n","type":"number"},"setId":{"description":"Specifies the service group ID.\n","type":"string"},"sourcePort":{"description":"Specifies the source port.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwServiceGroupMemberV1Timeouts:CfwServiceGroupMemberV1Timeouts"}},"required":["destPort","protocol","setId","sourcePort"],"requiredInputs":["destPort","protocol","setId","sourcePort"],"stateInputs":{"description":"Input properties used for looking up and filtering CfwServiceGroupMemberV1 resources.\n","properties":{"description":{"description":"Specifies the description of the service group member.\n","type":"string"},"destPort":{"description":"Specifies the destination port.\n","type":"string"},"protocol":{"description":"Specifies the Protocol type: <span pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\">`6`</span> (TCP), <span pulumi-lang-nodejs=\"`17`\" pulumi-lang-dotnet=\"`17`\" pulumi-lang-go=\"`17`\" pulumi-lang-python=\"`17`\" pulumi-lang-yaml=\"`17`\" pulumi-lang-java=\"`17`\">`17`</span> (UDP), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (ICMP), <span pulumi-lang-nodejs=\"`58`\" pulumi-lang-dotnet=\"`58`\" pulumi-lang-go=\"`58`\" pulumi-lang-python=\"`58`\" pulumi-lang-yaml=\"`58`\" pulumi-lang-java=\"`58`\">`58`</span> (ICMPv6), or -<span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (any).\n","type":"number"},"setId":{"description":"Specifies the service group ID.\n","type":"string"},"sourcePort":{"description":"Specifies the source port.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwServiceGroupMemberV1Timeouts:CfwServiceGroupMemberV1Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cfwServiceGroupV1:CfwServiceGroupV1":{"description":"Up-to-date reference of API arguments for CFW service group you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-firewall/api-ref/api/service_group_management/index.html)\n\nManages a CFW Service Group resource within OpenTelekomCloud.\n\n## Example Usage\n\n### \n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst objectId = config.requireObject<any>(\"objectId\");\nconst group1 = new opentelekomcloud.CfwServiceGroupV1(\"group_1\", {\n    objectId: objectId,\n    name: \"test-acc-tf-service-group\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nobject_id = config.require_object(\"objectId\")\ngroup1 = opentelekomcloud.CfwServiceGroupV1(\"group_1\",\n    object_id=object_id,\n    name=\"test-acc-tf-service-group\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var objectId = config.RequireObject<dynamic>(\"objectId\");\n    var group1 = new Opentelekomcloud.CfwServiceGroupV1(\"group_1\", new()\n    {\n        ObjectId = objectId,\n        Name = \"test-acc-tf-service-group\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tobjectId := cfg.RequireObject(\"objectId\")\n\t\t_, err := opentelekomcloud.NewCfwServiceGroupV1(ctx, \"group_1\", &opentelekomcloud.CfwServiceGroupV1Args{\n\t\t\tObjectId: pulumi.Any(objectId),\n\t\t\tName:     pulumi.String(\"test-acc-tf-service-group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CfwServiceGroupV1;\nimport com.pulumi.opentelekomcloud.CfwServiceGroupV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var objectId = config.get(\"objectId\");\n        var group1 = new CfwServiceGroupV1(\"group1\", CfwServiceGroupV1Args.builder()\n            .objectId(objectId)\n            .name(\"test-acc-tf-service-group\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  objectId:\n    type: dynamic\nresources:\n  group1:\n    type: opentelekomcloud:CfwServiceGroupV1\n    name: group_1\n    properties:\n      objectId: ${objectId}\n      name: test-acc-tf-service-group\n```\n<!--End PulumiCodeChooser -->\n\n## Notes\n\nBut due to some attributes missing from the API response, it's required to ignore changes as below:\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst group1 = new opentelekomcloud.CfwServiceGroupV1(\"group_1\", {});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ngroup1 = opentelekomcloud.CfwServiceGroupV1(\"group_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var group1 = new Opentelekomcloud.CfwServiceGroupV1(\"group_1\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewCfwServiceGroupV1(ctx, \"group_1\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CfwServiceGroupV1;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var group1 = new CfwServiceGroupV1(\"group1\");\n\n    }\n}\n```\n```yaml\nresources:\n  group1:\n    type: opentelekomcloud:CfwServiceGroupV1\n    name: group_1\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCFW Service Group V1 resource can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/cfwServiceGroupV1:CfwServiceGroupV1 group_1 b4cd6aeb0b7445d3bf271457c6941544in09\n```\n\n","inputProperties":{"description":{"description":"Specifies the description of the service group.\n","type":"string"},"name":{"description":"Specifies the CFW Service group name. The CFW service group name of the same type is unique in the same firewall.\n","type":"string"},"objectId":{"description":"Specifies the protected object ID, which is used to distinguish between Internet border protection and VPC border protection after a cloud firewall is created. If the value of type is 0, the protected object ID belongs to the Internet border. If the value of type is 1, the protected object ID belongs to the VPC border.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwServiceGroupV1Timeouts:CfwServiceGroupV1Timeouts"}},"properties":{"description":{"description":"Specifies the description of the service group.\n","type":"string"},"name":{"description":"Specifies the CFW Service group name. The CFW service group name of the same type is unique in the same firewall.\n","type":"string"},"objectId":{"description":"Specifies the protected object ID, which is used to distinguish between Internet border protection and VPC border protection after a cloud firewall is created. If the value of type is 0, the protected object ID belongs to the Internet border. If the value of type is 1, the protected object ID belongs to the VPC border.\n","type":"string"},"serviceSetType":{"description":"Indicates the Service group type: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (user-defined service group), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (common web service), <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span> (common remote login and ping), or <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> (common database).\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwServiceGroupV1Timeouts:CfwServiceGroupV1Timeouts"}},"required":["name","objectId","serviceSetType"],"requiredInputs":["objectId"],"stateInputs":{"description":"Input properties used for looking up and filtering CfwServiceGroupV1 resources.\n","properties":{"description":{"description":"Specifies the description of the service group.\n","type":"string"},"name":{"description":"Specifies the CFW Service group name. The CFW service group name of the same type is unique in the same firewall.\n","type":"string"},"objectId":{"description":"Specifies the protected object ID, which is used to distinguish between Internet border protection and VPC border protection after a cloud firewall is created. If the value of type is 0, the protected object ID belongs to the Internet border. If the value of type is 1, the protected object ID belongs to the VPC border.\n","type":"string"},"serviceSetType":{"description":"Indicates the Service group type: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> (user-defined service group), <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> (common web service), <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span> (common remote login and ping), or <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> (common database).\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCfwServiceGroupV1Timeouts:CfwServiceGroupV1Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/computeBmsServerV2:ComputeBmsServerV2":{"description":"Manages a BMS Server resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Basic Instance\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst imageId = config.requireObject<any>(\"imageId\");\nconst flavorId = config.requireObject<any>(\"flavorId\");\nconst keypairName = config.requireObject<any>(\"keypairName\");\nconst networkId = config.requireObject<any>(\"networkId\");\nconst availabilityZone = config.requireObject<any>(\"availabilityZone\");\nconst basic = new opentelekomcloud.ComputeBmsServerV2(\"basic\", {\n    name: \"basic\",\n    imageId: imageId,\n    flavorId: flavorId,\n    keyPair: keypairName,\n    securityGroups: [\"default\"],\n    availabilityZone: availabilityZone,\n    metadata: {\n        \"this\": \"that\",\n    },\n    networks: [{\n        uuid: networkId,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nimage_id = config.require_object(\"imageId\")\nflavor_id = config.require_object(\"flavorId\")\nkeypair_name = config.require_object(\"keypairName\")\nnetwork_id = config.require_object(\"networkId\")\navailability_zone = config.require_object(\"availabilityZone\")\nbasic = opentelekomcloud.ComputeBmsServerV2(\"basic\",\n    name=\"basic\",\n    image_id=image_id,\n    flavor_id=flavor_id,\n    key_pair=keypair_name,\n    security_groups=[\"default\"],\n    availability_zone=availability_zone,\n    metadata={\n        \"this\": \"that\",\n    },\n    networks=[{\n        \"uuid\": network_id,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var imageId = config.RequireObject<dynamic>(\"imageId\");\n    var flavorId = config.RequireObject<dynamic>(\"flavorId\");\n    var keypairName = config.RequireObject<dynamic>(\"keypairName\");\n    var networkId = config.RequireObject<dynamic>(\"networkId\");\n    var availabilityZone = config.RequireObject<dynamic>(\"availabilityZone\");\n    var basic = new Opentelekomcloud.ComputeBmsServerV2(\"basic\", new()\n    {\n        Name = \"basic\",\n        ImageId = imageId,\n        FlavorId = flavorId,\n        KeyPair = keypairName,\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n        AvailabilityZone = availabilityZone,\n        Metadata = \n        {\n            { \"this\", \"that\" },\n        },\n        Networks = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeBmsServerV2NetworkArgs\n            {\n                Uuid = networkId,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\timageId := cfg.RequireObject(\"imageId\")\n\t\tflavorId := cfg.RequireObject(\"flavorId\")\n\t\tkeypairName := cfg.RequireObject(\"keypairName\")\n\t\tnetworkId := cfg.RequireObject(\"networkId\")\n\t\tavailabilityZone := cfg.RequireObject(\"availabilityZone\")\n\t\t_, err := opentelekomcloud.NewComputeBmsServerV2(ctx, \"basic\", &opentelekomcloud.ComputeBmsServerV2Args{\n\t\t\tName:     pulumi.String(\"basic\"),\n\t\t\tImageId:  pulumi.Any(imageId),\n\t\t\tFlavorId: pulumi.Any(flavorId),\n\t\t\tKeyPair:  pulumi.Any(keypairName),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tAvailabilityZone: pulumi.Any(availabilityZone),\n\t\t\tMetadata: pulumi.StringMap{\n\t\t\t\t\"this\": pulumi.String(\"that\"),\n\t\t\t},\n\t\t\tNetworks: opentelekomcloud.ComputeBmsServerV2NetworkArray{\n\t\t\t\t&opentelekomcloud.ComputeBmsServerV2NetworkArgs{\n\t\t\t\t\tUuid: pulumi.Any(networkId),\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.opentelekomcloud.ComputeBmsServerV2;\nimport com.pulumi.opentelekomcloud.ComputeBmsServerV2Args;\nimport com.pulumi.opentelekomcloud.inputs.ComputeBmsServerV2NetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var imageId = config.get(\"imageId\");\n        final var flavorId = config.get(\"flavorId\");\n        final var keypairName = config.get(\"keypairName\");\n        final var networkId = config.get(\"networkId\");\n        final var availabilityZone = config.get(\"availabilityZone\");\n        var basic = new ComputeBmsServerV2(\"basic\", ComputeBmsServerV2Args.builder()\n            .name(\"basic\")\n            .imageId(imageId)\n            .flavorId(flavorId)\n            .keyPair(keypairName)\n            .securityGroups(\"default\")\n            .availabilityZone(availabilityZone)\n            .metadata(Map.of(\"this\", \"that\"))\n            .networks(ComputeBmsServerV2NetworkArgs.builder()\n                .uuid(networkId)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  imageId:\n    type: dynamic\n  flavorId:\n    type: dynamic\n  keypairName:\n    type: dynamic\n  networkId:\n    type: dynamic\n  availabilityZone:\n    type: dynamic\nresources:\n  basic:\n    type: opentelekomcloud:ComputeBmsServerV2\n    properties:\n      name: basic\n      imageId: ${imageId}\n      flavorId: ${flavorId}\n      keyPair: ${keypairName}\n      securityGroups:\n        - default\n      availabilityZone: ${availabilityZone}\n      metadata:\n        this: that\n      networks:\n        - uuid: ${networkId}\n```\n<!--End PulumiCodeChooser -->\n\n### Instance Boot From Volume Image\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst flavorId = config.requireObject<any>(\"flavorId\");\nconst keypairName = config.requireObject<any>(\"keypairName\");\nconst networkId = config.requireObject<any>(\"networkId\");\nconst availabilityZone = config.requireObject<any>(\"availabilityZone\");\nconst basic = new opentelekomcloud.ComputeBmsServerV2(\"basic\", {\n    name: \"basic\",\n    flavorId: flavorId,\n    keyPair: keypairName,\n    securityGroups: [\"default\"],\n    availabilityZone: availabilityZone,\n    metadata: {\n        \"this\": \"that\",\n    },\n    networks: [{\n        uuid: networkId,\n    }],\n    blockDevices: [{\n        uuid: imageId,\n        sourceType: \"image\",\n        volumeType: \"SATA\",\n        volumeSize: 100,\n        bootIndex: 0,\n        destinationType: \"volume\",\n        deleteOnTermination: true,\n        deviceName: \"/dev/sda\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nflavor_id = config.require_object(\"flavorId\")\nkeypair_name = config.require_object(\"keypairName\")\nnetwork_id = config.require_object(\"networkId\")\navailability_zone = config.require_object(\"availabilityZone\")\nbasic = opentelekomcloud.ComputeBmsServerV2(\"basic\",\n    name=\"basic\",\n    flavor_id=flavor_id,\n    key_pair=keypair_name,\n    security_groups=[\"default\"],\n    availability_zone=availability_zone,\n    metadata={\n        \"this\": \"that\",\n    },\n    networks=[{\n        \"uuid\": network_id,\n    }],\n    block_devices=[{\n        \"uuid\": image_id,\n        \"source_type\": \"image\",\n        \"volume_type\": \"SATA\",\n        \"volume_size\": 100,\n        \"boot_index\": 0,\n        \"destination_type\": \"volume\",\n        \"delete_on_termination\": True,\n        \"device_name\": \"/dev/sda\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var flavorId = config.RequireObject<dynamic>(\"flavorId\");\n    var keypairName = config.RequireObject<dynamic>(\"keypairName\");\n    var networkId = config.RequireObject<dynamic>(\"networkId\");\n    var availabilityZone = config.RequireObject<dynamic>(\"availabilityZone\");\n    var basic = new Opentelekomcloud.ComputeBmsServerV2(\"basic\", new()\n    {\n        Name = \"basic\",\n        FlavorId = flavorId,\n        KeyPair = keypairName,\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n        AvailabilityZone = availabilityZone,\n        Metadata = \n        {\n            { \"this\", \"that\" },\n        },\n        Networks = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeBmsServerV2NetworkArgs\n            {\n                Uuid = networkId,\n            },\n        },\n        BlockDevices = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeBmsServerV2BlockDeviceArgs\n            {\n                Uuid = imageId,\n                SourceType = \"image\",\n                VolumeType = \"SATA\",\n                VolumeSize = 100,\n                BootIndex = 0,\n                DestinationType = \"volume\",\n                DeleteOnTermination = true,\n                DeviceName = \"/dev/sda\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tflavorId := cfg.RequireObject(\"flavorId\")\n\t\tkeypairName := cfg.RequireObject(\"keypairName\")\n\t\tnetworkId := cfg.RequireObject(\"networkId\")\n\t\tavailabilityZone := cfg.RequireObject(\"availabilityZone\")\n\t\t_, err := opentelekomcloud.NewComputeBmsServerV2(ctx, \"basic\", &opentelekomcloud.ComputeBmsServerV2Args{\n\t\t\tName:     pulumi.String(\"basic\"),\n\t\t\tFlavorId: pulumi.Any(flavorId),\n\t\t\tKeyPair:  pulumi.Any(keypairName),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tAvailabilityZone: pulumi.Any(availabilityZone),\n\t\t\tMetadata: pulumi.StringMap{\n\t\t\t\t\"this\": pulumi.String(\"that\"),\n\t\t\t},\n\t\t\tNetworks: opentelekomcloud.ComputeBmsServerV2NetworkArray{\n\t\t\t\t&opentelekomcloud.ComputeBmsServerV2NetworkArgs{\n\t\t\t\t\tUuid: pulumi.Any(networkId),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBlockDevices: opentelekomcloud.ComputeBmsServerV2BlockDeviceArray{\n\t\t\t\t&opentelekomcloud.ComputeBmsServerV2BlockDeviceArgs{\n\t\t\t\t\tUuid:                pulumi.Any(imageId),\n\t\t\t\t\tSourceType:          pulumi.String(\"image\"),\n\t\t\t\t\tVolumeType:          pulumi.String(\"SATA\"),\n\t\t\t\t\tVolumeSize:          pulumi.Float64(100),\n\t\t\t\t\tBootIndex:           pulumi.Float64(0),\n\t\t\t\t\tDestinationType:     pulumi.String(\"volume\"),\n\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t\tDeviceName:          pulumi.String(\"/dev/sda\"),\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.opentelekomcloud.ComputeBmsServerV2;\nimport com.pulumi.opentelekomcloud.ComputeBmsServerV2Args;\nimport com.pulumi.opentelekomcloud.inputs.ComputeBmsServerV2NetworkArgs;\nimport com.pulumi.opentelekomcloud.inputs.ComputeBmsServerV2BlockDeviceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var flavorId = config.get(\"flavorId\");\n        final var keypairName = config.get(\"keypairName\");\n        final var networkId = config.get(\"networkId\");\n        final var availabilityZone = config.get(\"availabilityZone\");\n        var basic = new ComputeBmsServerV2(\"basic\", ComputeBmsServerV2Args.builder()\n            .name(\"basic\")\n            .flavorId(flavorId)\n            .keyPair(keypairName)\n            .securityGroups(\"default\")\n            .availabilityZone(availabilityZone)\n            .metadata(Map.of(\"this\", \"that\"))\n            .networks(ComputeBmsServerV2NetworkArgs.builder()\n                .uuid(networkId)\n                .build())\n            .blockDevices(ComputeBmsServerV2BlockDeviceArgs.builder()\n                .uuid(imageId)\n                .sourceType(\"image\")\n                .volumeType(\"SATA\")\n                .volumeSize(100.0)\n                .bootIndex(0.0)\n                .destinationType(\"volume\")\n                .deleteOnTermination(true)\n                .deviceName(\"/dev/sda\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  flavorId:\n    type: dynamic\n  keypairName:\n    type: dynamic\n  networkId:\n    type: dynamic\n  availabilityZone:\n    type: dynamic\nresources:\n  basic:\n    type: opentelekomcloud:ComputeBmsServerV2\n    properties:\n      name: basic\n      flavorId: ${flavorId}\n      keyPair: ${keypairName}\n      securityGroups:\n        - default\n      availabilityZone: ${availabilityZone}\n      metadata:\n        this: that\n      networks:\n        - uuid: ${networkId}\n      blockDevices:\n        - uuid: ${imageId}\n          sourceType: image\n          volumeType: SATA\n          volumeSize: 100\n          bootIndex: 0\n          destinationType: volume\n          deleteOnTermination: true\n          deviceName: /dev/sda\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"adminPass":{"description":"The administrative password to assign to the BMS server.\nChanging this changes the root password on the existing server.\n","type":"string"},"availabilityZone":{"description":"The availability zone in which to create\nthe BMS server.\n","type":"string"},"blockDevices":{"items":{"$ref":"#/types/opentelekomcloud:index%2FComputeBmsServerV2BlockDevice:ComputeBmsServerV2BlockDevice"},"type":"array"},"computeBmsServerV2Id":{"description":"The id of the BMS server.\n","type":"string"},"flavorId":{"description":"The flavor ID of\nthe desired flavor for the BMS server. Changing this resizes the existing BMS server.\n","type":"string"},"flavorName":{"description":"The name of the\ndesired flavor for the BMS server. Changing this resizes the existing BMS server.\n","type":"string"},"imageId":{"description":"Changing this creates a new bms server.\n","type":"string"},"imageName":{"description":"The name of the\ndesired image for the bms server. Changing this creates a new BMS server.\n","type":"string"},"keyPair":{"description":"The name of a key pair to put on the BMS server. The key\npair must already be created and associated with the tenant's account.\nChanging this creates a new BMS server.\n","type":"string"},"metadata":{"additionalProperties":{"type":"string"},"description":"Metadata key/value pairs to make available from\nwithin the instance. Changing this updates the existing BMS server metadata.\n","type":"object"},"name":{"description":"The name of the BMS.\n","type":"string"},"networks":{"description":"An array of one or more networks to attach to the\nBMS instance. Changing this creates a new BMS server.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FComputeBmsServerV2Network:ComputeBmsServerV2Network"},"type":"array"},"region":{"type":"string"},"securityGroups":{"description":"An array of one or more security group names\nto associate with the BMS server. Changing this results in adding/removing\nsecurity groups from the existing BMS server.\n","items":{"type":"string"},"type":"array"},"stopBeforeDestroy":{"description":"Whether to try stop instance gracefully\nbefore destroying it, thus giving chance for guest OS daemons to stop correctly.\nIf instance doesn't stop within timeout, it will be destroyed anyway.\n","type":"boolean"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FComputeBmsServerV2Timeouts:ComputeBmsServerV2Timeouts"},"userData":{"description":"The user data to provide when launching the instance.\nChanging this creates a new BMS server.\n","type":"string"}},"properties":{"accessIpV4":{"type":"string"},"accessIpV6":{"type":"string"},"adminPass":{"description":"The administrative password to assign to the BMS server.\nChanging this changes the root password on the existing server.\n","type":"string"},"availabilityZone":{"description":"The availability zone in which to create\nthe BMS server.\n","type":"string"},"blockDevices":{"items":{"$ref":"#/types/opentelekomcloud:index%2FComputeBmsServerV2BlockDevice:ComputeBmsServerV2BlockDevice"},"type":"array"},"computeBmsServerV2Id":{"description":"The id of the BMS server.\n","type":"string"},"configDrive":{"description":"Whether to use the<span pulumi-lang-nodejs=\" configDrive \" pulumi-lang-dotnet=\" ConfigDrive \" pulumi-lang-go=\" configDrive \" pulumi-lang-python=\" config_drive \" pulumi-lang-yaml=\" configDrive \" pulumi-lang-java=\" configDrive \"> config_drive </span>feature to configure the instance.\n","type":"boolean"},"flavorId":{"description":"The flavor ID of\nthe desired flavor for the BMS server. Changing this resizes the existing BMS server.\n","type":"string"},"flavorName":{"description":"The name of the\ndesired flavor for the BMS server. Changing this resizes the existing BMS server.\n","type":"string"},"hostId":{"type":"string"},"hostStatus":{"description":"The nova-compute status: `UP`, `UNKNOWN`, `DOWN`, `MAINTENANCE` and `Null`.\n","type":"string"},"imageId":{"description":"Changing this creates a new bms server.\n","type":"string"},"imageName":{"description":"The name of the\ndesired image for the bms server. Changing this creates a new BMS server.\n","type":"string"},"kernelId":{"description":"The UUID of the kernel image when the AMI image is used.\n","type":"string"},"keyPair":{"description":"The name of a key pair to put on the BMS server. The key\npair must already be created and associated with the tenant's account.\nChanging this creates a new BMS server.\n","type":"string"},"metadata":{"additionalProperties":{"type":"string"},"description":"Metadata key/value pairs to make available from\nwithin the instance. Changing this updates the existing BMS server metadata.\n","type":"object"},"name":{"description":"The name of the BMS.\n","type":"string"},"networks":{"description":"An array of one or more networks to attach to the\nBMS instance. Changing this creates a new BMS server.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FComputeBmsServerV2Network:ComputeBmsServerV2Network"},"type":"array"},"region":{"type":"string"},"securityGroups":{"description":"An array of one or more security group names\nto associate with the BMS server. Changing this results in adding/removing\nsecurity groups from the existing BMS server.\n","items":{"type":"string"},"type":"array"},"stopBeforeDestroy":{"description":"Whether to try stop instance gracefully\nbefore destroying it, thus giving chance for guest OS daemons to stop correctly.\nIf instance doesn't stop within timeout, it will be destroyed anyway.\n","type":"boolean"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the instance.\n","type":"object"},"tenantId":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FComputeBmsServerV2Timeouts:ComputeBmsServerV2Timeouts"},"userData":{"description":"The user data to provide when launching the instance.\nChanging this creates a new BMS server.\n","type":"string"},"userId":{"description":"The ID of the user to which the BMS belongs.\n","type":"string"}},"required":["accessIpV4","accessIpV6","adminPass","availabilityZone","computeBmsServerV2Id","configDrive","flavorId","flavorName","hostId","hostStatus","imageId","imageName","kernelId","keyPair","name","region","securityGroups","tenantId","userId"],"requiredInputs":["availabilityZone"],"stateInputs":{"description":"Input properties used for looking up and filtering ComputeBmsServerV2 resources.\n","properties":{"accessIpV4":{"type":"string"},"accessIpV6":{"type":"string"},"adminPass":{"description":"The administrative password to assign to the BMS server.\nChanging this changes the root password on the existing server.\n","type":"string"},"availabilityZone":{"description":"The availability zone in which to create\nthe BMS server.\n","type":"string"},"blockDevices":{"items":{"$ref":"#/types/opentelekomcloud:index%2FComputeBmsServerV2BlockDevice:ComputeBmsServerV2BlockDevice"},"type":"array"},"computeBmsServerV2Id":{"description":"The id of the BMS server.\n","type":"string"},"configDrive":{"description":"Whether to use the<span pulumi-lang-nodejs=\" configDrive \" pulumi-lang-dotnet=\" ConfigDrive \" pulumi-lang-go=\" configDrive \" pulumi-lang-python=\" config_drive \" pulumi-lang-yaml=\" configDrive \" pulumi-lang-java=\" configDrive \"> config_drive </span>feature to configure the instance.\n","type":"boolean"},"flavorId":{"description":"The flavor ID of\nthe desired flavor for the BMS server. Changing this resizes the existing BMS server.\n","type":"string"},"flavorName":{"description":"The name of the\ndesired flavor for the BMS server. Changing this resizes the existing BMS server.\n","type":"string"},"hostId":{"type":"string"},"hostStatus":{"description":"The nova-compute status: `UP`, `UNKNOWN`, `DOWN`, `MAINTENANCE` and `Null`.\n","type":"string"},"imageId":{"description":"Changing this creates a new bms server.\n","type":"string"},"imageName":{"description":"The name of the\ndesired image for the bms server. Changing this creates a new BMS server.\n","type":"string"},"kernelId":{"description":"The UUID of the kernel image when the AMI image is used.\n","type":"string"},"keyPair":{"description":"The name of a key pair to put on the BMS server. The key\npair must already be created and associated with the tenant's account.\nChanging this creates a new BMS server.\n","type":"string"},"metadata":{"additionalProperties":{"type":"string"},"description":"Metadata key/value pairs to make available from\nwithin the instance. Changing this updates the existing BMS server metadata.\n","type":"object"},"name":{"description":"The name of the BMS.\n","type":"string"},"networks":{"description":"An array of one or more networks to attach to the\nBMS instance. Changing this creates a new BMS server.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FComputeBmsServerV2Network:ComputeBmsServerV2Network"},"type":"array"},"region":{"type":"string"},"securityGroups":{"description":"An array of one or more security group names\nto associate with the BMS server. Changing this results in adding/removing\nsecurity groups from the existing BMS server.\n","items":{"type":"string"},"type":"array"},"stopBeforeDestroy":{"description":"Whether to try stop instance gracefully\nbefore destroying it, thus giving chance for guest OS daemons to stop correctly.\nIf instance doesn't stop within timeout, it will be destroyed anyway.\n","type":"boolean"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the instance.\n","type":"object"},"tenantId":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FComputeBmsServerV2Timeouts:ComputeBmsServerV2Timeouts"},"userData":{"description":"The user data to provide when launching the instance.\nChanging this creates a new BMS server.\n","type":"string"},"userId":{"description":"The ID of the user to which the BMS belongs.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/computeBmsTagsV2:ComputeBmsTagsV2":{"description":"Used to add tags to a BMS within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst bmsId = config.requireObject<any>(\"bmsId\");\nconst addTags = new opentelekomcloud.ComputeBmsTagsV2(\"add_tags\", {\n    serverId: bmsId,\n    tags: [\"tags_type_baremetal\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nbms_id = config.require_object(\"bmsId\")\nadd_tags = opentelekomcloud.ComputeBmsTagsV2(\"add_tags\",\n    server_id=bms_id,\n    tags=[\"tags_type_baremetal\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var bmsId = config.RequireObject<dynamic>(\"bmsId\");\n    var addTags = new Opentelekomcloud.ComputeBmsTagsV2(\"add_tags\", new()\n    {\n        ServerId = bmsId,\n        Tags = new[]\n        {\n            \"tags_type_baremetal\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tbmsId := cfg.RequireObject(\"bmsId\")\n\t\t_, err := opentelekomcloud.NewComputeBmsTagsV2(ctx, \"add_tags\", &opentelekomcloud.ComputeBmsTagsV2Args{\n\t\t\tServerId: pulumi.Any(bmsId),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"tags_type_baremetal\"),\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.opentelekomcloud.ComputeBmsTagsV2;\nimport com.pulumi.opentelekomcloud.ComputeBmsTagsV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var bmsId = config.get(\"bmsId\");\n        var addTags = new ComputeBmsTagsV2(\"addTags\", ComputeBmsTagsV2Args.builder()\n            .serverId(bmsId)\n            .tags(\"tags_type_baremetal\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  bmsId:\n    type: dynamic\nresources:\n  addTags:\n    type: opentelekomcloud:ComputeBmsTagsV2\n    name: add_tags\n    properties:\n      serverId: ${bmsId}\n      tags:\n        - tags_type_baremetal\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nBMS tags can be imported using the server_id, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/computeBmsTagsV2:ComputeBmsTagsV2 add_tags 4779ab1c-7c1a-44b1-a02e-93dfc361b32d\n```\n\n","inputProperties":{"computeBmsTagsV2Id":{"type":"string"},"region":{"type":"string"},"serverId":{"description":"The unique id of bare metal server.\n","type":"string"},"tags":{"description":"The tags of a BMS. Changing this parameter creates a new resource.\n","items":{"type":"string"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FComputeBmsTagsV2Timeouts:ComputeBmsTagsV2Timeouts"}},"properties":{"computeBmsTagsV2Id":{"type":"string"},"region":{"type":"string"},"serverId":{"description":"The unique id of bare metal server.\n","type":"string"},"tags":{"description":"The tags of a BMS. Changing this parameter creates a new resource.\n","items":{"type":"string"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FComputeBmsTagsV2Timeouts:ComputeBmsTagsV2Timeouts"}},"required":["computeBmsTagsV2Id","region","serverId","tags"],"requiredInputs":["serverId","tags"],"stateInputs":{"description":"Input properties used for looking up and filtering ComputeBmsTagsV2 resources.\n","properties":{"computeBmsTagsV2Id":{"type":"string"},"region":{"type":"string"},"serverId":{"description":"The unique id of bare metal server.\n","type":"string"},"tags":{"description":"The tags of a BMS. Changing this parameter creates a new resource.\n","items":{"type":"string"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FComputeBmsTagsV2Timeouts:ComputeBmsTagsV2Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/computeFloatingipAssociateV2:ComputeFloatingipAssociateV2":{"description":"Up-to-date reference of API arguments for EIP you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-ip/api-ref/native_openstack_neutron_apis_v2.0/floating_ip_address)\n\nAssociate a floating IP to an instance. This can be used instead of the\n<span pulumi-lang-nodejs=\"`floatingIp`\" pulumi-lang-dotnet=\"`FloatingIp`\" pulumi-lang-go=\"`floatingIp`\" pulumi-lang-python=\"`floating_ip`\" pulumi-lang-yaml=\"`floatingIp`\" pulumi-lang-java=\"`floatingIp`\">`floating_ip`</span> options in <span pulumi-lang-nodejs=\"`opentelekomcloud.ComputeInstanceV2`\" pulumi-lang-dotnet=\"`opentelekomcloud.ComputeInstanceV2`\" pulumi-lang-go=\"`ComputeInstanceV2`\" pulumi-lang-python=\"`ComputeInstanceV2`\" pulumi-lang-yaml=\"`opentelekomcloud.ComputeInstanceV2`\" pulumi-lang-java=\"`opentelekomcloud.ComputeInstanceV2`\">`opentelekomcloud.ComputeInstanceV2`</span>.\n\n~>\nFloating IP compute APIs are marked as discarded in [help center](https://docs.otc.t-systems.com/en-us/api/ecs/en-us_topic_0065817682.html).\nPlease use `resource/opentelekomcloud_networking_floatingip_associate_v2`.\n\n## Example Usage\n\n### Automatically detect the correct network\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst instance1 = new opentelekomcloud.ComputeInstanceV2(\"instance_1\", {\n    name: \"instance_1\",\n    imageId: \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavorId: \"3\",\n    keyPair: \"my_key_pair_name\",\n    securityGroups: [\"default\"],\n});\nconst fip1 = new opentelekomcloud.NetworkingFloatingipV2(\"fip_1\", {pool: \"admin_external_net\"});\nconst fip1ComputeFloatingipAssociateV2 = new opentelekomcloud.ComputeFloatingipAssociateV2(\"fip_1\", {\n    floatingIp: fip1.address,\n    instanceId: instance1.computeInstanceV2Id,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ninstance1 = opentelekomcloud.ComputeInstanceV2(\"instance_1\",\n    name=\"instance_1\",\n    image_id=\"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavor_id=\"3\",\n    key_pair=\"my_key_pair_name\",\n    security_groups=[\"default\"])\nfip1 = opentelekomcloud.NetworkingFloatingipV2(\"fip_1\", pool=\"admin_external_net\")\nfip1_compute_floatingip_associate_v2 = opentelekomcloud.ComputeFloatingipAssociateV2(\"fip_1\",\n    floating_ip=fip1.address,\n    instance_id=instance1.compute_instance_v2_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var instance1 = new Opentelekomcloud.ComputeInstanceV2(\"instance_1\", new()\n    {\n        Name = \"instance_1\",\n        ImageId = \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n        FlavorId = \"3\",\n        KeyPair = \"my_key_pair_name\",\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n    });\n\n    var fip1 = new Opentelekomcloud.NetworkingFloatingipV2(\"fip_1\", new()\n    {\n        Pool = \"admin_external_net\",\n    });\n\n    var fip1ComputeFloatingipAssociateV2 = new Opentelekomcloud.ComputeFloatingipAssociateV2(\"fip_1\", new()\n    {\n        FloatingIp = fip1.Address,\n        InstanceId = instance1.ComputeInstanceV2Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinstance1, err := opentelekomcloud.NewComputeInstanceV2(ctx, \"instance_1\", &opentelekomcloud.ComputeInstanceV2Args{\n\t\t\tName:     pulumi.String(\"instance_1\"),\n\t\t\tImageId:  pulumi.String(\"ad091b52-742f-469e-8f3c-fd81cadf0743\"),\n\t\t\tFlavorId: pulumi.String(\"3\"),\n\t\t\tKeyPair:  pulumi.String(\"my_key_pair_name\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfip1, err := opentelekomcloud.NewNetworkingFloatingipV2(ctx, \"fip_1\", &opentelekomcloud.NetworkingFloatingipV2Args{\n\t\t\tPool: pulumi.String(\"admin_external_net\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewComputeFloatingipAssociateV2(ctx, \"fip_1\", &opentelekomcloud.ComputeFloatingipAssociateV2Args{\n\t\t\tFloatingIp: fip1.Address,\n\t\t\tInstanceId: instance1.ComputeInstanceV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingFloatingipV2;\nimport com.pulumi.opentelekomcloud.NetworkingFloatingipV2Args;\nimport com.pulumi.opentelekomcloud.ComputeFloatingipAssociateV2;\nimport com.pulumi.opentelekomcloud.ComputeFloatingipAssociateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var instance1 = new ComputeInstanceV2(\"instance1\", ComputeInstanceV2Args.builder()\n            .name(\"instance_1\")\n            .imageId(\"ad091b52-742f-469e-8f3c-fd81cadf0743\")\n            .flavorId(\"3\")\n            .keyPair(\"my_key_pair_name\")\n            .securityGroups(\"default\")\n            .build());\n\n        var fip1 = new NetworkingFloatingipV2(\"fip1\", NetworkingFloatingipV2Args.builder()\n            .pool(\"admin_external_net\")\n            .build());\n\n        var fip1ComputeFloatingipAssociateV2 = new ComputeFloatingipAssociateV2(\"fip1ComputeFloatingipAssociateV2\", ComputeFloatingipAssociateV2Args.builder()\n            .floatingIp(fip1.address())\n            .instanceId(instance1.computeInstanceV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  instance1:\n    type: opentelekomcloud:ComputeInstanceV2\n    name: instance_1\n    properties:\n      name: instance_1\n      imageId: ad091b52-742f-469e-8f3c-fd81cadf0743\n      flavorId: 3\n      keyPair: my_key_pair_name\n      securityGroups:\n        - default\n  fip1:\n    type: opentelekomcloud:NetworkingFloatingipV2\n    name: fip_1\n    properties:\n      pool: admin_external_net\n  fip1ComputeFloatingipAssociateV2:\n    type: opentelekomcloud:ComputeFloatingipAssociateV2\n    name: fip_1\n    properties:\n      floatingIp: ${fip1.address}\n      instanceId: ${instance1.computeInstanceV2Id}\n```\n<!--End PulumiCodeChooser -->\n\n### Explicitly set the network to attach to\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst instance1 = new opentelekomcloud.ComputeInstanceV2(\"instance_1\", {\n    name: \"instance_1\",\n    imageId: \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavorId: \"3\",\n    keyPair: \"my_key_pair_name\",\n    securityGroups: [\"default\"],\n    networks: [\n        {\n            name: \"my_network\",\n        },\n        {\n            name: \"default\",\n        },\n    ],\n});\nconst fip1 = new opentelekomcloud.NetworkingFloatingipV2(\"fip_1\", {pool: \"admin_external_net\"});\nconst fip1ComputeFloatingipAssociateV2 = new opentelekomcloud.ComputeFloatingipAssociateV2(\"fip_1\", {\n    floatingIp: fip1.address,\n    instanceId: instance1.computeInstanceV2Id,\n    fixedIp: instance1.networks.apply(networks => networks?.[1]?.fixedIpV4),\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ninstance1 = opentelekomcloud.ComputeInstanceV2(\"instance_1\",\n    name=\"instance_1\",\n    image_id=\"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavor_id=\"3\",\n    key_pair=\"my_key_pair_name\",\n    security_groups=[\"default\"],\n    networks=[\n        {\n            \"name\": \"my_network\",\n        },\n        {\n            \"name\": \"default\",\n        },\n    ])\nfip1 = opentelekomcloud.NetworkingFloatingipV2(\"fip_1\", pool=\"admin_external_net\")\nfip1_compute_floatingip_associate_v2 = opentelekomcloud.ComputeFloatingipAssociateV2(\"fip_1\",\n    floating_ip=fip1.address,\n    instance_id=instance1.compute_instance_v2_id,\n    fixed_ip=instance1.networks[1].fixed_ip_v4)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var instance1 = new Opentelekomcloud.ComputeInstanceV2(\"instance_1\", new()\n    {\n        Name = \"instance_1\",\n        ImageId = \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n        FlavorId = \"3\",\n        KeyPair = \"my_key_pair_name\",\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n        Networks = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Name = \"my_network\",\n            },\n            new Opentelekomcloud.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Name = \"default\",\n            },\n        },\n    });\n\n    var fip1 = new Opentelekomcloud.NetworkingFloatingipV2(\"fip_1\", new()\n    {\n        Pool = \"admin_external_net\",\n    });\n\n    var fip1ComputeFloatingipAssociateV2 = new Opentelekomcloud.ComputeFloatingipAssociateV2(\"fip_1\", new()\n    {\n        FloatingIp = fip1.Address,\n        InstanceId = instance1.ComputeInstanceV2Id,\n        FixedIp = instance1.Networks.Apply(networks => networks[1]?.FixedIpV4),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinstance1, err := opentelekomcloud.NewComputeInstanceV2(ctx, \"instance_1\", &opentelekomcloud.ComputeInstanceV2Args{\n\t\t\tName:     pulumi.String(\"instance_1\"),\n\t\t\tImageId:  pulumi.String(\"ad091b52-742f-469e-8f3c-fd81cadf0743\"),\n\t\t\tFlavorId: pulumi.String(\"3\"),\n\t\t\tKeyPair:  pulumi.String(\"my_key_pair_name\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tNetworks: opentelekomcloud.ComputeInstanceV2NetworkArray{\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tName: pulumi.String(\"my_network\"),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tName: pulumi.String(\"default\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfip1, err := opentelekomcloud.NewNetworkingFloatingipV2(ctx, \"fip_1\", &opentelekomcloud.NetworkingFloatingipV2Args{\n\t\t\tPool: pulumi.String(\"admin_external_net\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewComputeFloatingipAssociateV2(ctx, \"fip_1\", &opentelekomcloud.ComputeFloatingipAssociateV2Args{\n\t\t\tFloatingIp: fip1.Address,\n\t\t\tInstanceId: instance1.ComputeInstanceV2Id,\n\t\t\tFixedIp: pulumi.String(instance1.Networks.ApplyT(func(networks []opentelekomcloud.ComputeInstanceV2Network) (*string, error) {\n\t\t\t\treturn &networks[1].FixedIpV4, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2Args;\nimport com.pulumi.opentelekomcloud.inputs.ComputeInstanceV2NetworkArgs;\nimport com.pulumi.opentelekomcloud.NetworkingFloatingipV2;\nimport com.pulumi.opentelekomcloud.NetworkingFloatingipV2Args;\nimport com.pulumi.opentelekomcloud.ComputeFloatingipAssociateV2;\nimport com.pulumi.opentelekomcloud.ComputeFloatingipAssociateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var instance1 = new ComputeInstanceV2(\"instance1\", ComputeInstanceV2Args.builder()\n            .name(\"instance_1\")\n            .imageId(\"ad091b52-742f-469e-8f3c-fd81cadf0743\")\n            .flavorId(\"3\")\n            .keyPair(\"my_key_pair_name\")\n            .securityGroups(\"default\")\n            .networks(            \n                ComputeInstanceV2NetworkArgs.builder()\n                    .name(\"my_network\")\n                    .build(),\n                ComputeInstanceV2NetworkArgs.builder()\n                    .name(\"default\")\n                    .build())\n            .build());\n\n        var fip1 = new NetworkingFloatingipV2(\"fip1\", NetworkingFloatingipV2Args.builder()\n            .pool(\"admin_external_net\")\n            .build());\n\n        var fip1ComputeFloatingipAssociateV2 = new ComputeFloatingipAssociateV2(\"fip1ComputeFloatingipAssociateV2\", ComputeFloatingipAssociateV2Args.builder()\n            .floatingIp(fip1.address())\n            .instanceId(instance1.computeInstanceV2Id())\n            .fixedIp(instance1.networks().applyValue(_networks -> _networks[1].fixedIpV4()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  instance1:\n    type: opentelekomcloud:ComputeInstanceV2\n    name: instance_1\n    properties:\n      name: instance_1\n      imageId: ad091b52-742f-469e-8f3c-fd81cadf0743\n      flavorId: 3\n      keyPair: my_key_pair_name\n      securityGroups:\n        - default\n      networks:\n        - name: my_network\n        - name: default\n  fip1:\n    type: opentelekomcloud:NetworkingFloatingipV2\n    name: fip_1\n    properties:\n      pool: admin_external_net\n  fip1ComputeFloatingipAssociateV2:\n    type: opentelekomcloud:ComputeFloatingipAssociateV2\n    name: fip_1\n    properties:\n      floatingIp: ${fip1.address}\n      instanceId: ${instance1.computeInstanceV2Id}\n      fixedIp: ${instance1.networks[1].fixedIpV4}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThis resource can be imported by specifying all three arguments, separated\n\nby a forward slash:\n\n```sh\n$ pulumi import opentelekomcloud:index/computeFloatingipAssociateV2:ComputeFloatingipAssociateV2 fip_1 <floating_ip>/<instance_id>/<fixed_ip>\n```\n\n","inputProperties":{"computeFloatingipAssociateV2Id":{"type":"string"},"fixedIp":{"description":"The specific IP address to direct traffic to.\n","type":"string"},"floatingIp":{"description":"The floating IP to associate.\n","type":"string"},"instanceId":{"description":"The instance to associte the floating IP with.\n","type":"string"},"region":{"type":"string"}},"properties":{"computeFloatingipAssociateV2Id":{"type":"string"},"fixedIp":{"description":"The specific IP address to direct traffic to.\n","type":"string"},"floatingIp":{"description":"The floating IP to associate.\n","type":"string"},"instanceId":{"description":"The instance to associte the floating IP with.\n","type":"string"},"region":{"type":"string"}},"required":["computeFloatingipAssociateV2Id","floatingIp","instanceId","region"],"requiredInputs":["floatingIp","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering ComputeFloatingipAssociateV2 resources.\n","properties":{"computeFloatingipAssociateV2Id":{"type":"string"},"fixedIp":{"description":"The specific IP address to direct traffic to.\n","type":"string"},"floatingIp":{"description":"The floating IP to associate.\n","type":"string"},"instanceId":{"description":"The instance to associte the floating IP with.\n","type":"string"},"region":{"type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/computeFloatingipV2:ComputeFloatingipV2":{"description":"Up-to-date reference of API arguments for EIP you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-ip/api-ref/native_openstack_neutron_apis_v2.0/floating_ip_address)\n\nManages a V2 floating IP resource within OpenTelekomCloud Nova (compute)\nthat can be used for compute instances.\nThese are similar to Neutron (networking) floating IP resources,\nbut only networking floating IPs can be used with load balancers.\n\nFloating IPs created with this module will have a bandwidth of 1000Mbit/s,\nfor manually specifying the bandwidth please use the\n<span pulumi-lang-nodejs=\"`opentelekomcloud.VpcEipV1`\" pulumi-lang-dotnet=\"`opentelekomcloud.VpcEipV1`\" pulumi-lang-go=\"`VpcEipV1`\" pulumi-lang-python=\"`VpcEipV1`\" pulumi-lang-yaml=\"`opentelekomcloud.VpcEipV1`\" pulumi-lang-java=\"`opentelekomcloud.VpcEipV1`\">`opentelekomcloud.VpcEipV1`</span> module.\n\n~>\nFloating IP compute APIs are marked as discarded in [help center](https://docs.otc.t-systems.com/en-us/api/ecs/en-us_topic_0065817682.html).\nPlease use `resource/opentelekomcloud_networking_floatingip_v2` or\n`resource/opentelekomcloud_vpc_eip_v1`.\n\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst floatip1 = new opentelekomcloud.ComputeFloatingipV2(\"floatip_1\", {});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nfloatip1 = opentelekomcloud.ComputeFloatingipV2(\"floatip_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var floatip1 = new Opentelekomcloud.ComputeFloatingipV2(\"floatip_1\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewComputeFloatingipV2(ctx, \"floatip_1\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ComputeFloatingipV2;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var floatip1 = new ComputeFloatingipV2(\"floatip1\");\n\n    }\n}\n```\n```yaml\nresources:\n  floatip1:\n    type: opentelekomcloud:ComputeFloatingipV2\n    name: floatip_1\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nFloating IPs can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/computeFloatingipV2:ComputeFloatingipV2 floatip_1 89c60255-9bd6-460c-822a-e2b959ede9d2\n```\n\n","inputProperties":{"computeFloatingipV2Id":{"type":"string"},"pool":{"description":"The name of the pool from which to obtain the floating\nIP. Default value is admin_external_net. Changing this creates a new floating IP.\n","type":"string"},"region":{"type":"string"}},"properties":{"address":{"description":"The actual floating IP address itself.\n","type":"string"},"computeFloatingipV2Id":{"type":"string"},"fixedIp":{"description":"The fixed IP address corresponding to the floating IP.\n","type":"string"},"instanceId":{"description":"UUID of the compute instance associated with the floating IP.\n","type":"string"},"pool":{"description":"The name of the pool from which to obtain the floating\nIP. Default value is admin_external_net. Changing this creates a new floating IP.\n","type":"string"},"region":{"type":"string"}},"required":["address","computeFloatingipV2Id","fixedIp","instanceId","region"],"stateInputs":{"description":"Input properties used for looking up and filtering ComputeFloatingipV2 resources.\n","properties":{"address":{"description":"The actual floating IP address itself.\n","type":"string"},"computeFloatingipV2Id":{"type":"string"},"fixedIp":{"description":"The fixed IP address corresponding to the floating IP.\n","type":"string"},"instanceId":{"description":"UUID of the compute instance associated with the floating IP.\n","type":"string"},"pool":{"description":"The name of the pool from which to obtain the floating\nIP. Default value is admin_external_net. Changing this creates a new floating IP.\n","type":"string"},"region":{"type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/computeInstanceV2:ComputeInstanceV2":{"description":"Up-to-date reference of API arguments for ECS management you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-cloud-server/api-ref/openstack_nova_apis/lifecycle_management)\n\n\nManages a V2 VM instance resource within OpenTelekomCloud.\n\n> **NOTE:** Compute v2 API that are used in this resource aren't officially supported on SwissCloud.\n\n## Example Usage\n\n### Basic Instance\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst imageId = config.requireObject<any>(\"imageId\");\nconst basic = new opentelekomcloud.ComputeInstanceV2(\"basic\", {\n    name: \"basic\",\n    imageId: imageId,\n    flavorId: \"s2.large.4\",\n    keyPair: \"my_key_pair_name\",\n    securityGroups: [\"default\"],\n    networks: [{\n        name: \"my_network\",\n    }],\n    metadata: {\n        \"this\": \"that\",\n    },\n    tags: {\n        muh: \"kuh\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nimage_id = config.require_object(\"imageId\")\nbasic = opentelekomcloud.ComputeInstanceV2(\"basic\",\n    name=\"basic\",\n    image_id=image_id,\n    flavor_id=\"s2.large.4\",\n    key_pair=\"my_key_pair_name\",\n    security_groups=[\"default\"],\n    networks=[{\n        \"name\": \"my_network\",\n    }],\n    metadata={\n        \"this\": \"that\",\n    },\n    tags={\n        \"muh\": \"kuh\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var imageId = config.RequireObject<dynamic>(\"imageId\");\n    var basic = new Opentelekomcloud.ComputeInstanceV2(\"basic\", new()\n    {\n        Name = \"basic\",\n        ImageId = imageId,\n        FlavorId = \"s2.large.4\",\n        KeyPair = \"my_key_pair_name\",\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n        Networks = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Name = \"my_network\",\n            },\n        },\n        Metadata = \n        {\n            { \"this\", \"that\" },\n        },\n        Tags = \n        {\n            { \"muh\", \"kuh\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\timageId := cfg.RequireObject(\"imageId\")\n\t\t_, err := opentelekomcloud.NewComputeInstanceV2(ctx, \"basic\", &opentelekomcloud.ComputeInstanceV2Args{\n\t\t\tName:     pulumi.String(\"basic\"),\n\t\t\tImageId:  pulumi.Any(imageId),\n\t\t\tFlavorId: pulumi.String(\"s2.large.4\"),\n\t\t\tKeyPair:  pulumi.String(\"my_key_pair_name\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tNetworks: opentelekomcloud.ComputeInstanceV2NetworkArray{\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tName: pulumi.String(\"my_network\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetadata: pulumi.StringMap{\n\t\t\t\t\"this\": pulumi.String(\"that\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"muh\": pulumi.String(\"kuh\"),\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.opentelekomcloud.ComputeInstanceV2;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2Args;\nimport com.pulumi.opentelekomcloud.inputs.ComputeInstanceV2NetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var imageId = config.get(\"imageId\");\n        var basic = new ComputeInstanceV2(\"basic\", ComputeInstanceV2Args.builder()\n            .name(\"basic\")\n            .imageId(imageId)\n            .flavorId(\"s2.large.4\")\n            .keyPair(\"my_key_pair_name\")\n            .securityGroups(\"default\")\n            .networks(ComputeInstanceV2NetworkArgs.builder()\n                .name(\"my_network\")\n                .build())\n            .metadata(Map.of(\"this\", \"that\"))\n            .tags(Map.of(\"muh\", \"kuh\"))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  imageId:\n    type: dynamic\nresources:\n  basic:\n    type: opentelekomcloud:ComputeInstanceV2\n    properties:\n      name: basic\n      imageId: ${imageId}\n      flavorId: s2.large.4\n      keyPair: my_key_pair_name\n      securityGroups:\n        - default\n      networks:\n        - name: my_network\n      metadata:\n        this: that\n      tags:\n        muh: kuh\n```\n<!--End PulumiCodeChooser -->\n\n### Instance With Attached Volume\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst imageId = config.requireObject<any>(\"imageId\");\nconst myvol = new opentelekomcloud.BlockstorageVolumeV2(\"myvol\", {\n    name: \"myvol\",\n    size: 4,\n});\nconst myinstance = new opentelekomcloud.ComputeInstanceV2(\"myinstance\", {\n    name: \"myinstance\",\n    imageId: imageId,\n    flavorId: \"s2.large.4\",\n    keyPair: \"my_key_pair_name\",\n    securityGroups: [\"default\"],\n    networks: [{\n        name: \"my_network\",\n    }],\n});\nconst attached = new opentelekomcloud.ComputeVolumeAttachV2(\"attached\", {\n    instanceId: myinstance.computeInstanceV2Id,\n    volumeId: myvol.blockstorageVolumeV2Id,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nimage_id = config.require_object(\"imageId\")\nmyvol = opentelekomcloud.BlockstorageVolumeV2(\"myvol\",\n    name=\"myvol\",\n    size=4)\nmyinstance = opentelekomcloud.ComputeInstanceV2(\"myinstance\",\n    name=\"myinstance\",\n    image_id=image_id,\n    flavor_id=\"s2.large.4\",\n    key_pair=\"my_key_pair_name\",\n    security_groups=[\"default\"],\n    networks=[{\n        \"name\": \"my_network\",\n    }])\nattached = opentelekomcloud.ComputeVolumeAttachV2(\"attached\",\n    instance_id=myinstance.compute_instance_v2_id,\n    volume_id=myvol.blockstorage_volume_v2_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var imageId = config.RequireObject<dynamic>(\"imageId\");\n    var myvol = new Opentelekomcloud.BlockstorageVolumeV2(\"myvol\", new()\n    {\n        Name = \"myvol\",\n        Size = 4,\n    });\n\n    var myinstance = new Opentelekomcloud.ComputeInstanceV2(\"myinstance\", new()\n    {\n        Name = \"myinstance\",\n        ImageId = imageId,\n        FlavorId = \"s2.large.4\",\n        KeyPair = \"my_key_pair_name\",\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n        Networks = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Name = \"my_network\",\n            },\n        },\n    });\n\n    var attached = new Opentelekomcloud.ComputeVolumeAttachV2(\"attached\", new()\n    {\n        InstanceId = myinstance.ComputeInstanceV2Id,\n        VolumeId = myvol.BlockstorageVolumeV2Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\timageId := cfg.RequireObject(\"imageId\")\n\t\tmyvol, err := opentelekomcloud.NewBlockstorageVolumeV2(ctx, \"myvol\", &opentelekomcloud.BlockstorageVolumeV2Args{\n\t\t\tName: pulumi.String(\"myvol\"),\n\t\t\tSize: pulumi.Float64(4),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyinstance, err := opentelekomcloud.NewComputeInstanceV2(ctx, \"myinstance\", &opentelekomcloud.ComputeInstanceV2Args{\n\t\t\tName:     pulumi.String(\"myinstance\"),\n\t\t\tImageId:  pulumi.Any(imageId),\n\t\t\tFlavorId: pulumi.String(\"s2.large.4\"),\n\t\t\tKeyPair:  pulumi.String(\"my_key_pair_name\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tNetworks: opentelekomcloud.ComputeInstanceV2NetworkArray{\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tName: pulumi.String(\"my_network\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewComputeVolumeAttachV2(ctx, \"attached\", &opentelekomcloud.ComputeVolumeAttachV2Args{\n\t\t\tInstanceId: myinstance.ComputeInstanceV2Id,\n\t\t\tVolumeId:   myvol.BlockstorageVolumeV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.BlockstorageVolumeV2;\nimport com.pulumi.opentelekomcloud.BlockstorageVolumeV2Args;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2Args;\nimport com.pulumi.opentelekomcloud.inputs.ComputeInstanceV2NetworkArgs;\nimport com.pulumi.opentelekomcloud.ComputeVolumeAttachV2;\nimport com.pulumi.opentelekomcloud.ComputeVolumeAttachV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var imageId = config.get(\"imageId\");\n        var myvol = new BlockstorageVolumeV2(\"myvol\", BlockstorageVolumeV2Args.builder()\n            .name(\"myvol\")\n            .size(4.0)\n            .build());\n\n        var myinstance = new ComputeInstanceV2(\"myinstance\", ComputeInstanceV2Args.builder()\n            .name(\"myinstance\")\n            .imageId(imageId)\n            .flavorId(\"s2.large.4\")\n            .keyPair(\"my_key_pair_name\")\n            .securityGroups(\"default\")\n            .networks(ComputeInstanceV2NetworkArgs.builder()\n                .name(\"my_network\")\n                .build())\n            .build());\n\n        var attached = new ComputeVolumeAttachV2(\"attached\", ComputeVolumeAttachV2Args.builder()\n            .instanceId(myinstance.computeInstanceV2Id())\n            .volumeId(myvol.blockstorageVolumeV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  imageId:\n    type: dynamic\nresources:\n  myvol:\n    type: opentelekomcloud:BlockstorageVolumeV2\n    properties:\n      name: myvol\n      size: 4\n  myinstance:\n    type: opentelekomcloud:ComputeInstanceV2\n    properties:\n      name: myinstance\n      imageId: ${imageId}\n      flavorId: s2.large.4\n      keyPair: my_key_pair_name\n      securityGroups:\n        - default\n      networks:\n        - name: my_network\n  attached:\n    type: opentelekomcloud:ComputeVolumeAttachV2\n    properties:\n      instanceId: ${myinstance.computeInstanceV2Id}\n      volumeId: ${myvol.blockstorageVolumeV2Id}\n```\n<!--End PulumiCodeChooser -->\n\n### Boot From Volume\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst imageId = config.requireObject<any>(\"imageId\");\nconst boot_from_volume = new opentelekomcloud.ComputeInstanceV2(\"boot-from-volume\", {\n    name: \"boot-from-volume\",\n    flavorId: \"s2.large.4\",\n    keyPair: \"my_key_pair_name\",\n    securityGroups: [\"default\"],\n    blockDevices: [{\n        uuid: imageId,\n        sourceType: \"image\",\n        volumeSize: 5,\n        bootIndex: 0,\n        destinationType: \"volume\",\n        deleteOnTermination: true,\n        volumeType: \"SSD\",\n    }],\n    networks: [{\n        name: \"my_network\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nimage_id = config.require_object(\"imageId\")\nboot_from_volume = opentelekomcloud.ComputeInstanceV2(\"boot-from-volume\",\n    name=\"boot-from-volume\",\n    flavor_id=\"s2.large.4\",\n    key_pair=\"my_key_pair_name\",\n    security_groups=[\"default\"],\n    block_devices=[{\n        \"uuid\": image_id,\n        \"source_type\": \"image\",\n        \"volume_size\": 5,\n        \"boot_index\": 0,\n        \"destination_type\": \"volume\",\n        \"delete_on_termination\": True,\n        \"volume_type\": \"SSD\",\n    }],\n    networks=[{\n        \"name\": \"my_network\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var imageId = config.RequireObject<dynamic>(\"imageId\");\n    var boot_from_volume = new Opentelekomcloud.ComputeInstanceV2(\"boot-from-volume\", new()\n    {\n        Name = \"boot-from-volume\",\n        FlavorId = \"s2.large.4\",\n        KeyPair = \"my_key_pair_name\",\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n        BlockDevices = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeInstanceV2BlockDeviceArgs\n            {\n                Uuid = imageId,\n                SourceType = \"image\",\n                VolumeSize = 5,\n                BootIndex = 0,\n                DestinationType = \"volume\",\n                DeleteOnTermination = true,\n                VolumeType = \"SSD\",\n            },\n        },\n        Networks = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Name = \"my_network\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\timageId := cfg.RequireObject(\"imageId\")\n\t\t_, err := opentelekomcloud.NewComputeInstanceV2(ctx, \"boot-from-volume\", &opentelekomcloud.ComputeInstanceV2Args{\n\t\t\tName:     pulumi.String(\"boot-from-volume\"),\n\t\t\tFlavorId: pulumi.String(\"s2.large.4\"),\n\t\t\tKeyPair:  pulumi.String(\"my_key_pair_name\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tBlockDevices: opentelekomcloud.ComputeInstanceV2BlockDeviceArray{\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2BlockDeviceArgs{\n\t\t\t\t\tUuid:                pulumi.Any(imageId),\n\t\t\t\t\tSourceType:          pulumi.String(\"image\"),\n\t\t\t\t\tVolumeSize:          pulumi.Float64(5),\n\t\t\t\t\tBootIndex:           pulumi.Float64(0),\n\t\t\t\t\tDestinationType:     pulumi.String(\"volume\"),\n\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t\tVolumeType:          pulumi.String(\"SSD\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNetworks: opentelekomcloud.ComputeInstanceV2NetworkArray{\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tName: pulumi.String(\"my_network\"),\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.opentelekomcloud.ComputeInstanceV2;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2Args;\nimport com.pulumi.opentelekomcloud.inputs.ComputeInstanceV2BlockDeviceArgs;\nimport com.pulumi.opentelekomcloud.inputs.ComputeInstanceV2NetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var imageId = config.get(\"imageId\");\n        var boot_from_volume = new ComputeInstanceV2(\"boot-from-volume\", ComputeInstanceV2Args.builder()\n            .name(\"boot-from-volume\")\n            .flavorId(\"s2.large.4\")\n            .keyPair(\"my_key_pair_name\")\n            .securityGroups(\"default\")\n            .blockDevices(ComputeInstanceV2BlockDeviceArgs.builder()\n                .uuid(imageId)\n                .sourceType(\"image\")\n                .volumeSize(5.0)\n                .bootIndex(0.0)\n                .destinationType(\"volume\")\n                .deleteOnTermination(true)\n                .volumeType(\"SSD\")\n                .build())\n            .networks(ComputeInstanceV2NetworkArgs.builder()\n                .name(\"my_network\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  imageId:\n    type: dynamic\nresources:\n  boot-from-volume:\n    type: opentelekomcloud:ComputeInstanceV2\n    properties:\n      name: boot-from-volume\n      flavorId: s2.large.4\n      keyPair: my_key_pair_name\n      securityGroups:\n        - default\n      blockDevices:\n        - uuid: ${imageId}\n          sourceType: image\n          volumeSize: 5\n          bootIndex: 0\n          destinationType: volume\n          deleteOnTermination: true\n          volumeType: SSD\n      networks:\n        - name: my_network\n```\n<!--End PulumiCodeChooser -->\n\n### Boot From an Existing Volume\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst imageId = config.requireObject<any>(\"imageId\");\nconst myvol = new opentelekomcloud.BlockstorageVolumeV2(\"myvol\", {\n    name: \"myvol\",\n    size: 5,\n    imageId: imageId,\n});\nconst boot_from_volume = new opentelekomcloud.ComputeInstanceV2(\"boot-from-volume\", {\n    name: \"bootfromvolume\",\n    flavorId: \"s2.large.4\",\n    keyPair: \"my_key_pair_name\",\n    securityGroups: [\"default\"],\n    blockDevices: [{\n        uuid: myvol.blockstorageVolumeV2Id,\n        sourceType: \"volume\",\n        bootIndex: 0,\n        destinationType: \"volume\",\n        deleteOnTermination: true,\n    }],\n    networks: [{\n        name: \"my_network\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nimage_id = config.require_object(\"imageId\")\nmyvol = opentelekomcloud.BlockstorageVolumeV2(\"myvol\",\n    name=\"myvol\",\n    size=5,\n    image_id=image_id)\nboot_from_volume = opentelekomcloud.ComputeInstanceV2(\"boot-from-volume\",\n    name=\"bootfromvolume\",\n    flavor_id=\"s2.large.4\",\n    key_pair=\"my_key_pair_name\",\n    security_groups=[\"default\"],\n    block_devices=[{\n        \"uuid\": myvol.blockstorage_volume_v2_id,\n        \"source_type\": \"volume\",\n        \"boot_index\": 0,\n        \"destination_type\": \"volume\",\n        \"delete_on_termination\": True,\n    }],\n    networks=[{\n        \"name\": \"my_network\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var imageId = config.RequireObject<dynamic>(\"imageId\");\n    var myvol = new Opentelekomcloud.BlockstorageVolumeV2(\"myvol\", new()\n    {\n        Name = \"myvol\",\n        Size = 5,\n        ImageId = imageId,\n    });\n\n    var boot_from_volume = new Opentelekomcloud.ComputeInstanceV2(\"boot-from-volume\", new()\n    {\n        Name = \"bootfromvolume\",\n        FlavorId = \"s2.large.4\",\n        KeyPair = \"my_key_pair_name\",\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n        BlockDevices = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeInstanceV2BlockDeviceArgs\n            {\n                Uuid = myvol.BlockstorageVolumeV2Id,\n                SourceType = \"volume\",\n                BootIndex = 0,\n                DestinationType = \"volume\",\n                DeleteOnTermination = true,\n            },\n        },\n        Networks = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Name = \"my_network\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\timageId := cfg.RequireObject(\"imageId\")\n\t\tmyvol, err := opentelekomcloud.NewBlockstorageVolumeV2(ctx, \"myvol\", &opentelekomcloud.BlockstorageVolumeV2Args{\n\t\t\tName:    pulumi.String(\"myvol\"),\n\t\t\tSize:    pulumi.Float64(5),\n\t\t\tImageId: pulumi.Any(imageId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewComputeInstanceV2(ctx, \"boot-from-volume\", &opentelekomcloud.ComputeInstanceV2Args{\n\t\t\tName:     pulumi.String(\"bootfromvolume\"),\n\t\t\tFlavorId: pulumi.String(\"s2.large.4\"),\n\t\t\tKeyPair:  pulumi.String(\"my_key_pair_name\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tBlockDevices: opentelekomcloud.ComputeInstanceV2BlockDeviceArray{\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2BlockDeviceArgs{\n\t\t\t\t\tUuid:                myvol.BlockstorageVolumeV2Id,\n\t\t\t\t\tSourceType:          pulumi.String(\"volume\"),\n\t\t\t\t\tBootIndex:           pulumi.Float64(0),\n\t\t\t\t\tDestinationType:     pulumi.String(\"volume\"),\n\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNetworks: opentelekomcloud.ComputeInstanceV2NetworkArray{\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tName: pulumi.String(\"my_network\"),\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.opentelekomcloud.BlockstorageVolumeV2;\nimport com.pulumi.opentelekomcloud.BlockstorageVolumeV2Args;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2Args;\nimport com.pulumi.opentelekomcloud.inputs.ComputeInstanceV2BlockDeviceArgs;\nimport com.pulumi.opentelekomcloud.inputs.ComputeInstanceV2NetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var imageId = config.get(\"imageId\");\n        var myvol = new BlockstorageVolumeV2(\"myvol\", BlockstorageVolumeV2Args.builder()\n            .name(\"myvol\")\n            .size(5.0)\n            .imageId(imageId)\n            .build());\n\n        var boot_from_volume = new ComputeInstanceV2(\"boot-from-volume\", ComputeInstanceV2Args.builder()\n            .name(\"bootfromvolume\")\n            .flavorId(\"s2.large.4\")\n            .keyPair(\"my_key_pair_name\")\n            .securityGroups(\"default\")\n            .blockDevices(ComputeInstanceV2BlockDeviceArgs.builder()\n                .uuid(myvol.blockstorageVolumeV2Id())\n                .sourceType(\"volume\")\n                .bootIndex(0.0)\n                .destinationType(\"volume\")\n                .deleteOnTermination(true)\n                .build())\n            .networks(ComputeInstanceV2NetworkArgs.builder()\n                .name(\"my_network\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  imageId:\n    type: dynamic\nresources:\n  myvol:\n    type: opentelekomcloud:BlockstorageVolumeV2\n    properties:\n      name: myvol\n      size: 5\n      imageId: ${imageId}\n  boot-from-volume:\n    type: opentelekomcloud:ComputeInstanceV2\n    properties:\n      name: bootfromvolume\n      flavorId: s2.large.4\n      keyPair: my_key_pair_name\n      securityGroups:\n        - default\n      blockDevices:\n        - uuid: ${myvol.blockstorageVolumeV2Id}\n          sourceType: volume\n          bootIndex: 0\n          destinationType: volume\n          deleteOnTermination: true\n      networks:\n        - name: my_network\n```\n<!--End PulumiCodeChooser -->\n\n### Boot Instance, Create Volume, and Attach Volume as a Block Device\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst imageId = config.requireObject<any>(\"imageId\");\nconst dataImageId = config.requireObject<any>(\"dataImageId\");\nconst instance1 = new opentelekomcloud.ComputeInstanceV2(\"instance_1\", {\n    name: \"instance_1\",\n    imageId: imageId,\n    flavorId: \"s2.large.4\",\n    keyPair: \"my_key_pair_name\",\n    securityGroups: [\"default\"],\n    blockDevices: [\n        {\n            uuid: dataImageId,\n            sourceType: \"image\",\n            destinationType: \"volume\",\n            bootIndex: 0,\n            deleteOnTermination: true,\n        },\n        {\n            sourceType: \"blank\",\n            destinationType: \"volume\",\n            volumeSize: 1,\n            bootIndex: 1,\n            deleteOnTermination: true,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nimage_id = config.require_object(\"imageId\")\ndata_image_id = config.require_object(\"dataImageId\")\ninstance1 = opentelekomcloud.ComputeInstanceV2(\"instance_1\",\n    name=\"instance_1\",\n    image_id=image_id,\n    flavor_id=\"s2.large.4\",\n    key_pair=\"my_key_pair_name\",\n    security_groups=[\"default\"],\n    block_devices=[\n        {\n            \"uuid\": data_image_id,\n            \"source_type\": \"image\",\n            \"destination_type\": \"volume\",\n            \"boot_index\": 0,\n            \"delete_on_termination\": True,\n        },\n        {\n            \"source_type\": \"blank\",\n            \"destination_type\": \"volume\",\n            \"volume_size\": 1,\n            \"boot_index\": 1,\n            \"delete_on_termination\": True,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var imageId = config.RequireObject<dynamic>(\"imageId\");\n    var dataImageId = config.RequireObject<dynamic>(\"dataImageId\");\n    var instance1 = new Opentelekomcloud.ComputeInstanceV2(\"instance_1\", new()\n    {\n        Name = \"instance_1\",\n        ImageId = imageId,\n        FlavorId = \"s2.large.4\",\n        KeyPair = \"my_key_pair_name\",\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n        BlockDevices = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeInstanceV2BlockDeviceArgs\n            {\n                Uuid = dataImageId,\n                SourceType = \"image\",\n                DestinationType = \"volume\",\n                BootIndex = 0,\n                DeleteOnTermination = true,\n            },\n            new Opentelekomcloud.Inputs.ComputeInstanceV2BlockDeviceArgs\n            {\n                SourceType = \"blank\",\n                DestinationType = \"volume\",\n                VolumeSize = 1,\n                BootIndex = 1,\n                DeleteOnTermination = true,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\timageId := cfg.RequireObject(\"imageId\")\n\t\tdataImageId := cfg.RequireObject(\"dataImageId\")\n\t\t_, err := opentelekomcloud.NewComputeInstanceV2(ctx, \"instance_1\", &opentelekomcloud.ComputeInstanceV2Args{\n\t\t\tName:     pulumi.String(\"instance_1\"),\n\t\t\tImageId:  pulumi.Any(imageId),\n\t\t\tFlavorId: pulumi.String(\"s2.large.4\"),\n\t\t\tKeyPair:  pulumi.String(\"my_key_pair_name\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tBlockDevices: opentelekomcloud.ComputeInstanceV2BlockDeviceArray{\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2BlockDeviceArgs{\n\t\t\t\t\tUuid:                pulumi.Any(dataImageId),\n\t\t\t\t\tSourceType:          pulumi.String(\"image\"),\n\t\t\t\t\tDestinationType:     pulumi.String(\"volume\"),\n\t\t\t\t\tBootIndex:           pulumi.Float64(0),\n\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2BlockDeviceArgs{\n\t\t\t\t\tSourceType:          pulumi.String(\"blank\"),\n\t\t\t\t\tDestinationType:     pulumi.String(\"volume\"),\n\t\t\t\t\tVolumeSize:          pulumi.Float64(1),\n\t\t\t\t\tBootIndex:           pulumi.Float64(1),\n\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2Args;\nimport com.pulumi.opentelekomcloud.inputs.ComputeInstanceV2BlockDeviceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var imageId = config.get(\"imageId\");\n        final var dataImageId = config.get(\"dataImageId\");\n        var instance1 = new ComputeInstanceV2(\"instance1\", ComputeInstanceV2Args.builder()\n            .name(\"instance_1\")\n            .imageId(imageId)\n            .flavorId(\"s2.large.4\")\n            .keyPair(\"my_key_pair_name\")\n            .securityGroups(\"default\")\n            .blockDevices(            \n                ComputeInstanceV2BlockDeviceArgs.builder()\n                    .uuid(dataImageId)\n                    .sourceType(\"image\")\n                    .destinationType(\"volume\")\n                    .bootIndex(0.0)\n                    .deleteOnTermination(true)\n                    .build(),\n                ComputeInstanceV2BlockDeviceArgs.builder()\n                    .sourceType(\"blank\")\n                    .destinationType(\"volume\")\n                    .volumeSize(1.0)\n                    .bootIndex(1.0)\n                    .deleteOnTermination(true)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  imageId:\n    type: dynamic\n  dataImageId:\n    type: dynamic\nresources:\n  instance1:\n    type: opentelekomcloud:ComputeInstanceV2\n    name: instance_1\n    properties:\n      name: instance_1\n      imageId: ${imageId}\n      flavorId: s2.large.4\n      keyPair: my_key_pair_name\n      securityGroups:\n        - default\n      blockDevices:\n        - uuid: ${dataImageId}\n          sourceType: image\n          destinationType: volume\n          bootIndex: 0\n          deleteOnTermination: true\n        - sourceType: blank\n          destinationType: volume\n          volumeSize: 1\n          bootIndex: 1\n          deleteOnTermination: true\n```\n<!--End PulumiCodeChooser -->\n\n### Boot Instance and Attach Existing Volume as a Block Device\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst imageId = config.requireObject<any>(\"imageId\");\nconst dataImageId = config.requireObject<any>(\"dataImageId\");\nconst volume1 = new opentelekomcloud.BlockstorageVolumeV2(\"volume_1\", {\n    name: \"volume_1\",\n    size: 1,\n});\nconst instance1 = new opentelekomcloud.ComputeInstanceV2(\"instance_1\", {\n    name: \"instance_1\",\n    imageId: imageId,\n    flavorId: \"s2.large.4\",\n    keyPair: \"my_key_pair_name\",\n    securityGroups: [\"default\"],\n    blockDevices: [\n        {\n            uuid: dataImageId,\n            sourceType: \"image\",\n            destinationType: \"volume\",\n            bootIndex: 0,\n            deleteOnTermination: true,\n        },\n        {\n            uuid: volume1.blockstorageVolumeV2Id,\n            sourceType: \"volume\",\n            destinationType: \"volume\",\n            bootIndex: 1,\n            deleteOnTermination: true,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nimage_id = config.require_object(\"imageId\")\ndata_image_id = config.require_object(\"dataImageId\")\nvolume1 = opentelekomcloud.BlockstorageVolumeV2(\"volume_1\",\n    name=\"volume_1\",\n    size=1)\ninstance1 = opentelekomcloud.ComputeInstanceV2(\"instance_1\",\n    name=\"instance_1\",\n    image_id=image_id,\n    flavor_id=\"s2.large.4\",\n    key_pair=\"my_key_pair_name\",\n    security_groups=[\"default\"],\n    block_devices=[\n        {\n            \"uuid\": data_image_id,\n            \"source_type\": \"image\",\n            \"destination_type\": \"volume\",\n            \"boot_index\": 0,\n            \"delete_on_termination\": True,\n        },\n        {\n            \"uuid\": volume1.blockstorage_volume_v2_id,\n            \"source_type\": \"volume\",\n            \"destination_type\": \"volume\",\n            \"boot_index\": 1,\n            \"delete_on_termination\": True,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var imageId = config.RequireObject<dynamic>(\"imageId\");\n    var dataImageId = config.RequireObject<dynamic>(\"dataImageId\");\n    var volume1 = new Opentelekomcloud.BlockstorageVolumeV2(\"volume_1\", new()\n    {\n        Name = \"volume_1\",\n        Size = 1,\n    });\n\n    var instance1 = new Opentelekomcloud.ComputeInstanceV2(\"instance_1\", new()\n    {\n        Name = \"instance_1\",\n        ImageId = imageId,\n        FlavorId = \"s2.large.4\",\n        KeyPair = \"my_key_pair_name\",\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n        BlockDevices = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeInstanceV2BlockDeviceArgs\n            {\n                Uuid = dataImageId,\n                SourceType = \"image\",\n                DestinationType = \"volume\",\n                BootIndex = 0,\n                DeleteOnTermination = true,\n            },\n            new Opentelekomcloud.Inputs.ComputeInstanceV2BlockDeviceArgs\n            {\n                Uuid = volume1.BlockstorageVolumeV2Id,\n                SourceType = \"volume\",\n                DestinationType = \"volume\",\n                BootIndex = 1,\n                DeleteOnTermination = true,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\timageId := cfg.RequireObject(\"imageId\")\n\t\tdataImageId := cfg.RequireObject(\"dataImageId\")\n\t\tvolume1, err := opentelekomcloud.NewBlockstorageVolumeV2(ctx, \"volume_1\", &opentelekomcloud.BlockstorageVolumeV2Args{\n\t\t\tName: pulumi.String(\"volume_1\"),\n\t\t\tSize: pulumi.Float64(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewComputeInstanceV2(ctx, \"instance_1\", &opentelekomcloud.ComputeInstanceV2Args{\n\t\t\tName:     pulumi.String(\"instance_1\"),\n\t\t\tImageId:  pulumi.Any(imageId),\n\t\t\tFlavorId: pulumi.String(\"s2.large.4\"),\n\t\t\tKeyPair:  pulumi.String(\"my_key_pair_name\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tBlockDevices: opentelekomcloud.ComputeInstanceV2BlockDeviceArray{\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2BlockDeviceArgs{\n\t\t\t\t\tUuid:                pulumi.Any(dataImageId),\n\t\t\t\t\tSourceType:          pulumi.String(\"image\"),\n\t\t\t\t\tDestinationType:     pulumi.String(\"volume\"),\n\t\t\t\t\tBootIndex:           pulumi.Float64(0),\n\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2BlockDeviceArgs{\n\t\t\t\t\tUuid:                volume1.BlockstorageVolumeV2Id,\n\t\t\t\t\tSourceType:          pulumi.String(\"volume\"),\n\t\t\t\t\tDestinationType:     pulumi.String(\"volume\"),\n\t\t\t\t\tBootIndex:           pulumi.Float64(1),\n\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.BlockstorageVolumeV2;\nimport com.pulumi.opentelekomcloud.BlockstorageVolumeV2Args;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2Args;\nimport com.pulumi.opentelekomcloud.inputs.ComputeInstanceV2BlockDeviceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var imageId = config.get(\"imageId\");\n        final var dataImageId = config.get(\"dataImageId\");\n        var volume1 = new BlockstorageVolumeV2(\"volume1\", BlockstorageVolumeV2Args.builder()\n            .name(\"volume_1\")\n            .size(1.0)\n            .build());\n\n        var instance1 = new ComputeInstanceV2(\"instance1\", ComputeInstanceV2Args.builder()\n            .name(\"instance_1\")\n            .imageId(imageId)\n            .flavorId(\"s2.large.4\")\n            .keyPair(\"my_key_pair_name\")\n            .securityGroups(\"default\")\n            .blockDevices(            \n                ComputeInstanceV2BlockDeviceArgs.builder()\n                    .uuid(dataImageId)\n                    .sourceType(\"image\")\n                    .destinationType(\"volume\")\n                    .bootIndex(0.0)\n                    .deleteOnTermination(true)\n                    .build(),\n                ComputeInstanceV2BlockDeviceArgs.builder()\n                    .uuid(volume1.blockstorageVolumeV2Id())\n                    .sourceType(\"volume\")\n                    .destinationType(\"volume\")\n                    .bootIndex(1.0)\n                    .deleteOnTermination(true)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  imageId:\n    type: dynamic\n  dataImageId:\n    type: dynamic\nresources:\n  volume1:\n    type: opentelekomcloud:BlockstorageVolumeV2\n    name: volume_1\n    properties:\n      name: volume_1\n      size: 1\n  instance1:\n    type: opentelekomcloud:ComputeInstanceV2\n    name: instance_1\n    properties:\n      name: instance_1\n      imageId: ${imageId}\n      flavorId: s2.large.4\n      keyPair: my_key_pair_name\n      securityGroups:\n        - default\n      blockDevices:\n        - uuid: ${dataImageId}\n          sourceType: image\n          destinationType: volume\n          bootIndex: 0\n          deleteOnTermination: true\n        - uuid: ${volume1.blockstorageVolumeV2Id}\n          sourceType: volume\n          destinationType: volume\n          bootIndex: 1\n          deleteOnTermination: true\n```\n<!--End PulumiCodeChooser -->\n\n### Instance With Multiple Networks\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst imageId = config.requireObject<any>(\"imageId\");\nconst secondSubnet = opentelekomcloud.getVpcSubnetV1({\n    name: \"my-subnet\",\n});\nconst myip = new opentelekomcloud.NetworkingFloatingipV2(\"myip\", {pool: \"admin_external_net\"});\nconst multi_net = new opentelekomcloud.ComputeInstanceV2(\"multi-net\", {\n    name: \"multi-net\",\n    imageId: imageId,\n    flavorId: \"s2.large.4\",\n    keyPair: \"my_key_pair_name\",\n    securityGroups: [\"default\"],\n    networks: [\n        {\n            name: \"my_first_network\",\n        },\n        {\n            uuid: secondSubnet.then(secondSubnet => secondSubnet.networkId),\n        },\n    ],\n});\nconst myipComputeFloatingipAssociateV2 = new opentelekomcloud.ComputeFloatingipAssociateV2(\"myip\", {\n    floatingIp: myip.address,\n    instanceId: multi_net.computeInstanceV2Id,\n    fixedIp: multi_net.networks.apply(networks => networks?.[1]?.fixedIpV4),\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nimage_id = config.require_object(\"imageId\")\nsecond_subnet = opentelekomcloud.get_vpc_subnet_v1(name=\"my-subnet\")\nmyip = opentelekomcloud.NetworkingFloatingipV2(\"myip\", pool=\"admin_external_net\")\nmulti_net = opentelekomcloud.ComputeInstanceV2(\"multi-net\",\n    name=\"multi-net\",\n    image_id=image_id,\n    flavor_id=\"s2.large.4\",\n    key_pair=\"my_key_pair_name\",\n    security_groups=[\"default\"],\n    networks=[\n        {\n            \"name\": \"my_first_network\",\n        },\n        {\n            \"uuid\": second_subnet.network_id,\n        },\n    ])\nmyip_compute_floatingip_associate_v2 = opentelekomcloud.ComputeFloatingipAssociateV2(\"myip\",\n    floating_ip=myip.address,\n    instance_id=multi_net.compute_instance_v2_id,\n    fixed_ip=multi_net.networks[1].fixed_ip_v4)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var imageId = config.RequireObject<dynamic>(\"imageId\");\n    var secondSubnet = Opentelekomcloud.GetVpcSubnetV1.Invoke(new()\n    {\n        Name = \"my-subnet\",\n    });\n\n    var myip = new Opentelekomcloud.NetworkingFloatingipV2(\"myip\", new()\n    {\n        Pool = \"admin_external_net\",\n    });\n\n    var multi_net = new Opentelekomcloud.ComputeInstanceV2(\"multi-net\", new()\n    {\n        Name = \"multi-net\",\n        ImageId = imageId,\n        FlavorId = \"s2.large.4\",\n        KeyPair = \"my_key_pair_name\",\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n        Networks = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Name = \"my_first_network\",\n            },\n            new Opentelekomcloud.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Uuid = secondSubnet.Apply(getVpcSubnetV1Result => getVpcSubnetV1Result.NetworkId),\n            },\n        },\n    });\n\n    var myipComputeFloatingipAssociateV2 = new Opentelekomcloud.ComputeFloatingipAssociateV2(\"myip\", new()\n    {\n        FloatingIp = myip.Address,\n        InstanceId = multi_net.ComputeInstanceV2Id,\n        FixedIp = multi_net.Networks.Apply(networks => networks[1]?.FixedIpV4),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\timageId := cfg.RequireObject(\"imageId\")\n\t\tsecondSubnet, err := opentelekomcloud.LookupVpcSubnetV1(ctx, &opentelekomcloud.LookupVpcSubnetV1Args{\n\t\t\tName: pulumi.StringRef(\"my-subnet\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyip, err := opentelekomcloud.NewNetworkingFloatingipV2(ctx, \"myip\", &opentelekomcloud.NetworkingFloatingipV2Args{\n\t\t\tPool: pulumi.String(\"admin_external_net\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmulti_net, err := opentelekomcloud.NewComputeInstanceV2(ctx, \"multi-net\", &opentelekomcloud.ComputeInstanceV2Args{\n\t\t\tName:     pulumi.String(\"multi-net\"),\n\t\t\tImageId:  pulumi.Any(imageId),\n\t\t\tFlavorId: pulumi.String(\"s2.large.4\"),\n\t\t\tKeyPair:  pulumi.String(\"my_key_pair_name\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tNetworks: opentelekomcloud.ComputeInstanceV2NetworkArray{\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tName: pulumi.String(\"my_first_network\"),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tUuid: pulumi.String(secondSubnet.NetworkId),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewComputeFloatingipAssociateV2(ctx, \"myip\", &opentelekomcloud.ComputeFloatingipAssociateV2Args{\n\t\t\tFloatingIp: myip.Address,\n\t\t\tInstanceId: multi_net.ComputeInstanceV2Id,\n\t\t\tFixedIp: pulumi.String(multi_net.Networks.ApplyT(func(networks []opentelekomcloud.ComputeInstanceV2Network) (*string, error) {\n\t\t\t\treturn &networks[1].FixedIpV4, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetVpcSubnetV1Args;\nimport com.pulumi.opentelekomcloud.NetworkingFloatingipV2;\nimport com.pulumi.opentelekomcloud.NetworkingFloatingipV2Args;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2Args;\nimport com.pulumi.opentelekomcloud.inputs.ComputeInstanceV2NetworkArgs;\nimport com.pulumi.opentelekomcloud.ComputeFloatingipAssociateV2;\nimport com.pulumi.opentelekomcloud.ComputeFloatingipAssociateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var imageId = config.get(\"imageId\");\n        final var secondSubnet = OpentelekomcloudFunctions.getVpcSubnetV1(GetVpcSubnetV1Args.builder()\n            .name(\"my-subnet\")\n            .build());\n\n        var myip = new NetworkingFloatingipV2(\"myip\", NetworkingFloatingipV2Args.builder()\n            .pool(\"admin_external_net\")\n            .build());\n\n        var multi_net = new ComputeInstanceV2(\"multi-net\", ComputeInstanceV2Args.builder()\n            .name(\"multi-net\")\n            .imageId(imageId)\n            .flavorId(\"s2.large.4\")\n            .keyPair(\"my_key_pair_name\")\n            .securityGroups(\"default\")\n            .networks(            \n                ComputeInstanceV2NetworkArgs.builder()\n                    .name(\"my_first_network\")\n                    .build(),\n                ComputeInstanceV2NetworkArgs.builder()\n                    .uuid(secondSubnet.networkId())\n                    .build())\n            .build());\n\n        var myipComputeFloatingipAssociateV2 = new ComputeFloatingipAssociateV2(\"myipComputeFloatingipAssociateV2\", ComputeFloatingipAssociateV2Args.builder()\n            .floatingIp(myip.address())\n            .instanceId(multi_net.computeInstanceV2Id())\n            .fixedIp(multi_net.networks().applyValue(_networks -> _networks[1].fixedIpV4()))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  imageId:\n    type: dynamic\nresources:\n  myip:\n    type: opentelekomcloud:NetworkingFloatingipV2\n    properties:\n      pool: admin_external_net\n  multi-net:\n    type: opentelekomcloud:ComputeInstanceV2\n    properties:\n      name: multi-net\n      imageId: ${imageId}\n      flavorId: s2.large.4\n      keyPair: my_key_pair_name\n      securityGroups:\n        - default\n      networks:\n        - name: my_first_network\n        - uuid: ${secondSubnet.networkId}\n  myipComputeFloatingipAssociateV2:\n    type: opentelekomcloud:ComputeFloatingipAssociateV2\n    name: myip\n    properties:\n      floatingIp: ${myip.address}\n      instanceId: ${[\"multi-net\"].computeInstanceV2Id}\n      fixedIp: ${[\"multi-net\"].networks[1].fixedIpV4}\nvariables:\n  secondSubnet:\n    fn::invoke:\n      function: opentelekomcloud:getVpcSubnetV1\n      arguments:\n        name: my-subnet\n```\n<!--End PulumiCodeChooser -->\n\n### Instance with Multiple Ephemeral Disks\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst imageId = config.requireObject<any>(\"imageId\");\nconst dataImageId = config.requireObject<any>(\"dataImageId\");\nconst multi_eph = new opentelekomcloud.ComputeInstanceV2(\"multi-eph\", {\n    name: \"multi_eph\",\n    imageId: imageId,\n    flavorId: \"s2.large.4\",\n    keyPair: \"my_key_pair_name\",\n    securityGroups: [\"default\"],\n    blockDevices: [\n        {\n            bootIndex: 0,\n            deleteOnTermination: true,\n            destinationType: \"volume\",\n            sourceType: \"image\",\n            uuid: dataImageId,\n        },\n        {\n            bootIndex: -1,\n            deleteOnTermination: true,\n            destinationType: \"volume\",\n            sourceType: \"blank\",\n            volumeSize: 1,\n        },\n        {\n            bootIndex: -1,\n            deleteOnTermination: true,\n            destinationType: \"volume\",\n            sourceType: \"blank\",\n            volumeSize: 1,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nimage_id = config.require_object(\"imageId\")\ndata_image_id = config.require_object(\"dataImageId\")\nmulti_eph = opentelekomcloud.ComputeInstanceV2(\"multi-eph\",\n    name=\"multi_eph\",\n    image_id=image_id,\n    flavor_id=\"s2.large.4\",\n    key_pair=\"my_key_pair_name\",\n    security_groups=[\"default\"],\n    block_devices=[\n        {\n            \"boot_index\": 0,\n            \"delete_on_termination\": True,\n            \"destination_type\": \"volume\",\n            \"source_type\": \"image\",\n            \"uuid\": data_image_id,\n        },\n        {\n            \"boot_index\": -1,\n            \"delete_on_termination\": True,\n            \"destination_type\": \"volume\",\n            \"source_type\": \"blank\",\n            \"volume_size\": 1,\n        },\n        {\n            \"boot_index\": -1,\n            \"delete_on_termination\": True,\n            \"destination_type\": \"volume\",\n            \"source_type\": \"blank\",\n            \"volume_size\": 1,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var imageId = config.RequireObject<dynamic>(\"imageId\");\n    var dataImageId = config.RequireObject<dynamic>(\"dataImageId\");\n    var multi_eph = new Opentelekomcloud.ComputeInstanceV2(\"multi-eph\", new()\n    {\n        Name = \"multi_eph\",\n        ImageId = imageId,\n        FlavorId = \"s2.large.4\",\n        KeyPair = \"my_key_pair_name\",\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n        BlockDevices = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeInstanceV2BlockDeviceArgs\n            {\n                BootIndex = 0,\n                DeleteOnTermination = true,\n                DestinationType = \"volume\",\n                SourceType = \"image\",\n                Uuid = dataImageId,\n            },\n            new Opentelekomcloud.Inputs.ComputeInstanceV2BlockDeviceArgs\n            {\n                BootIndex = -1,\n                DeleteOnTermination = true,\n                DestinationType = \"volume\",\n                SourceType = \"blank\",\n                VolumeSize = 1,\n            },\n            new Opentelekomcloud.Inputs.ComputeInstanceV2BlockDeviceArgs\n            {\n                BootIndex = -1,\n                DeleteOnTermination = true,\n                DestinationType = \"volume\",\n                SourceType = \"blank\",\n                VolumeSize = 1,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\timageId := cfg.RequireObject(\"imageId\")\n\t\tdataImageId := cfg.RequireObject(\"dataImageId\")\n\t\t_, err := opentelekomcloud.NewComputeInstanceV2(ctx, \"multi-eph\", &opentelekomcloud.ComputeInstanceV2Args{\n\t\t\tName:     pulumi.String(\"multi_eph\"),\n\t\t\tImageId:  pulumi.Any(imageId),\n\t\t\tFlavorId: pulumi.String(\"s2.large.4\"),\n\t\t\tKeyPair:  pulumi.String(\"my_key_pair_name\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tBlockDevices: opentelekomcloud.ComputeInstanceV2BlockDeviceArray{\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2BlockDeviceArgs{\n\t\t\t\t\tBootIndex:           pulumi.Float64(0),\n\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t\tDestinationType:     pulumi.String(\"volume\"),\n\t\t\t\t\tSourceType:          pulumi.String(\"image\"),\n\t\t\t\t\tUuid:                pulumi.Any(dataImageId),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2BlockDeviceArgs{\n\t\t\t\t\tBootIndex:           pulumi.Float64(-1),\n\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t\tDestinationType:     pulumi.String(\"volume\"),\n\t\t\t\t\tSourceType:          pulumi.String(\"blank\"),\n\t\t\t\t\tVolumeSize:          pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2BlockDeviceArgs{\n\t\t\t\t\tBootIndex:           pulumi.Float64(-1),\n\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t\tDestinationType:     pulumi.String(\"volume\"),\n\t\t\t\t\tSourceType:          pulumi.String(\"blank\"),\n\t\t\t\t\tVolumeSize:          pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2Args;\nimport com.pulumi.opentelekomcloud.inputs.ComputeInstanceV2BlockDeviceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var imageId = config.get(\"imageId\");\n        final var dataImageId = config.get(\"dataImageId\");\n        var multi_eph = new ComputeInstanceV2(\"multi-eph\", ComputeInstanceV2Args.builder()\n            .name(\"multi_eph\")\n            .imageId(imageId)\n            .flavorId(\"s2.large.4\")\n            .keyPair(\"my_key_pair_name\")\n            .securityGroups(\"default\")\n            .blockDevices(            \n                ComputeInstanceV2BlockDeviceArgs.builder()\n                    .bootIndex(0.0)\n                    .deleteOnTermination(true)\n                    .destinationType(\"volume\")\n                    .sourceType(\"image\")\n                    .uuid(dataImageId)\n                    .build(),\n                ComputeInstanceV2BlockDeviceArgs.builder()\n                    .bootIndex(-1.0)\n                    .deleteOnTermination(true)\n                    .destinationType(\"volume\")\n                    .sourceType(\"blank\")\n                    .volumeSize(1.0)\n                    .build(),\n                ComputeInstanceV2BlockDeviceArgs.builder()\n                    .bootIndex(-1.0)\n                    .deleteOnTermination(true)\n                    .destinationType(\"volume\")\n                    .sourceType(\"blank\")\n                    .volumeSize(1.0)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  imageId:\n    type: dynamic\n  dataImageId:\n    type: dynamic\nresources:\n  multi-eph:\n    type: opentelekomcloud:ComputeInstanceV2\n    properties:\n      name: multi_eph\n      imageId: ${imageId}\n      flavorId: s2.large.4\n      keyPair: my_key_pair_name\n      securityGroups:\n        - default\n      blockDevices:\n        - bootIndex: 0\n          deleteOnTermination: true\n          destinationType: volume\n          sourceType: image\n          uuid: ${dataImageId}\n        - bootIndex: -1\n          deleteOnTermination: true\n          destinationType: volume\n          sourceType: blank\n          volumeSize: 1\n        - bootIndex: -1\n          deleteOnTermination: true\n          destinationType: volume\n          sourceType: blank\n          volumeSize: 1\n```\n<!--End PulumiCodeChooser -->\n\n### Instance with User Data (cloud-init)\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst imageId = config.requireObject<any>(\"imageId\");\nconst instance1 = new opentelekomcloud.ComputeInstanceV2(\"instance_1\", {\n    name: \"basic\",\n    imageId: imageId,\n    flavorId: \"s2.large.4\",\n    keyPair: \"my_key_pair_name\",\n    securityGroups: [\"default\"],\n    userData: `#cloud-config\nhostname: instance_1.example.com\nfqdn: instance_1.example.com`,\n    networks: [{\n        name: \"my_network\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nimage_id = config.require_object(\"imageId\")\ninstance1 = opentelekomcloud.ComputeInstanceV2(\"instance_1\",\n    name=\"basic\",\n    image_id=image_id,\n    flavor_id=\"s2.large.4\",\n    key_pair=\"my_key_pair_name\",\n    security_groups=[\"default\"],\n    user_data=\"\"\"#cloud-config\nhostname: instance_1.example.com\nfqdn: instance_1.example.com\"\"\",\n    networks=[{\n        \"name\": \"my_network\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var imageId = config.RequireObject<dynamic>(\"imageId\");\n    var instance1 = new Opentelekomcloud.ComputeInstanceV2(\"instance_1\", new()\n    {\n        Name = \"basic\",\n        ImageId = imageId,\n        FlavorId = \"s2.large.4\",\n        KeyPair = \"my_key_pair_name\",\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n        UserData = @\"#cloud-config\nhostname: instance_1.example.com\nfqdn: instance_1.example.com\",\n        Networks = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Name = \"my_network\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\timageId := cfg.RequireObject(\"imageId\")\n\t\t_, err := opentelekomcloud.NewComputeInstanceV2(ctx, \"instance_1\", &opentelekomcloud.ComputeInstanceV2Args{\n\t\t\tName:     pulumi.String(\"basic\"),\n\t\t\tImageId:  pulumi.Any(imageId),\n\t\t\tFlavorId: pulumi.String(\"s2.large.4\"),\n\t\t\tKeyPair:  pulumi.String(\"my_key_pair_name\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tUserData: pulumi.String(\"#cloud-config\\nhostname: instance_1.example.com\\nfqdn: instance_1.example.com\"),\n\t\t\tNetworks: opentelekomcloud.ComputeInstanceV2NetworkArray{\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tName: pulumi.String(\"my_network\"),\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.opentelekomcloud.ComputeInstanceV2;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2Args;\nimport com.pulumi.opentelekomcloud.inputs.ComputeInstanceV2NetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var imageId = config.get(\"imageId\");\n        var instance1 = new ComputeInstanceV2(\"instance1\", ComputeInstanceV2Args.builder()\n            .name(\"basic\")\n            .imageId(imageId)\n            .flavorId(\"s2.large.4\")\n            .keyPair(\"my_key_pair_name\")\n            .securityGroups(\"default\")\n            .userData(\"\"\"\n#cloud-config\nhostname: instance_1.example.com\nfqdn: instance_1.example.com            \"\"\")\n            .networks(ComputeInstanceV2NetworkArgs.builder()\n                .name(\"my_network\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  imageId:\n    type: dynamic\nresources:\n  instance1:\n    type: opentelekomcloud:ComputeInstanceV2\n    name: instance_1\n    properties:\n      name: basic\n      imageId: ${imageId}\n      flavorId: s2.large.4\n      keyPair: my_key_pair_name\n      securityGroups:\n        - default\n      userData: |-\n        #cloud-config\n        hostname: instance_1.example.com\n        fqdn: instance_1.example.com\n      networks:\n        - name: my_network\n```\n<!--End PulumiCodeChooser -->\n\n<span pulumi-lang-nodejs=\"`userData`\" pulumi-lang-dotnet=\"`UserData`\" pulumi-lang-go=\"`userData`\" pulumi-lang-python=\"`user_data`\" pulumi-lang-yaml=\"`userData`\" pulumi-lang-java=\"`userData`\">`user_data`</span> can come from a variety of sources: inline, read in from the <span pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\">`file`</span>\nfunction, or the <span pulumi-lang-nodejs=\"`templateCloudinitConfig`\" pulumi-lang-dotnet=\"`TemplateCloudinitConfig`\" pulumi-lang-go=\"`templateCloudinitConfig`\" pulumi-lang-python=\"`template_cloudinit_config`\" pulumi-lang-yaml=\"`templateCloudinitConfig`\" pulumi-lang-java=\"`templateCloudinitConfig`\">`template_cloudinit_config`</span> resource.\n\n## Notes\n\n### Multiple Ephemeral Disks\n\nIt's possible to specify multiple <span pulumi-lang-nodejs=\"`blockDevice`\" pulumi-lang-dotnet=\"`BlockDevice`\" pulumi-lang-go=\"`blockDevice`\" pulumi-lang-python=\"`block_device`\" pulumi-lang-yaml=\"`blockDevice`\" pulumi-lang-java=\"`blockDevice`\">`block_device`</span> entries to create an instance with multiple ephemeral (local) disks. In\norder to create multiple ephemeral disks, the sum of the total amount of ephemeral space must be less than or equal to\nwhat the chosen flavor supports.\n\nThe following example shows how to create an instance with multiple ephemeral disks:\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst foo = new opentelekomcloud.ComputeInstanceV2(\"foo\", {\n    name: \"terraform-test\",\n    blockDevices: [\n        {\n            bootIndex: 0,\n            deleteOnTermination: true,\n            destinationType: \"volume\",\n            sourceType: \"image\",\n            uuid: imageId,\n        },\n        {\n            bootIndex: -1,\n            deleteOnTermination: true,\n            destinationType: \"volume\",\n            sourceType: \"blank\",\n            volumeSize: 1,\n        },\n        {\n            bootIndex: -1,\n            deleteOnTermination: true,\n            destinationType: \"volume\",\n            sourceType: \"blank\",\n            volumeSize: 1,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nfoo = opentelekomcloud.ComputeInstanceV2(\"foo\",\n    name=\"terraform-test\",\n    block_devices=[\n        {\n            \"boot_index\": 0,\n            \"delete_on_termination\": True,\n            \"destination_type\": \"volume\",\n            \"source_type\": \"image\",\n            \"uuid\": image_id,\n        },\n        {\n            \"boot_index\": -1,\n            \"delete_on_termination\": True,\n            \"destination_type\": \"volume\",\n            \"source_type\": \"blank\",\n            \"volume_size\": 1,\n        },\n        {\n            \"boot_index\": -1,\n            \"delete_on_termination\": True,\n            \"destination_type\": \"volume\",\n            \"source_type\": \"blank\",\n            \"volume_size\": 1,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var foo = new Opentelekomcloud.ComputeInstanceV2(\"foo\", new()\n    {\n        Name = \"terraform-test\",\n        BlockDevices = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeInstanceV2BlockDeviceArgs\n            {\n                BootIndex = 0,\n                DeleteOnTermination = true,\n                DestinationType = \"volume\",\n                SourceType = \"image\",\n                Uuid = imageId,\n            },\n            new Opentelekomcloud.Inputs.ComputeInstanceV2BlockDeviceArgs\n            {\n                BootIndex = -1,\n                DeleteOnTermination = true,\n                DestinationType = \"volume\",\n                SourceType = \"blank\",\n                VolumeSize = 1,\n            },\n            new Opentelekomcloud.Inputs.ComputeInstanceV2BlockDeviceArgs\n            {\n                BootIndex = -1,\n                DeleteOnTermination = true,\n                DestinationType = \"volume\",\n                SourceType = \"blank\",\n                VolumeSize = 1,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewComputeInstanceV2(ctx, \"foo\", &opentelekomcloud.ComputeInstanceV2Args{\n\t\t\tName: pulumi.String(\"terraform-test\"),\n\t\t\tBlockDevices: opentelekomcloud.ComputeInstanceV2BlockDeviceArray{\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2BlockDeviceArgs{\n\t\t\t\t\tBootIndex:           pulumi.Float64(0),\n\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t\tDestinationType:     pulumi.String(\"volume\"),\n\t\t\t\t\tSourceType:          pulumi.String(\"image\"),\n\t\t\t\t\tUuid:                pulumi.Any(imageId),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2BlockDeviceArgs{\n\t\t\t\t\tBootIndex:           pulumi.Float64(-1),\n\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t\tDestinationType:     pulumi.String(\"volume\"),\n\t\t\t\t\tSourceType:          pulumi.String(\"blank\"),\n\t\t\t\t\tVolumeSize:          pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2BlockDeviceArgs{\n\t\t\t\t\tBootIndex:           pulumi.Float64(-1),\n\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t\tDestinationType:     pulumi.String(\"volume\"),\n\t\t\t\t\tSourceType:          pulumi.String(\"blank\"),\n\t\t\t\t\tVolumeSize:          pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2Args;\nimport com.pulumi.opentelekomcloud.inputs.ComputeInstanceV2BlockDeviceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class 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 ComputeInstanceV2(\"foo\", ComputeInstanceV2Args.builder()\n            .name(\"terraform-test\")\n            .blockDevices(            \n                ComputeInstanceV2BlockDeviceArgs.builder()\n                    .bootIndex(0.0)\n                    .deleteOnTermination(true)\n                    .destinationType(\"volume\")\n                    .sourceType(\"image\")\n                    .uuid(imageId)\n                    .build(),\n                ComputeInstanceV2BlockDeviceArgs.builder()\n                    .bootIndex(-1.0)\n                    .deleteOnTermination(true)\n                    .destinationType(\"volume\")\n                    .sourceType(\"blank\")\n                    .volumeSize(1.0)\n                    .build(),\n                ComputeInstanceV2BlockDeviceArgs.builder()\n                    .bootIndex(-1.0)\n                    .deleteOnTermination(true)\n                    .destinationType(\"volume\")\n                    .sourceType(\"blank\")\n                    .volumeSize(1.0)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  foo:\n    type: opentelekomcloud:ComputeInstanceV2\n    properties:\n      name: terraform-test\n      blockDevices:\n        - bootIndex: 0\n          deleteOnTermination: true\n          destinationType: volume\n          sourceType: image\n          uuid: ${imageId}\n        - bootIndex: -1\n          deleteOnTermination: true\n          destinationType: volume\n          sourceType: blank\n          volumeSize: 1\n        - bootIndex: -1\n          deleteOnTermination: true\n          destinationType: volume\n          sourceType: blank\n          volumeSize: 1\n```\n<!--End PulumiCodeChooser -->\n\n### Instances and Ports\n\nNeutron Ports are a great feature and provide a lot of functionality. However, there are some notes to be aware of when\nmixing Instances and Ports:\n\n* When attaching an Instance to one or more networks using Ports, place the security groups on the Port and not the\n  Instance. If you place the security groups on the Instance, the security groups will not be applied upon creation, but\n  they will be applied upon a refresh. This is a known OpenTelekomCloud bug.\n\n* Network IP information is not available within an instance for networks that are attached with Ports. This is mostly\n  due to the flexibility Neutron Ports provide when it comes to IP addresses. For example, a Neutron Port can have\n  multiple Fixed IP addresses associated with it. It's not possible to know which single IP address the user would want\n  returned to the Instance's state information. Therefore, in order for a Provisioner to connect to an Instance via it's\n  network Port, customize the <span pulumi-lang-nodejs=\"`connection`\" pulumi-lang-dotnet=\"`Connection`\" pulumi-lang-go=\"`connection`\" pulumi-lang-python=\"`connection`\" pulumi-lang-yaml=\"`connection`\" pulumi-lang-java=\"`connection`\">`connection`</span> information:\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst port1 = new opentelekomcloud.NetworkingPortV2(\"port_1\", {\n    name: \"port_1\",\n    adminStateUp: true,\n    networkId: \"0a1d0a27-cffa-4de3-92c5-9d3fd3f2e74d\",\n    securityGroupIds: [\n        \"2f02d20a-8dca-49b7-b26f-b6ce9fddaf4f\",\n        \"ca1e5ed7-dae8-4605-987b-fadaeeb30461\",\n    ],\n});\nconst instance1 = new opentelekomcloud.ComputeInstanceV2(\"instance_1\", {\n    name: \"instance_1\",\n    networks: [{\n        port: port1.networkingPortV2Id,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nport1 = opentelekomcloud.NetworkingPortV2(\"port_1\",\n    name=\"port_1\",\n    admin_state_up=True,\n    network_id=\"0a1d0a27-cffa-4de3-92c5-9d3fd3f2e74d\",\n    security_group_ids=[\n        \"2f02d20a-8dca-49b7-b26f-b6ce9fddaf4f\",\n        \"ca1e5ed7-dae8-4605-987b-fadaeeb30461\",\n    ])\ninstance1 = opentelekomcloud.ComputeInstanceV2(\"instance_1\",\n    name=\"instance_1\",\n    networks=[{\n        \"port\": port1.networking_port_v2_id,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var port1 = new Opentelekomcloud.NetworkingPortV2(\"port_1\", new()\n    {\n        Name = \"port_1\",\n        AdminStateUp = true,\n        NetworkId = \"0a1d0a27-cffa-4de3-92c5-9d3fd3f2e74d\",\n        SecurityGroupIds = new[]\n        {\n            \"2f02d20a-8dca-49b7-b26f-b6ce9fddaf4f\",\n            \"ca1e5ed7-dae8-4605-987b-fadaeeb30461\",\n        },\n    });\n\n    var instance1 = new Opentelekomcloud.ComputeInstanceV2(\"instance_1\", new()\n    {\n        Name = \"instance_1\",\n        Networks = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Port = port1.NetworkingPortV2Id,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tport1, err := opentelekomcloud.NewNetworkingPortV2(ctx, \"port_1\", &opentelekomcloud.NetworkingPortV2Args{\n\t\t\tName:         pulumi.String(\"port_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t\tNetworkId:    pulumi.String(\"0a1d0a27-cffa-4de3-92c5-9d3fd3f2e74d\"),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"2f02d20a-8dca-49b7-b26f-b6ce9fddaf4f\"),\n\t\t\t\tpulumi.String(\"ca1e5ed7-dae8-4605-987b-fadaeeb30461\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewComputeInstanceV2(ctx, \"instance_1\", &opentelekomcloud.ComputeInstanceV2Args{\n\t\t\tName: pulumi.String(\"instance_1\"),\n\t\t\tNetworks: opentelekomcloud.ComputeInstanceV2NetworkArray{\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tPort: port1.NetworkingPortV2Id,\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.opentelekomcloud.NetworkingPortV2;\nimport com.pulumi.opentelekomcloud.NetworkingPortV2Args;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2Args;\nimport com.pulumi.opentelekomcloud.inputs.ComputeInstanceV2NetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var port1 = new NetworkingPortV2(\"port1\", NetworkingPortV2Args.builder()\n            .name(\"port_1\")\n            .adminStateUp(true)\n            .networkId(\"0a1d0a27-cffa-4de3-92c5-9d3fd3f2e74d\")\n            .securityGroupIds(            \n                \"2f02d20a-8dca-49b7-b26f-b6ce9fddaf4f\",\n                \"ca1e5ed7-dae8-4605-987b-fadaeeb30461\")\n            .build());\n\n        var instance1 = new ComputeInstanceV2(\"instance1\", ComputeInstanceV2Args.builder()\n            .name(\"instance_1\")\n            .networks(ComputeInstanceV2NetworkArgs.builder()\n                .port(port1.networkingPortV2Id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  port1:\n    type: opentelekomcloud:NetworkingPortV2\n    name: port_1\n    properties:\n      name: port_1\n      adminStateUp: 'true'\n      networkId: 0a1d0a27-cffa-4de3-92c5-9d3fd3f2e74d\n      securityGroupIds:\n        - 2f02d20a-8dca-49b7-b26f-b6ce9fddaf4f\n        - ca1e5ed7-dae8-4605-987b-fadaeeb30461\n  instance1:\n    type: opentelekomcloud:ComputeInstanceV2\n    name: instance_1\n    properties:\n      name: instance_1\n      networks:\n        - port: ${port1.networkingPortV2Id}\n```\n<!--End PulumiCodeChooser -->\n\n## Importing instances\n\nImporting instances can be tricky, since the nova api does not offer all information provided at creation time for later\nretrieval. Network interface attachment order, and number and sizes of ephemeral disks are examples of this.\n\n### Importing basic instance\n\nAssume you want to import an instance with one ephemeral root disk, and one network interface.\n\nYour configuration would look like the following:\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst basicInstance = new opentelekomcloud.ComputeInstanceV2(\"basic_instance\", {\n    name: \"basic\",\n    flavorId: flavorId,\n    keyPair: keyPair,\n    imageId: imageId,\n    networks: [{\n        name: networkName,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nbasic_instance = opentelekomcloud.ComputeInstanceV2(\"basic_instance\",\n    name=\"basic\",\n    flavor_id=flavor_id,\n    key_pair=key_pair,\n    image_id=image_id,\n    networks=[{\n        \"name\": network_name,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var basicInstance = new Opentelekomcloud.ComputeInstanceV2(\"basic_instance\", new()\n    {\n        Name = \"basic\",\n        FlavorId = flavorId,\n        KeyPair = keyPair,\n        ImageId = imageId,\n        Networks = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Name = networkName,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewComputeInstanceV2(ctx, \"basic_instance\", &opentelekomcloud.ComputeInstanceV2Args{\n\t\t\tName:     pulumi.String(\"basic\"),\n\t\t\tFlavorId: pulumi.Any(flavorId),\n\t\t\tKeyPair:  pulumi.Any(keyPair),\n\t\t\tImageId:  pulumi.Any(imageId),\n\t\t\tNetworks: opentelekomcloud.ComputeInstanceV2NetworkArray{\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tName: pulumi.Any(networkName),\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.opentelekomcloud.ComputeInstanceV2;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2Args;\nimport com.pulumi.opentelekomcloud.inputs.ComputeInstanceV2NetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var basicInstance = new ComputeInstanceV2(\"basicInstance\", ComputeInstanceV2Args.builder()\n            .name(\"basic\")\n            .flavorId(flavorId)\n            .keyPair(keyPair)\n            .imageId(imageId)\n            .networks(ComputeInstanceV2NetworkArgs.builder()\n                .name(networkName)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  basicInstance:\n    type: opentelekomcloud:ComputeInstanceV2\n    name: basic_instance\n    properties:\n      name: basic\n      flavorId: ${flavorId}\n      keyPair: ${keyPair}\n      imageId: ${imageId}\n      networks:\n        - name: ${networkName}\n```\n<!--End PulumiCodeChooser -->\n\nThen you execute\n\n```\nterraform import opentelekomcloud_compute_instance_v2.basic_instance <instance_id>\n```\n\n### Importing instance with multiple network interfaces.\n\nNova returns the network interfaces grouped by network, thus not in creation order. That means that if you have multiple\nnetwork interfaces you must take care of the order of networks in your configuration.\n\nAs example, we want to import an instance with one ephemeral root disk, and 3 network interfaces.\n\nExamples\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst boot_from_volume = new opentelekomcloud.ComputeInstanceV2(\"boot-from-volume\", {\n    name: \"boot-from-volume\",\n    flavorId: flavorId,\n    keyPair: keyPair,\n    imageId: imageId,\n    networks: [\n        {\n            name: network1Name,\n        },\n        {\n            name: network2Name,\n        },\n        {\n            name: network1Name,\n            fixedIpV4: fixedIpV4,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nboot_from_volume = opentelekomcloud.ComputeInstanceV2(\"boot-from-volume\",\n    name=\"boot-from-volume\",\n    flavor_id=flavor_id,\n    key_pair=key_pair,\n    image_id=image_id,\n    networks=[\n        {\n            \"name\": network1_name,\n        },\n        {\n            \"name\": network2_name,\n        },\n        {\n            \"name\": network1_name,\n            \"fixed_ip_v4\": fixed_ip_v4,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var boot_from_volume = new Opentelekomcloud.ComputeInstanceV2(\"boot-from-volume\", new()\n    {\n        Name = \"boot-from-volume\",\n        FlavorId = flavorId,\n        KeyPair = keyPair,\n        ImageId = imageId,\n        Networks = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Name = network1Name,\n            },\n            new Opentelekomcloud.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Name = network2Name,\n            },\n            new Opentelekomcloud.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Name = network1Name,\n                FixedIpV4 = fixedIpV4,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewComputeInstanceV2(ctx, \"boot-from-volume\", &opentelekomcloud.ComputeInstanceV2Args{\n\t\t\tName:     pulumi.String(\"boot-from-volume\"),\n\t\t\tFlavorId: pulumi.Any(flavorId),\n\t\t\tKeyPair:  pulumi.Any(keyPair),\n\t\t\tImageId:  pulumi.Any(imageId),\n\t\t\tNetworks: opentelekomcloud.ComputeInstanceV2NetworkArray{\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tName: pulumi.Any(network1Name),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tName: pulumi.Any(network2Name),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tName:      pulumi.Any(network1Name),\n\t\t\t\t\tFixedIpV4: pulumi.Any(fixedIpV4),\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.opentelekomcloud.ComputeInstanceV2;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2Args;\nimport com.pulumi.opentelekomcloud.inputs.ComputeInstanceV2NetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var boot_from_volume = new ComputeInstanceV2(\"boot-from-volume\", ComputeInstanceV2Args.builder()\n            .name(\"boot-from-volume\")\n            .flavorId(flavorId)\n            .keyPair(keyPair)\n            .imageId(imageId)\n            .networks(            \n                ComputeInstanceV2NetworkArgs.builder()\n                    .name(network1Name)\n                    .build(),\n                ComputeInstanceV2NetworkArgs.builder()\n                    .name(network2Name)\n                    .build(),\n                ComputeInstanceV2NetworkArgs.builder()\n                    .name(network1Name)\n                    .fixedIpV4(fixedIpV4)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  boot-from-volume:\n    type: opentelekomcloud:ComputeInstanceV2\n    properties:\n      name: boot-from-volume\n      flavorId: ${flavorId}\n      keyPair: ${keyPair}\n      imageId: ${imageId}\n      networks:\n        - name: ${network1Name}\n        - name: ${network2Name}\n        - name: ${network1Name}\n          fixedIpV4: ${fixedIpV4}\n```\n<!--End PulumiCodeChooser -->\n\nIn the above configuration the networks are out of order compared to what nova and thus the import code returns, which\nmeans the plan will not be empty after import.\n\nSo either with care check the plan and modify configuration, or read the network order in the state file after import\nand modify your configuration accordingly.\n\n* A note on ports. If you have created a neutron port independent of an instance, then the import code has no way to\n  detect that the port is created idenpendently, and therefore on deletion of imported instances you might have port\n  resources in your project, which you expected to be created by the instance and thus to also be deleted with the\n  instance.\n\n### Importing instances with multiple block storage volumes.\n\nWe have an instance with two block storage volumes, one bootable and one non-bootable. Note that we only configure the\nbootable device as block_device. The other volumes can be specified as <span pulumi-lang-nodejs=\"`opentelekomcloud.BlockstorageVolumeV2`\" pulumi-lang-dotnet=\"`opentelekomcloud.BlockstorageVolumeV2`\" pulumi-lang-go=\"`BlockstorageVolumeV2`\" pulumi-lang-python=\"`BlockstorageVolumeV2`\" pulumi-lang-yaml=\"`opentelekomcloud.BlockstorageVolumeV2`\" pulumi-lang-java=\"`opentelekomcloud.BlockstorageVolumeV2`\">`opentelekomcloud.BlockstorageVolumeV2`</span>\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst instance2 = new opentelekomcloud.ComputeInstanceV2(\"instance_2\", {\n    name: \"instance_2\",\n    imageId: imageId,\n    flavorId: flavorId,\n    keyPair: keyPair,\n    blockDevices: [{\n        uuid: imageId,\n        sourceType: \"image\",\n        destinationType: \"volume\",\n        bootIndex: 0,\n        deleteOnTermination: true,\n    }],\n    networks: [{\n        name: networkName,\n    }],\n});\nconst volume1 = new opentelekomcloud.BlockstorageVolumeV2(\"volume_1\", {\n    size: 1,\n    name: volumeName,\n});\nconst va1 = new opentelekomcloud.ComputeVolumeAttachV2(\"va_1\", {\n    volumeId: volume1.blockstorageVolumeV2Id,\n    instanceId: instance2.computeInstanceV2Id,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ninstance2 = opentelekomcloud.ComputeInstanceV2(\"instance_2\",\n    name=\"instance_2\",\n    image_id=image_id,\n    flavor_id=flavor_id,\n    key_pair=key_pair,\n    block_devices=[{\n        \"uuid\": image_id,\n        \"source_type\": \"image\",\n        \"destination_type\": \"volume\",\n        \"boot_index\": 0,\n        \"delete_on_termination\": True,\n    }],\n    networks=[{\n        \"name\": network_name,\n    }])\nvolume1 = opentelekomcloud.BlockstorageVolumeV2(\"volume_1\",\n    size=1,\n    name=volume_name)\nva1 = opentelekomcloud.ComputeVolumeAttachV2(\"va_1\",\n    volume_id=volume1.blockstorage_volume_v2_id,\n    instance_id=instance2.compute_instance_v2_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var instance2 = new Opentelekomcloud.ComputeInstanceV2(\"instance_2\", new()\n    {\n        Name = \"instance_2\",\n        ImageId = imageId,\n        FlavorId = flavorId,\n        KeyPair = keyPair,\n        BlockDevices = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeInstanceV2BlockDeviceArgs\n            {\n                Uuid = imageId,\n                SourceType = \"image\",\n                DestinationType = \"volume\",\n                BootIndex = 0,\n                DeleteOnTermination = true,\n            },\n        },\n        Networks = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Name = networkName,\n            },\n        },\n    });\n\n    var volume1 = new Opentelekomcloud.BlockstorageVolumeV2(\"volume_1\", new()\n    {\n        Size = 1,\n        Name = volumeName,\n    });\n\n    var va1 = new Opentelekomcloud.ComputeVolumeAttachV2(\"va_1\", new()\n    {\n        VolumeId = volume1.BlockstorageVolumeV2Id,\n        InstanceId = instance2.ComputeInstanceV2Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinstance2, err := opentelekomcloud.NewComputeInstanceV2(ctx, \"instance_2\", &opentelekomcloud.ComputeInstanceV2Args{\n\t\t\tName:     pulumi.String(\"instance_2\"),\n\t\t\tImageId:  pulumi.Any(imageId),\n\t\t\tFlavorId: pulumi.Any(flavorId),\n\t\t\tKeyPair:  pulumi.Any(keyPair),\n\t\t\tBlockDevices: opentelekomcloud.ComputeInstanceV2BlockDeviceArray{\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2BlockDeviceArgs{\n\t\t\t\t\tUuid:                pulumi.Any(imageId),\n\t\t\t\t\tSourceType:          pulumi.String(\"image\"),\n\t\t\t\t\tDestinationType:     pulumi.String(\"volume\"),\n\t\t\t\t\tBootIndex:           pulumi.Float64(0),\n\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNetworks: opentelekomcloud.ComputeInstanceV2NetworkArray{\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tName: pulumi.Any(networkName),\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\tvolume1, err := opentelekomcloud.NewBlockstorageVolumeV2(ctx, \"volume_1\", &opentelekomcloud.BlockstorageVolumeV2Args{\n\t\t\tSize: pulumi.Float64(1),\n\t\t\tName: pulumi.Any(volumeName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewComputeVolumeAttachV2(ctx, \"va_1\", &opentelekomcloud.ComputeVolumeAttachV2Args{\n\t\t\tVolumeId:   volume1.BlockstorageVolumeV2Id,\n\t\t\tInstanceId: instance2.ComputeInstanceV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2Args;\nimport com.pulumi.opentelekomcloud.inputs.ComputeInstanceV2BlockDeviceArgs;\nimport com.pulumi.opentelekomcloud.inputs.ComputeInstanceV2NetworkArgs;\nimport com.pulumi.opentelekomcloud.BlockstorageVolumeV2;\nimport com.pulumi.opentelekomcloud.BlockstorageVolumeV2Args;\nimport com.pulumi.opentelekomcloud.ComputeVolumeAttachV2;\nimport com.pulumi.opentelekomcloud.ComputeVolumeAttachV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var instance2 = new ComputeInstanceV2(\"instance2\", ComputeInstanceV2Args.builder()\n            .name(\"instance_2\")\n            .imageId(imageId)\n            .flavorId(flavorId)\n            .keyPair(keyPair)\n            .blockDevices(ComputeInstanceV2BlockDeviceArgs.builder()\n                .uuid(imageId)\n                .sourceType(\"image\")\n                .destinationType(\"volume\")\n                .bootIndex(0.0)\n                .deleteOnTermination(true)\n                .build())\n            .networks(ComputeInstanceV2NetworkArgs.builder()\n                .name(networkName)\n                .build())\n            .build());\n\n        var volume1 = new BlockstorageVolumeV2(\"volume1\", BlockstorageVolumeV2Args.builder()\n            .size(1.0)\n            .name(volumeName)\n            .build());\n\n        var va1 = new ComputeVolumeAttachV2(\"va1\", ComputeVolumeAttachV2Args.builder()\n            .volumeId(volume1.blockstorageVolumeV2Id())\n            .instanceId(instance2.computeInstanceV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  instance2:\n    type: opentelekomcloud:ComputeInstanceV2\n    name: instance_2\n    properties:\n      name: instance_2\n      imageId: ${imageId}\n      flavorId: ${flavorId}\n      keyPair: ${keyPair}\n      blockDevices:\n        - uuid: ${imageId}\n          sourceType: image\n          destinationType: volume\n          bootIndex: 0\n          deleteOnTermination: true\n      networks:\n        - name: ${networkName}\n  volume1:\n    type: opentelekomcloud:BlockstorageVolumeV2\n    name: volume_1\n    properties:\n      size: 1\n      name: ${volumeName}\n  va1:\n    type: opentelekomcloud:ComputeVolumeAttachV2\n    name: va_1\n    properties:\n      volumeId: ${volume1.blockstorageVolumeV2Id}\n      instanceId: ${instance2.computeInstanceV2Id}\n```\n<!--End PulumiCodeChooser -->\n\nTo import the instance outlined in the above configuration do the following:\n\n```\nterraform import opentelekomcloud_compute_instance_v2.instance_2 <instance_id>\nimport opentelekomcloud_blockstorage_volume_v2.volume_1 <volume_id>\nterraform import opentelekomcloud_compute_volume_attach_v2.va_1\n<instance_id>/<volume_id>\n```\n\n* A note on block storage volumes, the importer does not read<span pulumi-lang-nodejs=\" deleteOnTermination \" pulumi-lang-dotnet=\" DeleteOnTermination \" pulumi-lang-go=\" deleteOnTermination \" pulumi-lang-python=\" delete_on_termination \" pulumi-lang-yaml=\" deleteOnTermination \" pulumi-lang-java=\" deleteOnTermination \"> delete_on_termination </span>flag, and always assumes true. If\n  you import an instance created with<span pulumi-lang-nodejs=\" deleteOnTermination \" pulumi-lang-dotnet=\" DeleteOnTermination \" pulumi-lang-go=\" deleteOnTermination \" pulumi-lang-python=\" delete_on_termination \" pulumi-lang-yaml=\" deleteOnTermination \" pulumi-lang-java=\" deleteOnTermination \"> delete_on_termination </span>false, you end up with \"orphaned\" volumes after destruction\n  of instances.\n","inputProperties":{"accessIpV4":{"description":"The first detected Fixed IPv4 address _or_ the Floating IP.\n","type":"string"},"accessIpV6":{"description":"The first detected Fixed IPv6 address.\n","type":"string"},"adminPass":{"description":"The administrative password to assign to the server. Changing this changes the root password\non the existing server.\n","secret":true,"type":"string"},"autoRecovery":{"description":"Configures or deletes automatic recovery of an instance. Defaults to true.\n","type":"boolean"},"availabilityZone":{"description":"The availability zone in which to create the server. Changing this creates a new\nserver.\n","type":"string"},"blockDevices":{"description":"Configuration of block devices. The<span pulumi-lang-nodejs=\" blockDevice \" pulumi-lang-dotnet=\" BlockDevice \" pulumi-lang-go=\" blockDevice \" pulumi-lang-python=\" block_device \" pulumi-lang-yaml=\" blockDevice \" pulumi-lang-java=\" blockDevice \"> block_device </span>structure is documented below. Changing\nthis creates a new server. You can specify multiple block devices which will create an instance with multiple disks.\nThis configuration is very flexible, so please see the\nfollowing [reference](http://docs.openstack.org/developer/nova/block_device_mapping.html)\nfor more information.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FComputeInstanceV2BlockDevice:ComputeInstanceV2BlockDevice"},"type":"array"},"computeInstanceV2Id":{"type":"string"},"configDrive":{"description":"Whether to use the<span pulumi-lang-nodejs=\" configDrive \" pulumi-lang-dotnet=\" ConfigDrive \" pulumi-lang-go=\" configDrive \" pulumi-lang-python=\" config_drive \" pulumi-lang-yaml=\" configDrive \" pulumi-lang-java=\" configDrive \"> config_drive </span>feature to configure the instance. Changing this creates a\nnew server.\n","type":"boolean"},"description":{"description":"Server description.\n","type":"string"},"flavorId":{"description":"The flavor ID of the desired flavor for the server.\nChanging this resizes the existing server.\n","type":"string"},"flavorName":{"description":"The name of the desired flavor for the server. Changing\nthis resizes the existing server.\n","type":"string"},"imageId":{"description":"(Optional; Required if <span pulumi-lang-nodejs=\"`imageName`\" pulumi-lang-dotnet=\"`ImageName`\" pulumi-lang-go=\"`imageName`\" pulumi-lang-python=\"`image_name`\" pulumi-lang-yaml=\"`imageName`\" pulumi-lang-java=\"`imageName`\">`image_name`</span> is empty and not booting from a volume. Do not specify if booting\nfrom a volume.) The image ID of the desired image for the server. Changing this creates a new server.\n","type":"string"},"imageName":{"description":"(Optional; Required if <span pulumi-lang-nodejs=\"`imageId`\" pulumi-lang-dotnet=\"`ImageId`\" pulumi-lang-go=\"`imageId`\" pulumi-lang-python=\"`image_id`\" pulumi-lang-yaml=\"`imageId`\" pulumi-lang-java=\"`imageId`\">`image_id`</span> is empty and not booting from a volume. Do not specify if booting\nfrom a volume.) The name of the desired image for the server. Changing this creates a new server.\n","type":"string"},"keyPair":{"description":"The name of a key pair to put on the server. The key pair must already be created and\nassociated with the tenant's account. Changing this creates a new server.\n","type":"string"},"metadata":{"additionalProperties":{"type":"string"},"description":"Metadata key/value pairs to make available from within the instance. Changing this updates the\nexisting server metadata.\n","type":"object"},"name":{"description":"A unique name for the resource.\n","type":"string"},"networks":{"description":"An array of one or more networks to attach to the instance. Required when there are multiple\nnetworks defined for the tenant. The network object structure is documented below. Changing this creates a new server.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FComputeInstanceV2Network:ComputeInstanceV2Network"},"type":"array"},"powerState":{"description":"Provide the VM state. Only <span pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\">`active`</span> and <span pulumi-lang-nodejs=\"`shutoff`\" pulumi-lang-dotnet=\"`Shutoff`\" pulumi-lang-go=\"`shutoff`\" pulumi-lang-python=\"`shutoff`\" pulumi-lang-yaml=\"`shutoff`\" pulumi-lang-java=\"`shutoff`\">`shutoff`</span> are supported values.\n\n->\nIf the initial <span pulumi-lang-nodejs=\"`powerState`\" pulumi-lang-dotnet=\"`PowerState`\" pulumi-lang-go=\"`powerState`\" pulumi-lang-python=\"`power_state`\" pulumi-lang-yaml=\"`powerState`\" pulumi-lang-java=\"`powerState`\">`power_state`</span> is the <span pulumi-lang-nodejs=\"`shutoff`\" pulumi-lang-dotnet=\"`Shutoff`\" pulumi-lang-go=\"`shutoff`\" pulumi-lang-python=\"`shutoff`\" pulumi-lang-yaml=\"`shutoff`\" pulumi-lang-java=\"`shutoff`\">`shutoff`</span> the VM will be stopped immediately after build, and the provisioners\nlike remote-exec or files are not supported.\n","type":"string"},"region":{"type":"string"},"schedulerHints":{"description":"Provide the Nova scheduler with hints on how the instance should be launched. The\navailable hints are described below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FComputeInstanceV2SchedulerHint:ComputeInstanceV2SchedulerHint"},"type":"array"},"securityGroups":{"description":"An array of one or more security group names to associate with the server. Changing\nthis results in adding/removing security groups from the existing server.\n\n> **Warning** Names should be used and not IDs. Security group names should be **unique**, otherwise it will return an\nerror.\n\n> When attaching the instance to networks using Ports, place the security groups on the Port and not the instance.\n","items":{"type":"string"},"type":"array"},"sshPrivateKeyPath":{"description":"The path to the private key to use for SSH access. Required only if you want to\nget the password from the windows instance.\n","secret":true,"type":"string"},"stopBeforeDestroy":{"description":"Whether to try stop instance gracefully before destroying it, thus giving chance\nfor guest OS daemons to stop correctly. If instance doesn't stop within a timeout, it will be destroyed anyway.\n","type":"boolean"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FComputeInstanceV2Timeouts:ComputeInstanceV2Timeouts"},"userData":{"description":"The user data to provide when launching the instance. Changing this creates a new server.\n","type":"string"}},"properties":{"accessIpV4":{"description":"The first detected Fixed IPv4 address _or_ the Floating IP.\n","type":"string"},"accessIpV6":{"description":"The first detected Fixed IPv6 address.\n","type":"string"},"adminPass":{"description":"The administrative password to assign to the server. Changing this changes the root password\non the existing server.\n","secret":true,"type":"string"},"allMetadata":{"additionalProperties":{"type":"string"},"type":"object"},"autoRecovery":{"description":"Configures or deletes automatic recovery of an instance. Defaults to true.\n","type":"boolean"},"availabilityZone":{"description":"The availability zone in which to create the server. Changing this creates a new\nserver.\n","type":"string"},"blockDevices":{"description":"Configuration of block devices. The<span pulumi-lang-nodejs=\" blockDevice \" pulumi-lang-dotnet=\" BlockDevice \" pulumi-lang-go=\" blockDevice \" pulumi-lang-python=\" block_device \" pulumi-lang-yaml=\" blockDevice \" pulumi-lang-java=\" blockDevice \"> block_device </span>structure is documented below. Changing\nthis creates a new server. You can specify multiple block devices which will create an instance with multiple disks.\nThis configuration is very flexible, so please see the\nfollowing [reference](http://docs.openstack.org/developer/nova/block_device_mapping.html)\nfor more information.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FComputeInstanceV2BlockDevice:ComputeInstanceV2BlockDevice"},"type":"array"},"computeInstanceV2Id":{"type":"string"},"configDrive":{"description":"Whether to use the<span pulumi-lang-nodejs=\" configDrive \" pulumi-lang-dotnet=\" ConfigDrive \" pulumi-lang-go=\" configDrive \" pulumi-lang-python=\" config_drive \" pulumi-lang-yaml=\" configDrive \" pulumi-lang-java=\" configDrive \"> config_drive </span>feature to configure the instance. Changing this creates a\nnew server.\n","type":"boolean"},"description":{"description":"Server description.\n","type":"string"},"encryptedPassword":{"description":"The encrypted password of the server. This is only available if the server is a Windows server.\nIf privateKey == nil the encrypted password is returned and can be decrypted with:\necho '<pwd>' | base64 -D | openssl rsautl -decrypt -inkey <private_key>\n","secret":true,"type":"string"},"flavorId":{"description":"The flavor ID of the desired flavor for the server.\nChanging this resizes the existing server.\n","type":"string"},"flavorName":{"description":"The name of the desired flavor for the server. Changing\nthis resizes the existing server.\n","type":"string"},"imageId":{"description":"(Optional; Required if <span pulumi-lang-nodejs=\"`imageName`\" pulumi-lang-dotnet=\"`ImageName`\" pulumi-lang-go=\"`imageName`\" pulumi-lang-python=\"`image_name`\" pulumi-lang-yaml=\"`imageName`\" pulumi-lang-java=\"`imageName`\">`image_name`</span> is empty and not booting from a volume. Do not specify if booting\nfrom a volume.) The image ID of the desired image for the server. Changing this creates a new server.\n","type":"string"},"imageName":{"description":"(Optional; Required if <span pulumi-lang-nodejs=\"`imageId`\" pulumi-lang-dotnet=\"`ImageId`\" pulumi-lang-go=\"`imageId`\" pulumi-lang-python=\"`image_id`\" pulumi-lang-yaml=\"`imageId`\" pulumi-lang-java=\"`imageId`\">`image_id`</span> is empty and not booting from a volume. Do not specify if booting\nfrom a volume.) The name of the desired image for the server. Changing this creates a new server.\n","type":"string"},"keyPair":{"description":"The name of a key pair to put on the server. The key pair must already be created and\nassociated with the tenant's account. Changing this creates a new server.\n","type":"string"},"metadata":{"additionalProperties":{"type":"string"},"description":"Metadata key/value pairs to make available from within the instance. Changing this updates the\nexisting server metadata.\n","type":"object"},"name":{"description":"A unique name for the resource.\n","type":"string"},"networks":{"description":"An array of one or more networks to attach to the instance. Required when there are multiple\nnetworks defined for the tenant. The network object structure is documented below. Changing this creates a new server.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FComputeInstanceV2Network:ComputeInstanceV2Network"},"type":"array"},"password":{"description":"The password of the server. This is only available if the server is a Windows server.\nIf privateKey != nil the password is decrypted with the private key.\n","secret":true,"type":"string"},"powerState":{"description":"Provide the VM state. Only <span pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\">`active`</span> and <span pulumi-lang-nodejs=\"`shutoff`\" pulumi-lang-dotnet=\"`Shutoff`\" pulumi-lang-go=\"`shutoff`\" pulumi-lang-python=\"`shutoff`\" pulumi-lang-yaml=\"`shutoff`\" pulumi-lang-java=\"`shutoff`\">`shutoff`</span> are supported values.\n\n->\nIf the initial <span pulumi-lang-nodejs=\"`powerState`\" pulumi-lang-dotnet=\"`PowerState`\" pulumi-lang-go=\"`powerState`\" pulumi-lang-python=\"`power_state`\" pulumi-lang-yaml=\"`powerState`\" pulumi-lang-java=\"`powerState`\">`power_state`</span> is the <span pulumi-lang-nodejs=\"`shutoff`\" pulumi-lang-dotnet=\"`Shutoff`\" pulumi-lang-go=\"`shutoff`\" pulumi-lang-python=\"`shutoff`\" pulumi-lang-yaml=\"`shutoff`\" pulumi-lang-java=\"`shutoff`\">`shutoff`</span> the VM will be stopped immediately after build, and the provisioners\nlike remote-exec or files are not supported.\n","type":"string"},"region":{"type":"string"},"schedulerHints":{"description":"Provide the Nova scheduler with hints on how the instance should be launched. The\navailable hints are described below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FComputeInstanceV2SchedulerHint:ComputeInstanceV2SchedulerHint"},"type":"array"},"securityGroups":{"description":"An array of one or more security group names to associate with the server. Changing\nthis results in adding/removing security groups from the existing server.\n\n> **Warning** Names should be used and not IDs. Security group names should be **unique**, otherwise it will return an\nerror.\n\n> When attaching the instance to networks using Ports, place the security groups on the Port and not the instance.\n","items":{"type":"string"},"type":"array"},"sshPrivateKeyPath":{"description":"The path to the private key to use for SSH access. Required only if you want to\nget the password from the windows instance.\n","secret":true,"type":"string"},"stopBeforeDestroy":{"description":"Whether to try stop instance gracefully before destroying it, thus giving chance\nfor guest OS daemons to stop correctly. If instance doesn't stop within a timeout, it will be destroyed anyway.\n","type":"boolean"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FComputeInstanceV2Timeouts:ComputeInstanceV2Timeouts"},"userData":{"description":"The user data to provide when launching the instance. Changing this creates a new server.\n","type":"string"},"volumeAttacheds":{"items":{"$ref":"#/types/opentelekomcloud:index%2FComputeInstanceV2VolumeAttached:ComputeInstanceV2VolumeAttached"},"type":"array"}},"required":["accessIpV4","accessIpV6","allMetadata","autoRecovery","availabilityZone","computeInstanceV2Id","description","encryptedPassword","flavorId","flavorName","imageId","imageName","name","password","region","securityGroups","volumeAttacheds"],"stateInputs":{"description":"Input properties used for looking up and filtering ComputeInstanceV2 resources.\n","properties":{"accessIpV4":{"description":"The first detected Fixed IPv4 address _or_ the Floating IP.\n","type":"string"},"accessIpV6":{"description":"The first detected Fixed IPv6 address.\n","type":"string"},"adminPass":{"description":"The administrative password to assign to the server. Changing this changes the root password\non the existing server.\n","secret":true,"type":"string"},"allMetadata":{"additionalProperties":{"type":"string"},"type":"object"},"autoRecovery":{"description":"Configures or deletes automatic recovery of an instance. Defaults to true.\n","type":"boolean"},"availabilityZone":{"description":"The availability zone in which to create the server. Changing this creates a new\nserver.\n","type":"string"},"blockDevices":{"description":"Configuration of block devices. The<span pulumi-lang-nodejs=\" blockDevice \" pulumi-lang-dotnet=\" BlockDevice \" pulumi-lang-go=\" blockDevice \" pulumi-lang-python=\" block_device \" pulumi-lang-yaml=\" blockDevice \" pulumi-lang-java=\" blockDevice \"> block_device </span>structure is documented below. Changing\nthis creates a new server. You can specify multiple block devices which will create an instance with multiple disks.\nThis configuration is very flexible, so please see the\nfollowing [reference](http://docs.openstack.org/developer/nova/block_device_mapping.html)\nfor more information.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FComputeInstanceV2BlockDevice:ComputeInstanceV2BlockDevice"},"type":"array"},"computeInstanceV2Id":{"type":"string"},"configDrive":{"description":"Whether to use the<span pulumi-lang-nodejs=\" configDrive \" pulumi-lang-dotnet=\" ConfigDrive \" pulumi-lang-go=\" configDrive \" pulumi-lang-python=\" config_drive \" pulumi-lang-yaml=\" configDrive \" pulumi-lang-java=\" configDrive \"> config_drive </span>feature to configure the instance. Changing this creates a\nnew server.\n","type":"boolean"},"description":{"description":"Server description.\n","type":"string"},"encryptedPassword":{"description":"The encrypted password of the server. This is only available if the server is a Windows server.\nIf privateKey == nil the encrypted password is returned and can be decrypted with:\necho '<pwd>' | base64 -D | openssl rsautl -decrypt -inkey <private_key>\n","secret":true,"type":"string"},"flavorId":{"description":"The flavor ID of the desired flavor for the server.\nChanging this resizes the existing server.\n","type":"string"},"flavorName":{"description":"The name of the desired flavor for the server. Changing\nthis resizes the existing server.\n","type":"string"},"imageId":{"description":"(Optional; Required if <span pulumi-lang-nodejs=\"`imageName`\" pulumi-lang-dotnet=\"`ImageName`\" pulumi-lang-go=\"`imageName`\" pulumi-lang-python=\"`image_name`\" pulumi-lang-yaml=\"`imageName`\" pulumi-lang-java=\"`imageName`\">`image_name`</span> is empty and not booting from a volume. Do not specify if booting\nfrom a volume.) The image ID of the desired image for the server. Changing this creates a new server.\n","type":"string"},"imageName":{"description":"(Optional; Required if <span pulumi-lang-nodejs=\"`imageId`\" pulumi-lang-dotnet=\"`ImageId`\" pulumi-lang-go=\"`imageId`\" pulumi-lang-python=\"`image_id`\" pulumi-lang-yaml=\"`imageId`\" pulumi-lang-java=\"`imageId`\">`image_id`</span> is empty and not booting from a volume. Do not specify if booting\nfrom a volume.) The name of the desired image for the server. Changing this creates a new server.\n","type":"string"},"keyPair":{"description":"The name of a key pair to put on the server. The key pair must already be created and\nassociated with the tenant's account. Changing this creates a new server.\n","type":"string"},"metadata":{"additionalProperties":{"type":"string"},"description":"Metadata key/value pairs to make available from within the instance. Changing this updates the\nexisting server metadata.\n","type":"object"},"name":{"description":"A unique name for the resource.\n","type":"string"},"networks":{"description":"An array of one or more networks to attach to the instance. Required when there are multiple\nnetworks defined for the tenant. The network object structure is documented below. Changing this creates a new server.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FComputeInstanceV2Network:ComputeInstanceV2Network"},"type":"array"},"password":{"description":"The password of the server. This is only available if the server is a Windows server.\nIf privateKey != nil the password is decrypted with the private key.\n","secret":true,"type":"string"},"powerState":{"description":"Provide the VM state. Only <span pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\">`active`</span> and <span pulumi-lang-nodejs=\"`shutoff`\" pulumi-lang-dotnet=\"`Shutoff`\" pulumi-lang-go=\"`shutoff`\" pulumi-lang-python=\"`shutoff`\" pulumi-lang-yaml=\"`shutoff`\" pulumi-lang-java=\"`shutoff`\">`shutoff`</span> are supported values.\n\n->\nIf the initial <span pulumi-lang-nodejs=\"`powerState`\" pulumi-lang-dotnet=\"`PowerState`\" pulumi-lang-go=\"`powerState`\" pulumi-lang-python=\"`power_state`\" pulumi-lang-yaml=\"`powerState`\" pulumi-lang-java=\"`powerState`\">`power_state`</span> is the <span pulumi-lang-nodejs=\"`shutoff`\" pulumi-lang-dotnet=\"`Shutoff`\" pulumi-lang-go=\"`shutoff`\" pulumi-lang-python=\"`shutoff`\" pulumi-lang-yaml=\"`shutoff`\" pulumi-lang-java=\"`shutoff`\">`shutoff`</span> the VM will be stopped immediately after build, and the provisioners\nlike remote-exec or files are not supported.\n","type":"string"},"region":{"type":"string"},"schedulerHints":{"description":"Provide the Nova scheduler with hints on how the instance should be launched. The\navailable hints are described below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FComputeInstanceV2SchedulerHint:ComputeInstanceV2SchedulerHint"},"type":"array"},"securityGroups":{"description":"An array of one or more security group names to associate with the server. Changing\nthis results in adding/removing security groups from the existing server.\n\n> **Warning** Names should be used and not IDs. Security group names should be **unique**, otherwise it will return an\nerror.\n\n> When attaching the instance to networks using Ports, place the security groups on the Port and not the instance.\n","items":{"type":"string"},"type":"array"},"sshPrivateKeyPath":{"description":"The path to the private key to use for SSH access. Required only if you want to\nget the password from the windows instance.\n","secret":true,"type":"string"},"stopBeforeDestroy":{"description":"Whether to try stop instance gracefully before destroying it, thus giving chance\nfor guest OS daemons to stop correctly. If instance doesn't stop within a timeout, it will be destroyed anyway.\n","type":"boolean"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FComputeInstanceV2Timeouts:ComputeInstanceV2Timeouts"},"userData":{"description":"The user data to provide when launching the instance. Changing this creates a new server.\n","type":"string"},"volumeAttacheds":{"items":{"$ref":"#/types/opentelekomcloud:index%2FComputeInstanceV2VolumeAttached:ComputeInstanceV2VolumeAttached"},"type":"array"}},"type":"object"},"type":"object"},"opentelekomcloud:index/computeKeypairV2:ComputeKeypairV2":{"description":"## Example Usage\n\n### Importing an SSH key\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst import_keypair = new opentelekomcloud.ComputeKeypairV2(\"import-keypair\", {\n    name: \"imported-keypair\",\n    publicKey: \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLotBCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAnOfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZqd9LvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TaIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIF61p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nimport_keypair = opentelekomcloud.ComputeKeypairV2(\"import-keypair\",\n    name=\"imported-keypair\",\n    public_key=\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLotBCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAnOfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZqd9LvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TaIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIF61p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var import_keypair = new Opentelekomcloud.ComputeKeypairV2(\"import-keypair\", new()\n    {\n        Name = \"imported-keypair\",\n        PublicKey = \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLotBCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAnOfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZqd9LvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TaIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIF61p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewComputeKeypairV2(ctx, \"import-keypair\", &opentelekomcloud.ComputeKeypairV2Args{\n\t\t\tName:      pulumi.String(\"imported-keypair\"),\n\t\t\tPublicKey: pulumi.String(\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLotBCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAnOfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZqd9LvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TaIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIF61p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ComputeKeypairV2;\nimport com.pulumi.opentelekomcloud.ComputeKeypairV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var import_keypair = new ComputeKeypairV2(\"import-keypair\", ComputeKeypairV2Args.builder()\n            .name(\"imported-keypair\")\n            .publicKey(\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLotBCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAnOfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZqd9LvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TaIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIF61p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  import-keypair:\n    type: opentelekomcloud:ComputeKeypairV2\n    properties:\n      name: imported-keypair\n      publicKey: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLotBCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAnOfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZqd9LvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TaIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIF61p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB\n```\n<!--End PulumiCodeChooser -->\n\n### Creating an SSH key\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst create_keypair = new opentelekomcloud.ComputeKeypairV2(\"create-keypair\", {name: \"new-keypair\"});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ncreate_keypair = opentelekomcloud.ComputeKeypairV2(\"create-keypair\", name=\"new-keypair\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var create_keypair = new Opentelekomcloud.ComputeKeypairV2(\"create-keypair\", new()\n    {\n        Name = \"new-keypair\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewComputeKeypairV2(ctx, \"create-keypair\", &opentelekomcloud.ComputeKeypairV2Args{\n\t\t\tName: pulumi.String(\"new-keypair\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ComputeKeypairV2;\nimport com.pulumi.opentelekomcloud.ComputeKeypairV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var create_keypair = new ComputeKeypairV2(\"create-keypair\", ComputeKeypairV2Args.builder()\n            .name(\"new-keypair\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  create-keypair:\n    type: opentelekomcloud:ComputeKeypairV2\n    properties:\n      name: new-keypair\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nKey pairs can be imported using the `name`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/computeKeypairV2:ComputeKeypairV2 my-keypair test-keypair\n```\n\nImported key pairs are considered to be not shared.\n\n","inputProperties":{"computeKeypairV2Id":{"type":"string"},"name":{"description":"A unique name for the keypair. Changing this creates a new keypair.\n","type":"string"},"publicKey":{"description":"A pregenerated OpenSSH-formatted public key.\nChanging this creates a new keypair. If a public key is not specified, then\na public/private key pair will be automatically generated. If a pair is\ncreated, then destroying this resource means you will lose access to that\nkeypair forever.\n","type":"string"},"region":{"type":"string"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options.\n","type":"object"}},"properties":{"computeKeypairV2Id":{"type":"string"},"name":{"description":"A unique name for the keypair. Changing this creates a new keypair.\n","type":"string"},"privateKey":{"description":"The generated private key when no public key is specified.\n","type":"string"},"publicKey":{"description":"A pregenerated OpenSSH-formatted public key.\nChanging this creates a new keypair. If a public key is not specified, then\na public/private key pair will be automatically generated. If a pair is\ncreated, then destroying this resource means you will lose access to that\nkeypair forever.\n","type":"string"},"region":{"type":"string"},"shared":{"type":"boolean"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options.\n","type":"object"}},"required":["computeKeypairV2Id","name","privateKey","publicKey","region","shared"],"stateInputs":{"description":"Input properties used for looking up and filtering ComputeKeypairV2 resources.\n","properties":{"computeKeypairV2Id":{"type":"string"},"name":{"description":"A unique name for the keypair. Changing this creates a new keypair.\n","type":"string"},"privateKey":{"description":"The generated private key when no public key is specified.\n","type":"string"},"publicKey":{"description":"A pregenerated OpenSSH-formatted public key.\nChanging this creates a new keypair. If a public key is not specified, then\na public/private key pair will be automatically generated. If a pair is\ncreated, then destroying this resource means you will lose access to that\nkeypair forever.\n","type":"string"},"region":{"type":"string"},"shared":{"type":"boolean"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options.\n","type":"object"}},"type":"object"},"type":"object"},"opentelekomcloud:index/computeSecgroupV2:ComputeSecgroupV2":{"description":"Up-to-date reference of API arguments for ECS security group management you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-cloud-server/api-ref/openstack_nova_apis/security_group_management)\n\nManages a V2 security group resource within OpenTelekomCloud.\n\n~>\nSecurity group compute APIs are marked as discarded in [documentation](https://docs.otc.t-systems.com/en-us/api/ecs/en-us_topic_0267427144.html).\nPlease use `resource/opentelekomcloud_networking_secgroup_v2`\n\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst secgroup1 = new opentelekomcloud.ComputeSecgroupV2(\"secgroup_1\", {\n    name: \"my_secgroup\",\n    description: \"my security group\",\n    rules: [\n        {\n            fromPort: 22,\n            toPort: 22,\n            ipProtocol: \"tcp\",\n            cidr: \"0.0.0.0/0\",\n        },\n        {\n            fromPort: 80,\n            toPort: 80,\n            ipProtocol: \"tcp\",\n            cidr: \"0.0.0.0/0\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nsecgroup1 = opentelekomcloud.ComputeSecgroupV2(\"secgroup_1\",\n    name=\"my_secgroup\",\n    description=\"my security group\",\n    rules=[\n        {\n            \"from_port\": 22,\n            \"to_port\": 22,\n            \"ip_protocol\": \"tcp\",\n            \"cidr\": \"0.0.0.0/0\",\n        },\n        {\n            \"from_port\": 80,\n            \"to_port\": 80,\n            \"ip_protocol\": \"tcp\",\n            \"cidr\": \"0.0.0.0/0\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var secgroup1 = new Opentelekomcloud.ComputeSecgroupV2(\"secgroup_1\", new()\n    {\n        Name = \"my_secgroup\",\n        Description = \"my security group\",\n        Rules = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeSecgroupV2RuleArgs\n            {\n                FromPort = 22,\n                ToPort = 22,\n                IpProtocol = \"tcp\",\n                Cidr = \"0.0.0.0/0\",\n            },\n            new Opentelekomcloud.Inputs.ComputeSecgroupV2RuleArgs\n            {\n                FromPort = 80,\n                ToPort = 80,\n                IpProtocol = \"tcp\",\n                Cidr = \"0.0.0.0/0\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewComputeSecgroupV2(ctx, \"secgroup_1\", &opentelekomcloud.ComputeSecgroupV2Args{\n\t\t\tName:        pulumi.String(\"my_secgroup\"),\n\t\t\tDescription: pulumi.String(\"my security group\"),\n\t\t\tRules: opentelekomcloud.ComputeSecgroupV2RuleArray{\n\t\t\t\t&opentelekomcloud.ComputeSecgroupV2RuleArgs{\n\t\t\t\t\tFromPort:   pulumi.Float64(22),\n\t\t\t\t\tToPort:     pulumi.Float64(22),\n\t\t\t\t\tIpProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tCidr:       pulumi.String(\"0.0.0.0/0\"),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.ComputeSecgroupV2RuleArgs{\n\t\t\t\t\tFromPort:   pulumi.Float64(80),\n\t\t\t\t\tToPort:     pulumi.Float64(80),\n\t\t\t\t\tIpProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tCidr:       pulumi.String(\"0.0.0.0/0\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ComputeSecgroupV2;\nimport com.pulumi.opentelekomcloud.ComputeSecgroupV2Args;\nimport com.pulumi.opentelekomcloud.inputs.ComputeSecgroupV2RuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var secgroup1 = new ComputeSecgroupV2(\"secgroup1\", ComputeSecgroupV2Args.builder()\n            .name(\"my_secgroup\")\n            .description(\"my security group\")\n            .rules(            \n                ComputeSecgroupV2RuleArgs.builder()\n                    .fromPort(22.0)\n                    .toPort(22.0)\n                    .ipProtocol(\"tcp\")\n                    .cidr(\"0.0.0.0/0\")\n                    .build(),\n                ComputeSecgroupV2RuleArgs.builder()\n                    .fromPort(80.0)\n                    .toPort(80.0)\n                    .ipProtocol(\"tcp\")\n                    .cidr(\"0.0.0.0/0\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  secgroup1:\n    type: opentelekomcloud:ComputeSecgroupV2\n    name: secgroup_1\n    properties:\n      name: my_secgroup\n      description: my security group\n      rules:\n        - fromPort: 22\n          toPort: 22\n          ipProtocol: tcp\n          cidr: 0.0.0.0/0\n        - fromPort: 80\n          toPort: 80\n          ipProtocol: tcp\n          cidr: 0.0.0.0/0\n```\n<!--End PulumiCodeChooser -->\n\n## Notes\n\n### Referencing Security Groups\n\nWhen referencing a security group in a configuration (for example, a configuration creates a new security group and then needs to apply it to an instance being created in the same configuration), it is currently recommended to reference the security group by name and not by ID, like this:\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test_server = new opentelekomcloud.ComputeInstanceV2(\"test-server\", {\n    name: \"tf-test\",\n    imageId: \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavorId: \"3\",\n    keyPair: \"my_key_pair_name\",\n    securityGroups: [secgroup1.name],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest_server = opentelekomcloud.ComputeInstanceV2(\"test-server\",\n    name=\"tf-test\",\n    image_id=\"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavor_id=\"3\",\n    key_pair=\"my_key_pair_name\",\n    security_groups=[secgroup1[\"name\"]])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test_server = new Opentelekomcloud.ComputeInstanceV2(\"test-server\", new()\n    {\n        Name = \"tf-test\",\n        ImageId = \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n        FlavorId = \"3\",\n        KeyPair = \"my_key_pair_name\",\n        SecurityGroups = new[]\n        {\n            secgroup1.Name,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewComputeInstanceV2(ctx, \"test-server\", &opentelekomcloud.ComputeInstanceV2Args{\n\t\t\tName:     pulumi.String(\"tf-test\"),\n\t\t\tImageId:  pulumi.String(\"ad091b52-742f-469e-8f3c-fd81cadf0743\"),\n\t\t\tFlavorId: pulumi.String(\"3\"),\n\t\t\tKeyPair:  pulumi.String(\"my_key_pair_name\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tsecgroup1.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test_server = new ComputeInstanceV2(\"test-server\", ComputeInstanceV2Args.builder()\n            .name(\"tf-test\")\n            .imageId(\"ad091b52-742f-469e-8f3c-fd81cadf0743\")\n            .flavorId(\"3\")\n            .keyPair(\"my_key_pair_name\")\n            .securityGroups(secgroup1.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test-server:\n    type: opentelekomcloud:ComputeInstanceV2\n    properties:\n      name: tf-test\n      imageId: ad091b52-742f-469e-8f3c-fd81cadf0743\n      flavorId: '3'\n      keyPair: my_key_pair_name\n      securityGroups:\n        - ${secgroup1.name}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nSecurity Groups can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/computeSecgroupV2:ComputeSecgroupV2 my_secgroup 1bc30ee9-9d5b-4c30-bdd5-7f1e663f5edf\n```\n\n","inputProperties":{"computeSecgroupV2Id":{"type":"string"},"description":{"description":"A description for the security group. Changing this\nupdates the <span pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\">`description`</span> of an existing security group.\n","type":"string"},"name":{"description":"A unique name for the security group. Changing this\nupdates the <span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span> of an existing security group.\n","type":"string"},"region":{"type":"string"},"rules":{"description":"A rule describing how the security group operates. The\nrule object structure is documented below. Changing this updates the\nsecurity group rules. As shown in the example above, multiple rule blocks\nmay be used.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FComputeSecgroupV2Rule:ComputeSecgroupV2Rule"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FComputeSecgroupV2Timeouts:ComputeSecgroupV2Timeouts"}},"properties":{"computeSecgroupV2Id":{"type":"string"},"description":{"description":"A description for the security group. Changing this\nupdates the <span pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\">`description`</span> of an existing security group.\n","type":"string"},"name":{"description":"A unique name for the security group. Changing this\nupdates the <span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span> of an existing security group.\n","type":"string"},"region":{"type":"string"},"rules":{"description":"A rule describing how the security group operates. The\nrule object structure is documented below. Changing this updates the\nsecurity group rules. As shown in the example above, multiple rule blocks\nmay be used.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FComputeSecgroupV2Rule:ComputeSecgroupV2Rule"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FComputeSecgroupV2Timeouts:ComputeSecgroupV2Timeouts"}},"required":["computeSecgroupV2Id","description","name","region"],"requiredInputs":["description"],"stateInputs":{"description":"Input properties used for looking up and filtering ComputeSecgroupV2 resources.\n","properties":{"computeSecgroupV2Id":{"type":"string"},"description":{"description":"A description for the security group. Changing this\nupdates the <span pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\">`description`</span> of an existing security group.\n","type":"string"},"name":{"description":"A unique name for the security group. Changing this\nupdates the <span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span> of an existing security group.\n","type":"string"},"region":{"type":"string"},"rules":{"description":"A rule describing how the security group operates. The\nrule object structure is documented below. Changing this updates the\nsecurity group rules. As shown in the example above, multiple rule blocks\nmay be used.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FComputeSecgroupV2Rule:ComputeSecgroupV2Rule"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FComputeSecgroupV2Timeouts:ComputeSecgroupV2Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/computeServergroupV2:ComputeServergroupV2":{"description":"Up-to-date reference of API arguments for ECS server group management you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-cloud-server/api-ref/openstack_nova_apis/ecs_group_management)\n\nManages a V2 Server Group resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test_sg = new opentelekomcloud.ComputeServergroupV2(\"test-sg\", {\n    name: \"my-sg\",\n    policies: [\"anti-affinity\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest_sg = opentelekomcloud.ComputeServergroupV2(\"test-sg\",\n    name=\"my-sg\",\n    policies=[\"anti-affinity\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test_sg = new Opentelekomcloud.ComputeServergroupV2(\"test-sg\", new()\n    {\n        Name = \"my-sg\",\n        Policies = new[]\n        {\n            \"anti-affinity\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewComputeServergroupV2(ctx, \"test-sg\", &opentelekomcloud.ComputeServergroupV2Args{\n\t\t\tName: pulumi.String(\"my-sg\"),\n\t\t\tPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"anti-affinity\"),\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.opentelekomcloud.ComputeServergroupV2;\nimport com.pulumi.opentelekomcloud.ComputeServergroupV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test_sg = new ComputeServergroupV2(\"test-sg\", ComputeServergroupV2Args.builder()\n            .name(\"my-sg\")\n            .policies(\"anti-affinity\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test-sg:\n    type: opentelekomcloud:ComputeServergroupV2\n    properties:\n      name: my-sg\n      policies:\n        - anti-affinity\n```\n<!--End PulumiCodeChooser -->\n\n## Policies\n\n* `anti-affinity` - All instances/servers launched in this group will be\n  hosted on different compute nodes.\n\n## Import\n\nServer Groups can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/computeServergroupV2:ComputeServergroupV2 test-sg 1bc30ee9-9d5b-4c30-bdd5-7f1e663f5edf\n```\n\n","inputProperties":{"computeServergroupV2Id":{"description":"ID of the server group.\n","type":"string"},"name":{"description":"A unique name for the server group. Changing this creates\na new server group.\n","type":"string"},"policies":{"description":"The set of policies for the server group. Only two\ntwo policies are available right now, and both are mutually exclusive. See\nthe Policies section for more information. Changing this creates a new\nserver group.\n","items":{"type":"string"},"type":"array"},"region":{"type":"string"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options.\n","type":"object"}},"properties":{"computeServergroupV2Id":{"description":"ID of the server group.\n","type":"string"},"members":{"description":"The instances that are part of this server group.\n","items":{"type":"string"},"type":"array"},"name":{"description":"A unique name for the server group. Changing this creates\na new server group.\n","type":"string"},"policies":{"description":"The set of policies for the server group. Only two\ntwo policies are available right now, and both are mutually exclusive. See\nthe Policies section for more information. Changing this creates a new\nserver group.\n","items":{"type":"string"},"type":"array"},"region":{"type":"string"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options.\n","type":"object"}},"required":["computeServergroupV2Id","members","name","policies","region"],"requiredInputs":["policies"],"stateInputs":{"description":"Input properties used for looking up and filtering ComputeServergroupV2 resources.\n","properties":{"computeServergroupV2Id":{"description":"ID of the server group.\n","type":"string"},"members":{"description":"The instances that are part of this server group.\n","items":{"type":"string"},"type":"array"},"name":{"description":"A unique name for the server group. Changing this creates\na new server group.\n","type":"string"},"policies":{"description":"The set of policies for the server group. Only two\ntwo policies are available right now, and both are mutually exclusive. See\nthe Policies section for more information. Changing this creates a new\nserver group.\n","items":{"type":"string"},"type":"array"},"region":{"type":"string"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options.\n","type":"object"}},"type":"object"},"type":"object"},"opentelekomcloud:index/computeVolumeAttachV2:ComputeVolumeAttachV2":{"description":"Up-to-date reference of API arguments for ECS disk management you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-cloud-server/api-ref/openstack_nova_apis/disk_management)\n\nAttaches a Block Storage Volume to an Instance using the OpenTelekomCloud\nCompute (Nova) v2 API.\n\n## Example Usage\n\n### Basic attachment of a single volume to a single instance\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst volume1 = new opentelekomcloud.BlockstorageVolumeV2(\"volume_1\", {\n    name: \"volume_1\",\n    size: 1,\n});\nconst instance1 = new opentelekomcloud.ComputeInstanceV2(\"instance_1\", {\n    name: \"instance_1\",\n    securityGroups: [\"default\"],\n});\nconst va1 = new opentelekomcloud.ComputeVolumeAttachV2(\"va_1\", {\n    instanceId: instance1.computeInstanceV2Id,\n    volumeId: volume1.blockstorageVolumeV2Id,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nvolume1 = opentelekomcloud.BlockstorageVolumeV2(\"volume_1\",\n    name=\"volume_1\",\n    size=1)\ninstance1 = opentelekomcloud.ComputeInstanceV2(\"instance_1\",\n    name=\"instance_1\",\n    security_groups=[\"default\"])\nva1 = opentelekomcloud.ComputeVolumeAttachV2(\"va_1\",\n    instance_id=instance1.compute_instance_v2_id,\n    volume_id=volume1.blockstorage_volume_v2_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var volume1 = new Opentelekomcloud.BlockstorageVolumeV2(\"volume_1\", new()\n    {\n        Name = \"volume_1\",\n        Size = 1,\n    });\n\n    var instance1 = new Opentelekomcloud.ComputeInstanceV2(\"instance_1\", new()\n    {\n        Name = \"instance_1\",\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n    });\n\n    var va1 = new Opentelekomcloud.ComputeVolumeAttachV2(\"va_1\", new()\n    {\n        InstanceId = instance1.ComputeInstanceV2Id,\n        VolumeId = volume1.BlockstorageVolumeV2Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvolume1, err := opentelekomcloud.NewBlockstorageVolumeV2(ctx, \"volume_1\", &opentelekomcloud.BlockstorageVolumeV2Args{\n\t\t\tName: pulumi.String(\"volume_1\"),\n\t\t\tSize: pulumi.Float64(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance1, err := opentelekomcloud.NewComputeInstanceV2(ctx, \"instance_1\", &opentelekomcloud.ComputeInstanceV2Args{\n\t\t\tName: pulumi.String(\"instance_1\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewComputeVolumeAttachV2(ctx, \"va_1\", &opentelekomcloud.ComputeVolumeAttachV2Args{\n\t\t\tInstanceId: instance1.ComputeInstanceV2Id,\n\t\t\tVolumeId:   volume1.BlockstorageVolumeV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.BlockstorageVolumeV2;\nimport com.pulumi.opentelekomcloud.BlockstorageVolumeV2Args;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2Args;\nimport com.pulumi.opentelekomcloud.ComputeVolumeAttachV2;\nimport com.pulumi.opentelekomcloud.ComputeVolumeAttachV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var volume1 = new BlockstorageVolumeV2(\"volume1\", BlockstorageVolumeV2Args.builder()\n            .name(\"volume_1\")\n            .size(1.0)\n            .build());\n\n        var instance1 = new ComputeInstanceV2(\"instance1\", ComputeInstanceV2Args.builder()\n            .name(\"instance_1\")\n            .securityGroups(\"default\")\n            .build());\n\n        var va1 = new ComputeVolumeAttachV2(\"va1\", ComputeVolumeAttachV2Args.builder()\n            .instanceId(instance1.computeInstanceV2Id())\n            .volumeId(volume1.blockstorageVolumeV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  volume1:\n    type: opentelekomcloud:BlockstorageVolumeV2\n    name: volume_1\n    properties:\n      name: volume_1\n      size: 1\n  instance1:\n    type: opentelekomcloud:ComputeInstanceV2\n    name: instance_1\n    properties:\n      name: instance_1\n      securityGroups:\n        - default\n  va1:\n    type: opentelekomcloud:ComputeVolumeAttachV2\n    name: va_1\n    properties:\n      instanceId: ${instance1.computeInstanceV2Id}\n      volumeId: ${volume1.blockstorageVolumeV2Id}\n```\n<!--End PulumiCodeChooser -->\n\n### Example with<span pulumi-lang-nodejs=\" forceDetach \" pulumi-lang-dotnet=\" ForceDetach \" pulumi-lang-go=\" forceDetach \" pulumi-lang-python=\" force_detach \" pulumi-lang-yaml=\" forceDetach \" pulumi-lang-java=\" forceDetach \"> force_detach </span>flag\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst vaForce = new opentelekomcloud.ComputeVolumeAttachV2(\"va_force\", {\n    instanceId: instance1.id,\n    volumeId: volume1.id,\n    forceDetach: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nva_force = opentelekomcloud.ComputeVolumeAttachV2(\"va_force\",\n    instance_id=instance1[\"id\"],\n    volume_id=volume1[\"id\"],\n    force_detach=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var vaForce = new Opentelekomcloud.ComputeVolumeAttachV2(\"va_force\", new()\n    {\n        InstanceId = instance1.Id,\n        VolumeId = volume1.Id,\n        ForceDetach = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewComputeVolumeAttachV2(ctx, \"va_force\", &opentelekomcloud.ComputeVolumeAttachV2Args{\n\t\t\tInstanceId:  pulumi.Any(instance1.Id),\n\t\t\tVolumeId:    pulumi.Any(volume1.Id),\n\t\t\tForceDetach: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ComputeVolumeAttachV2;\nimport com.pulumi.opentelekomcloud.ComputeVolumeAttachV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var vaForce = new ComputeVolumeAttachV2(\"vaForce\", ComputeVolumeAttachV2Args.builder()\n            .instanceId(instance1.id())\n            .volumeId(volume1.id())\n            .forceDetach(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vaForce:\n    type: opentelekomcloud:ComputeVolumeAttachV2\n    name: va_force\n    properties:\n      instanceId: ${instance1.id}\n      volumeId: ${volume1.id}\n      forceDetach: true\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nVolume Attachments can be imported using the Instance ID and Volume ID\nseparated by a slash, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/computeVolumeAttachV2:ComputeVolumeAttachV2 va_1 89c60255-9bd6-460c-822a-e2b959ede9d2/45670584-225f-46c3-b33e-6707b589b666\n```\n","inputProperties":{"computeVolumeAttachV2Id":{"type":"string"},"device":{"type":"string"},"forceDetach":{"description":"Indicates whether to force detach the disk when deleting the attachment resource.\nIf set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>, the provider will call the force detach API, ensuring the disk is detached even\nif the normal detach operation fails. Defaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"instanceId":{"description":"The ID of the Instance to attach the Volume to.\n","type":"string"},"region":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FComputeVolumeAttachV2Timeouts:ComputeVolumeAttachV2Timeouts"},"volumeId":{"description":"The ID of the Volume to attach to an Instance.\n","type":"string"}},"properties":{"computeVolumeAttachV2Id":{"type":"string"},"device":{"type":"string"},"forceDetach":{"description":"Indicates whether to force detach the disk when deleting the attachment resource.\nIf set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>, the provider will call the force detach API, ensuring the disk is detached even\nif the normal detach operation fails. Defaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"instanceId":{"description":"The ID of the Instance to attach the Volume to.\n","type":"string"},"region":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FComputeVolumeAttachV2Timeouts:ComputeVolumeAttachV2Timeouts"},"volumeId":{"description":"The ID of the Volume to attach to an Instance.\n","type":"string"}},"required":["computeVolumeAttachV2Id","device","instanceId","region","volumeId"],"requiredInputs":["instanceId","volumeId"],"stateInputs":{"description":"Input properties used for looking up and filtering ComputeVolumeAttachV2 resources.\n","properties":{"computeVolumeAttachV2Id":{"type":"string"},"device":{"type":"string"},"forceDetach":{"description":"Indicates whether to force detach the disk when deleting the attachment resource.\nIf set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>, the provider will call the force detach API, ensuring the disk is detached even\nif the normal detach operation fails. Defaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"instanceId":{"description":"The ID of the Instance to attach the Volume to.\n","type":"string"},"region":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FComputeVolumeAttachV2Timeouts:ComputeVolumeAttachV2Timeouts"},"volumeId":{"description":"The ID of the Volume to attach to an Instance.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/csbsBackupPolicyV1:CsbsBackupPolicyV1":{"description":"Up-to-date reference of API arguments for CSBS backup policy you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-server-backup-service/api-ref/api_description/backup_policy_management)\n\nProvides an OpenTelekomCloud Backup Policy of Resources.\n\n~>\nDeprecated, use <span pulumi-lang-nodejs=\"`opentelekomcloud.CbrPolicyV3`\" pulumi-lang-dotnet=\"`opentelekomcloud.CbrPolicyV3`\" pulumi-lang-go=\"`CbrPolicyV3`\" pulumi-lang-python=\"`CbrPolicyV3`\" pulumi-lang-yaml=\"`opentelekomcloud.CbrPolicyV3`\" pulumi-lang-java=\"`opentelekomcloud.CbrPolicyV3`\">`opentelekomcloud.CbrPolicyV3`</span> resource instead.\n\n## Example Usage\n\n### Basic example\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst name = config.requireObject<any>(\"name\");\nconst id = config.requireObject<any>(\"id\");\nconst resourceName = config.requireObject<any>(\"resourceName\");\nconst backupPolicyV1 = new opentelekomcloud.CsbsBackupPolicyV1(\"backup_policy_v1\", {\n    name: name,\n    resources: [{\n        id: id,\n        type: \"OS::Nova::Server\",\n        name: resourceName,\n    }],\n    scheduledOperation: {\n        enabled: true,\n        operationType: \"backup\",\n        triggerPattern: `BEGIN:VCALENDAR\\x0d\nBEGIN:VEVENT\\x0d\nRRULE:FREQ=WEEKLY;BYDAY=TH;BYHOUR=12;BYMINUTE=27\\x0d\nEND:VEVENT\\x0d\nEND:VCALENDAR\\x0d\n`,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nname = config.require_object(\"name\")\nid = config.require_object(\"id\")\nresource_name = config.require_object(\"resourceName\")\nbackup_policy_v1 = opentelekomcloud.CsbsBackupPolicyV1(\"backup_policy_v1\",\n    name=name,\n    resources=[{\n        \"id\": id,\n        \"type\": \"OS::Nova::Server\",\n        \"name\": resource_name,\n    }],\n    scheduled_operation={\n        \"enabled\": True,\n        \"operation_type\": \"backup\",\n        \"trigger_pattern\": \"\"\"BEGIN:VCALENDAR\\x0d\nBEGIN:VEVENT\\x0d\nRRULE:FREQ=WEEKLY;BYDAY=TH;BYHOUR=12;BYMINUTE=27\\x0d\nEND:VEVENT\\x0d\nEND:VCALENDAR\\x0d\n\"\"\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var name = config.RequireObject<dynamic>(\"name\");\n    var id = config.RequireObject<dynamic>(\"id\");\n    var resourceName = config.RequireObject<dynamic>(\"resourceName\");\n    var backupPolicyV1 = new Opentelekomcloud.CsbsBackupPolicyV1(\"backup_policy_v1\", new()\n    {\n        Name = name,\n        Resources = new[]\n        {\n            new Opentelekomcloud.Inputs.CsbsBackupPolicyV1ResourceArgs\n            {\n                Id = id,\n                Type = \"OS::Nova::Server\",\n                Name = resourceName,\n            },\n        },\n        ScheduledOperation = new Opentelekomcloud.Inputs.CsbsBackupPolicyV1ScheduledOperationArgs\n        {\n            Enabled = true,\n            OperationType = \"backup\",\n            TriggerPattern = @\"BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nRRULE:FREQ=WEEKLY;BYDAY=TH;BYHOUR=12;BYMINUTE=27\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := cfg.RequireObject(\"name\")\n\t\tid := cfg.RequireObject(\"id\")\n\t\tresourceName := cfg.RequireObject(\"resourceName\")\n\t\t_, err := opentelekomcloud.NewCsbsBackupPolicyV1(ctx, \"backup_policy_v1\", &opentelekomcloud.CsbsBackupPolicyV1Args{\n\t\t\tName: pulumi.Any(name),\n\t\t\tResources: opentelekomcloud.CsbsBackupPolicyV1ResourceArray{\n\t\t\t\t&opentelekomcloud.CsbsBackupPolicyV1ResourceArgs{\n\t\t\t\t\tId:   pulumi.Any(id),\n\t\t\t\t\tType: pulumi.String(\"OS::Nova::Server\"),\n\t\t\t\t\tName: pulumi.Any(resourceName),\n\t\t\t\t},\n\t\t\t},\n\t\t\tScheduledOperation: &opentelekomcloud.CsbsBackupPolicyV1ScheduledOperationArgs{\n\t\t\t\tEnabled:       pulumi.Bool(true),\n\t\t\t\tOperationType: pulumi.String(\"backup\"),\n\t\t\t\tTriggerPattern: pulumi.String(`BEGIN:VCALENDAR\nBEGIN:VEVENT\nRRULE:FREQ=WEEKLY;BYDAY=TH;BYHOUR=12;BYMINUTE=27\nEND:VEVENT\nEND:VCALENDAR\n`),\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.opentelekomcloud.CsbsBackupPolicyV1;\nimport com.pulumi.opentelekomcloud.CsbsBackupPolicyV1Args;\nimport com.pulumi.opentelekomcloud.inputs.CsbsBackupPolicyV1ResourceArgs;\nimport com.pulumi.opentelekomcloud.inputs.CsbsBackupPolicyV1ScheduledOperationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\");\n        final var id = config.get(\"id\");\n        final var resourceName = config.get(\"resourceName\");\n        var backupPolicyV1 = new CsbsBackupPolicyV1(\"backupPolicyV1\", CsbsBackupPolicyV1Args.builder()\n            .name(name)\n            .resources(CsbsBackupPolicyV1ResourceArgs.builder()\n                .id(id)\n                .type(\"OS::Nova::Server\")\n                .name(resourceName)\n                .build())\n            .scheduledOperation(CsbsBackupPolicyV1ScheduledOperationArgs.builder()\n                .enabled(true)\n                .operationType(\"backup\")\n                .triggerPattern(\"\"\"\nBEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nRRULE:FREQ=WEEKLY;BYDAY=TH;BYHOUR=12;BYMINUTE=27\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n                \"\"\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: dynamic\n  id:\n    type: dynamic\n  resourceName:\n    type: dynamic\nresources:\n  backupPolicyV1:\n    type: opentelekomcloud:CsbsBackupPolicyV1\n    name: backup_policy_v1\n    properties:\n      name: ${name}\n      resources:\n        - id: ${id}\n          type: OS::Nova::Server\n          name: ${resourceName}\n      scheduledOperation:\n        enabled: true\n        operationType: backup\n        triggerPattern: \"BEGIN:VCALENDAR\\r\\nBEGIN:VEVENT\\r\\nRRULE:FREQ=WEEKLY;BYDAY=TH;BYHOUR=12;BYMINUTE=27\\r\\nEND:VEVENT\\r\\nEND:VCALENDAR\\r\\n\"\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nBackup Policy can be imported using `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/csbsBackupPolicyV1:CsbsBackupPolicyV1 backup_policy_v1 7056d636-ac60-4663-8a6c-82d3c32c1c64\n```\n\n","inputProperties":{"common":{"additionalProperties":{"type":"string"},"description":"General backup policy parameters, which are blank by default.\n","type":"object"},"csbsBackupPolicyV1Id":{"description":"Specifies Scheduling period ID.\n","type":"string"},"description":{"description":"Backup policy description. The value consists of 0 to 255 characters and must not contain a greater-than sign (>) or less-than sign (<).\n","type":"string"},"name":{"description":"Specifies the name of backup policy. The value consists of 1 to 255 characters and can contain only letters, digits, underscores (_), and hyphens (-).\n","type":"string"},"providerId":{"description":"Specifies backup provider ID. Default value is **fc4d5750-22e7-4798-8a46-f48f62c4c1da**\n","type":"string"},"region":{"type":"string"},"resources":{"items":{"$ref":"#/types/opentelekomcloud:index%2FCsbsBackupPolicyV1Resource:CsbsBackupPolicyV1Resource"},"type":"array"},"scheduledOperation":{"$ref":"#/types/opentelekomcloud:index%2FCsbsBackupPolicyV1ScheduledOperation:CsbsBackupPolicyV1ScheduledOperation","description":"Backup plan information\n"},"tags":{"items":{"$ref":"#/types/opentelekomcloud:index%2FCsbsBackupPolicyV1Tag:CsbsBackupPolicyV1Tag"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCsbsBackupPolicyV1Timeouts:CsbsBackupPolicyV1Timeouts"}},"properties":{"common":{"additionalProperties":{"type":"string"},"description":"General backup policy parameters, which are blank by default.\n","type":"object"},"createdAt":{"description":"Backup creation time.\n","type":"string"},"csbsBackupPolicyV1Id":{"description":"Specifies Scheduling period ID.\n","type":"string"},"description":{"description":"Backup policy description. The value consists of 0 to 255 characters and must not contain a greater-than sign (>) or less-than sign (<).\n","type":"string"},"name":{"description":"Specifies the name of backup policy. The value consists of 1 to 255 characters and can contain only letters, digits, underscores (_), and hyphens (-).\n","type":"string"},"providerId":{"description":"Specifies backup provider ID. Default value is **fc4d5750-22e7-4798-8a46-f48f62c4c1da**\n","type":"string"},"region":{"type":"string"},"resources":{"items":{"$ref":"#/types/opentelekomcloud:index%2FCsbsBackupPolicyV1Resource:CsbsBackupPolicyV1Resource"},"type":"array"},"scheduledOperation":{"$ref":"#/types/opentelekomcloud:index%2FCsbsBackupPolicyV1ScheduledOperation:CsbsBackupPolicyV1ScheduledOperation","description":"Backup plan information\n"},"status":{"description":"Status of Backup Policy.\n","type":"string"},"tags":{"items":{"$ref":"#/types/opentelekomcloud:index%2FCsbsBackupPolicyV1Tag:CsbsBackupPolicyV1Tag"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCsbsBackupPolicyV1Timeouts:CsbsBackupPolicyV1Timeouts"}},"required":["createdAt","csbsBackupPolicyV1Id","name","region","resources","scheduledOperation","status"],"requiredInputs":["resources","scheduledOperation"],"stateInputs":{"description":"Input properties used for looking up and filtering CsbsBackupPolicyV1 resources.\n","properties":{"common":{"additionalProperties":{"type":"string"},"description":"General backup policy parameters, which are blank by default.\n","type":"object"},"createdAt":{"description":"Backup creation time.\n","type":"string"},"csbsBackupPolicyV1Id":{"description":"Specifies Scheduling period ID.\n","type":"string"},"description":{"description":"Backup policy description. The value consists of 0 to 255 characters and must not contain a greater-than sign (>) or less-than sign (<).\n","type":"string"},"name":{"description":"Specifies the name of backup policy. The value consists of 1 to 255 characters and can contain only letters, digits, underscores (_), and hyphens (-).\n","type":"string"},"providerId":{"description":"Specifies backup provider ID. Default value is **fc4d5750-22e7-4798-8a46-f48f62c4c1da**\n","type":"string"},"region":{"type":"string"},"resources":{"items":{"$ref":"#/types/opentelekomcloud:index%2FCsbsBackupPolicyV1Resource:CsbsBackupPolicyV1Resource"},"type":"array"},"scheduledOperation":{"$ref":"#/types/opentelekomcloud:index%2FCsbsBackupPolicyV1ScheduledOperation:CsbsBackupPolicyV1ScheduledOperation","description":"Backup plan information\n"},"status":{"description":"Status of Backup Policy.\n","type":"string"},"tags":{"items":{"$ref":"#/types/opentelekomcloud:index%2FCsbsBackupPolicyV1Tag:CsbsBackupPolicyV1Tag"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCsbsBackupPolicyV1Timeouts:CsbsBackupPolicyV1Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/csbsBackupV1:CsbsBackupV1":{"description":"Up-to-date reference of API arguments for CSBS backup you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-server-backup-service/api-ref/api_description/backup_management)\n\nProvides an OpenTelekomCloud Backup of Resources.\n\n~>\nDeprecated, use <span pulumi-lang-nodejs=\"`opentelekomcloud.CbrVaultV3`\" pulumi-lang-dotnet=\"`opentelekomcloud.CbrVaultV3`\" pulumi-lang-go=\"`CbrVaultV3`\" pulumi-lang-python=\"`CbrVaultV3`\" pulumi-lang-yaml=\"`opentelekomcloud.CbrVaultV3`\" pulumi-lang-java=\"`opentelekomcloud.CbrVaultV3`\">`opentelekomcloud.CbrVaultV3`</span> resource instead.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst backupName = config.requireObject<any>(\"backupName\");\nconst resourceId = config.requireObject<any>(\"resourceId\");\nconst backupV1 = new opentelekomcloud.CsbsBackupV1(\"backup_v1\", {\n    backupName: backupName,\n    resourceId: resourceId,\n    resourceType: \"OS::Nova::Server\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nbackup_name = config.require_object(\"backupName\")\nresource_id = config.require_object(\"resourceId\")\nbackup_v1 = opentelekomcloud.CsbsBackupV1(\"backup_v1\",\n    backup_name=backup_name,\n    resource_id=resource_id,\n    resource_type=\"OS::Nova::Server\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var backupName = config.RequireObject<dynamic>(\"backupName\");\n    var resourceId = config.RequireObject<dynamic>(\"resourceId\");\n    var backupV1 = new Opentelekomcloud.CsbsBackupV1(\"backup_v1\", new()\n    {\n        BackupName = backupName,\n        ResourceId = resourceId,\n        ResourceType = \"OS::Nova::Server\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tbackupName := cfg.RequireObject(\"backupName\")\n\t\tresourceId := cfg.RequireObject(\"resourceId\")\n\t\t_, err := opentelekomcloud.NewCsbsBackupV1(ctx, \"backup_v1\", &opentelekomcloud.CsbsBackupV1Args{\n\t\t\tBackupName:   pulumi.Any(backupName),\n\t\t\tResourceId:   pulumi.Any(resourceId),\n\t\t\tResourceType: pulumi.String(\"OS::Nova::Server\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CsbsBackupV1;\nimport com.pulumi.opentelekomcloud.CsbsBackupV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var backupName = config.get(\"backupName\");\n        final var resourceId = config.get(\"resourceId\");\n        var backupV1 = new CsbsBackupV1(\"backupV1\", CsbsBackupV1Args.builder()\n            .backupName(backupName)\n            .resourceId(resourceId)\n            .resourceType(\"OS::Nova::Server\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  backupName:\n    type: dynamic\n  resourceId:\n    type: dynamic\nresources:\n  backupV1:\n    type: opentelekomcloud:CsbsBackupV1\n    name: backup_v1\n    properties:\n      backupName: ${backupName}\n      resourceId: ${resourceId}\n      resourceType: OS::Nova::Server\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nBackup can be imported using  `backup_record_id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/csbsBackupV1:CsbsBackupV1 backup_v1 7056d636-ac60-4663-8a6c-82d3c32c1c64\n```\n\n","inputProperties":{"backupName":{"description":"Name for the backup. The value consists of 1 to 255 characters and can contain only letters, digits, underscores (_), and hyphens (-). Changing<span pulumi-lang-nodejs=\" backupName \" pulumi-lang-dotnet=\" BackupName \" pulumi-lang-go=\" backupName \" pulumi-lang-python=\" backup_name \" pulumi-lang-yaml=\" backupName \" pulumi-lang-java=\" backupName \"> backup_name </span>creates a new backup.\n","type":"string"},"csbsBackupV1Id":{"description":"Specifies Cinder backup ID.\n","type":"string"},"description":{"description":"Backup description. The value consists of 0 to 255 characters and must not contain a greater-than sign (>) or less-than sign (<). Changing description creates a new backup.\n","type":"string"},"region":{"type":"string"},"resourceId":{"description":"ID of the target to which the backup is restored. Changing this creates a new backup.\n","type":"string"},"resourceType":{"description":"Type of the target to which the backup is restored. The default value is `OS::Nova::Server` for an ECS. Changing this creates a new backup.\n","type":"string"},"tags":{"description":"block supports the following arguments:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCsbsBackupV1Tag:CsbsBackupV1Tag"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCsbsBackupV1Timeouts:CsbsBackupV1Timeouts"}},"properties":{"backupName":{"description":"Name for the backup. The value consists of 1 to 255 characters and can contain only letters, digits, underscores (_), and hyphens (-). Changing<span pulumi-lang-nodejs=\" backupName \" pulumi-lang-dotnet=\" BackupName \" pulumi-lang-go=\" backupName \" pulumi-lang-python=\" backup_name \" pulumi-lang-yaml=\" backupName \" pulumi-lang-java=\" backupName \"> backup_name </span>creates a new backup.\n","type":"string"},"backupRecordId":{"description":"Specifies backup record ID.\n","type":"string"},"csbsBackupV1Id":{"description":"Specifies Cinder backup ID.\n","type":"string"},"description":{"description":"Backup description. The value consists of 0 to 255 characters and must not contain a greater-than sign (>) or less-than sign (<). Changing description creates a new backup.\n","type":"string"},"region":{"type":"string"},"resourceId":{"description":"ID of the target to which the backup is restored. Changing this creates a new backup.\n","type":"string"},"resourceType":{"description":"Type of the target to which the backup is restored. The default value is `OS::Nova::Server` for an ECS. Changing this creates a new backup.\n","type":"string"},"status":{"description":"Status of backup Volume.\n","type":"string"},"tags":{"description":"block supports the following arguments:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCsbsBackupV1Tag:CsbsBackupV1Tag"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCsbsBackupV1Timeouts:CsbsBackupV1Timeouts"},"vmMetadatas":{"items":{"$ref":"#/types/opentelekomcloud:index%2FCsbsBackupV1VmMetadata:CsbsBackupV1VmMetadata"},"type":"array"},"volumeBackups":{"items":{"$ref":"#/types/opentelekomcloud:index%2FCsbsBackupV1VolumeBackup:CsbsBackupV1VolumeBackup"},"type":"array"}},"required":["backupName","backupRecordId","csbsBackupV1Id","description","region","resourceId","status","vmMetadatas","volumeBackups"],"requiredInputs":["resourceId"],"stateInputs":{"description":"Input properties used for looking up and filtering CsbsBackupV1 resources.\n","properties":{"backupName":{"description":"Name for the backup. The value consists of 1 to 255 characters and can contain only letters, digits, underscores (_), and hyphens (-). Changing<span pulumi-lang-nodejs=\" backupName \" pulumi-lang-dotnet=\" BackupName \" pulumi-lang-go=\" backupName \" pulumi-lang-python=\" backup_name \" pulumi-lang-yaml=\" backupName \" pulumi-lang-java=\" backupName \"> backup_name </span>creates a new backup.\n","type":"string"},"backupRecordId":{"description":"Specifies backup record ID.\n","type":"string"},"csbsBackupV1Id":{"description":"Specifies Cinder backup ID.\n","type":"string"},"description":{"description":"Backup description. The value consists of 0 to 255 characters and must not contain a greater-than sign (>) or less-than sign (<). Changing description creates a new backup.\n","type":"string"},"region":{"type":"string"},"resourceId":{"description":"ID of the target to which the backup is restored. Changing this creates a new backup.\n","type":"string"},"resourceType":{"description":"Type of the target to which the backup is restored. The default value is `OS::Nova::Server` for an ECS. Changing this creates a new backup.\n","type":"string"},"status":{"description":"Status of backup Volume.\n","type":"string"},"tags":{"description":"block supports the following arguments:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCsbsBackupV1Tag:CsbsBackupV1Tag"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCsbsBackupV1Timeouts:CsbsBackupV1Timeouts"},"vmMetadatas":{"items":{"$ref":"#/types/opentelekomcloud:index%2FCsbsBackupV1VmMetadata:CsbsBackupV1VmMetadata"},"type":"array"},"volumeBackups":{"items":{"$ref":"#/types/opentelekomcloud:index%2FCsbsBackupV1VolumeBackup:CsbsBackupV1VolumeBackup"},"type":"array"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cssClusterRestartV1:CssClusterRestartV1":{"description":"Manages CSS cluster restart resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst clusterId = config.requireObject<any>(\"clusterId\");\nconst test = new opentelekomcloud.CssClusterRestartV1(\"test\", {clusterId: clusterId});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ncluster_id = config.require_object(\"clusterId\")\ntest = opentelekomcloud.CssClusterRestartV1(\"test\", cluster_id=cluster_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var clusterId = config.RequireObject<dynamic>(\"clusterId\");\n    var test = new Opentelekomcloud.CssClusterRestartV1(\"test\", new()\n    {\n        ClusterId = clusterId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tclusterId := cfg.RequireObject(\"clusterId\")\n\t\t_, err := opentelekomcloud.NewCssClusterRestartV1(ctx, \"test\", &opentelekomcloud.CssClusterRestartV1Args{\n\t\t\tClusterId: pulumi.Any(clusterId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CssClusterRestartV1;\nimport com.pulumi.opentelekomcloud.CssClusterRestartV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var clusterId = config.get(\"clusterId\");\n        var test = new CssClusterRestartV1(\"test\", CssClusterRestartV1Args.builder()\n            .clusterId(clusterId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  clusterId:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:CssClusterRestartV1\n    properties:\n      clusterId: ${clusterId}\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"clusterId":{"description":"Specifies the ID of the CSS cluster.\nChanging this creates a new resource.\n","type":"string"},"cssClusterRestartV1Id":{"description":"The resource ID.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCssClusterRestartV1Timeouts:CssClusterRestartV1Timeouts"}},"properties":{"clusterId":{"description":"Specifies the ID of the CSS cluster.\nChanging this creates a new resource.\n","type":"string"},"cssClusterRestartV1Id":{"description":"The resource ID.\n","type":"string"},"region":{"description":"The region in which the resource created.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCssClusterRestartV1Timeouts:CssClusterRestartV1Timeouts"}},"required":["clusterId","cssClusterRestartV1Id","region"],"requiredInputs":["clusterId"],"stateInputs":{"description":"Input properties used for looking up and filtering CssClusterRestartV1 resources.\n","properties":{"clusterId":{"description":"Specifies the ID of the CSS cluster.\nChanging this creates a new resource.\n","type":"string"},"cssClusterRestartV1Id":{"description":"The resource ID.\n","type":"string"},"region":{"description":"The region in which the resource created.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCssClusterRestartV1Timeouts:CssClusterRestartV1Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cssClusterV1:CssClusterV1":{"description":"Up-to-date reference of API arguments for CSS cluster you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-search-service/api-ref/cluster_management_apis)\n\nManages a CSS cluster resource.\n\n## Example Usage\n\n### Creating ElasticSearch v7.6.2\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst secgroup = opentelekomcloud.getNetworkingSecgroupV2({\n    name: securityGroup,\n});\nconst cluster = new opentelekomcloud.CssClusterV1(\"cluster\", {\n    name: \"terraform_test_cluster\",\n    expectNodeNum: 1,\n    nodeConfig: {\n        flavor: \"css.medium.8\",\n        networkInfo: {\n            securityGroupId: secgroup.then(secgroup => secgroup.id),\n            networkId: networkId,\n            vpcId: vpcId,\n        },\n        volume: {\n            volumeType: \"COMMON\",\n            size: 40,\n        },\n        availabilityZone: availabilityZone,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nsecgroup = opentelekomcloud.get_networking_secgroup_v2(name=security_group)\ncluster = opentelekomcloud.CssClusterV1(\"cluster\",\n    name=\"terraform_test_cluster\",\n    expect_node_num=1,\n    node_config={\n        \"flavor\": \"css.medium.8\",\n        \"network_info\": {\n            \"security_group_id\": secgroup.id,\n            \"network_id\": network_id,\n            \"vpc_id\": vpc_id,\n        },\n        \"volume\": {\n            \"volume_type\": \"COMMON\",\n            \"size\": 40,\n        },\n        \"availability_zone\": availability_zone,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var secgroup = Opentelekomcloud.GetNetworkingSecgroupV2.Invoke(new()\n    {\n        Name = securityGroup,\n    });\n\n    var cluster = new Opentelekomcloud.CssClusterV1(\"cluster\", new()\n    {\n        Name = \"terraform_test_cluster\",\n        ExpectNodeNum = 1,\n        NodeConfig = new Opentelekomcloud.Inputs.CssClusterV1NodeConfigArgs\n        {\n            Flavor = \"css.medium.8\",\n            NetworkInfo = new Opentelekomcloud.Inputs.CssClusterV1NodeConfigNetworkInfoArgs\n            {\n                SecurityGroupId = secgroup.Apply(getNetworkingSecgroupV2Result => getNetworkingSecgroupV2Result.Id),\n                NetworkId = networkId,\n                VpcId = vpcId,\n            },\n            Volume = new Opentelekomcloud.Inputs.CssClusterV1NodeConfigVolumeArgs\n            {\n                VolumeType = \"COMMON\",\n                Size = 40,\n            },\n            AvailabilityZone = availabilityZone,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsecgroup, err := opentelekomcloud.LookupNetworkingSecgroupV2(ctx, &opentelekomcloud.LookupNetworkingSecgroupV2Args{\n\t\t\tName: pulumi.StringRef(securityGroup),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewCssClusterV1(ctx, \"cluster\", &opentelekomcloud.CssClusterV1Args{\n\t\t\tName:          pulumi.String(\"terraform_test_cluster\"),\n\t\t\tExpectNodeNum: pulumi.Float64(1),\n\t\t\tNodeConfig: &opentelekomcloud.CssClusterV1NodeConfigArgs{\n\t\t\t\tFlavor: pulumi.String(\"css.medium.8\"),\n\t\t\t\tNetworkInfo: &opentelekomcloud.CssClusterV1NodeConfigNetworkInfoArgs{\n\t\t\t\t\tSecurityGroupId: pulumi.String(secgroup.Id),\n\t\t\t\t\tNetworkId:       pulumi.Any(networkId),\n\t\t\t\t\tVpcId:           pulumi.Any(vpcId),\n\t\t\t\t},\n\t\t\t\tVolume: &opentelekomcloud.CssClusterV1NodeConfigVolumeArgs{\n\t\t\t\t\tVolumeType: pulumi.String(\"COMMON\"),\n\t\t\t\t\tSize:       pulumi.Float64(40),\n\t\t\t\t},\n\t\t\t\tAvailabilityZone: pulumi.Any(availabilityZone),\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.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetNetworkingSecgroupV2Args;\nimport com.pulumi.opentelekomcloud.CssClusterV1;\nimport com.pulumi.opentelekomcloud.CssClusterV1Args;\nimport com.pulumi.opentelekomcloud.inputs.CssClusterV1NodeConfigArgs;\nimport com.pulumi.opentelekomcloud.inputs.CssClusterV1NodeConfigNetworkInfoArgs;\nimport com.pulumi.opentelekomcloud.inputs.CssClusterV1NodeConfigVolumeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var secgroup = OpentelekomcloudFunctions.getNetworkingSecgroupV2(GetNetworkingSecgroupV2Args.builder()\n            .name(securityGroup)\n            .build());\n\n        var cluster = new CssClusterV1(\"cluster\", CssClusterV1Args.builder()\n            .name(\"terraform_test_cluster\")\n            .expectNodeNum(1.0)\n            .nodeConfig(CssClusterV1NodeConfigArgs.builder()\n                .flavor(\"css.medium.8\")\n                .networkInfo(CssClusterV1NodeConfigNetworkInfoArgs.builder()\n                    .securityGroupId(secgroup.id())\n                    .networkId(networkId)\n                    .vpcId(vpcId)\n                    .build())\n                .volume(CssClusterV1NodeConfigVolumeArgs.builder()\n                    .volumeType(\"COMMON\")\n                    .size(40.0)\n                    .build())\n                .availabilityZone(availabilityZone)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  cluster:\n    type: opentelekomcloud:CssClusterV1\n    properties:\n      name: terraform_test_cluster\n      expectNodeNum: 1\n      nodeConfig:\n        flavor: css.medium.8\n        networkInfo:\n          securityGroupId: ${secgroup.id}\n          networkId: ${networkId}\n          vpcId: ${vpcId}\n        volume:\n          volumeType: COMMON\n          size: 40\n        availabilityZone: ${availabilityZone}\nvariables:\n  secgroup:\n    fn::invoke:\n      function: opentelekomcloud:getNetworkingSecgroupV2\n      arguments:\n        name: ${securityGroup}\n```\n<!--End PulumiCodeChooser -->\n\n### Creating OpenSearch v1.3.6 with backup strategy\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst secgroup = opentelekomcloud.getNetworkingSecgroupV2({\n    name: securityGroup,\n});\nconst cluster = new opentelekomcloud.CssClusterV1(\"cluster\", {\n    name: \"terraform_test_cluster\",\n    expectNodeNum: 1,\n    datastore: {\n        version: \"1.3.6\",\n        type: \"opensearch\",\n    },\n    enableHttps: true,\n    enableAuthority: true,\n    adminPass: \"QwertyUI!\",\n    backupStrategy: {\n        keepDays: 7,\n        startTime: \"00:00 GMT+08:00\",\n        prefix: \"snapshot\",\n    },\n    nodeConfig: {\n        flavor: \"css.medium.8\",\n        networkInfo: {\n            securityGroupId: secgroup.then(secgroup => secgroup.id),\n            networkId: networkId,\n            vpcId: vpcId,\n        },\n        volume: {\n            volumeType: \"COMMON\",\n            size: 40,\n        },\n        availabilityZone: availabilityZone,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nsecgroup = opentelekomcloud.get_networking_secgroup_v2(name=security_group)\ncluster = opentelekomcloud.CssClusterV1(\"cluster\",\n    name=\"terraform_test_cluster\",\n    expect_node_num=1,\n    datastore={\n        \"version\": \"1.3.6\",\n        \"type\": \"opensearch\",\n    },\n    enable_https=True,\n    enable_authority=True,\n    admin_pass=\"QwertyUI!\",\n    backup_strategy={\n        \"keep_days\": 7,\n        \"start_time\": \"00:00 GMT+08:00\",\n        \"prefix\": \"snapshot\",\n    },\n    node_config={\n        \"flavor\": \"css.medium.8\",\n        \"network_info\": {\n            \"security_group_id\": secgroup.id,\n            \"network_id\": network_id,\n            \"vpc_id\": vpc_id,\n        },\n        \"volume\": {\n            \"volume_type\": \"COMMON\",\n            \"size\": 40,\n        },\n        \"availability_zone\": availability_zone,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var secgroup = Opentelekomcloud.GetNetworkingSecgroupV2.Invoke(new()\n    {\n        Name = securityGroup,\n    });\n\n    var cluster = new Opentelekomcloud.CssClusterV1(\"cluster\", new()\n    {\n        Name = \"terraform_test_cluster\",\n        ExpectNodeNum = 1,\n        Datastore = new Opentelekomcloud.Inputs.CssClusterV1DatastoreArgs\n        {\n            Version = \"1.3.6\",\n            Type = \"opensearch\",\n        },\n        EnableHttps = true,\n        EnableAuthority = true,\n        AdminPass = \"QwertyUI!\",\n        BackupStrategy = new Opentelekomcloud.Inputs.CssClusterV1BackupStrategyArgs\n        {\n            KeepDays = 7,\n            StartTime = \"00:00 GMT+08:00\",\n            Prefix = \"snapshot\",\n        },\n        NodeConfig = new Opentelekomcloud.Inputs.CssClusterV1NodeConfigArgs\n        {\n            Flavor = \"css.medium.8\",\n            NetworkInfo = new Opentelekomcloud.Inputs.CssClusterV1NodeConfigNetworkInfoArgs\n            {\n                SecurityGroupId = secgroup.Apply(getNetworkingSecgroupV2Result => getNetworkingSecgroupV2Result.Id),\n                NetworkId = networkId,\n                VpcId = vpcId,\n            },\n            Volume = new Opentelekomcloud.Inputs.CssClusterV1NodeConfigVolumeArgs\n            {\n                VolumeType = \"COMMON\",\n                Size = 40,\n            },\n            AvailabilityZone = availabilityZone,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsecgroup, err := opentelekomcloud.LookupNetworkingSecgroupV2(ctx, &opentelekomcloud.LookupNetworkingSecgroupV2Args{\n\t\t\tName: pulumi.StringRef(securityGroup),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewCssClusterV1(ctx, \"cluster\", &opentelekomcloud.CssClusterV1Args{\n\t\t\tName:          pulumi.String(\"terraform_test_cluster\"),\n\t\t\tExpectNodeNum: pulumi.Float64(1),\n\t\t\tDatastore: &opentelekomcloud.CssClusterV1DatastoreArgs{\n\t\t\t\tVersion: pulumi.String(\"1.3.6\"),\n\t\t\t\tType:    pulumi.String(\"opensearch\"),\n\t\t\t},\n\t\t\tEnableHttps:     pulumi.Bool(true),\n\t\t\tEnableAuthority: pulumi.Bool(true),\n\t\t\tAdminPass:       pulumi.String(\"QwertyUI!\"),\n\t\t\tBackupStrategy: &opentelekomcloud.CssClusterV1BackupStrategyArgs{\n\t\t\t\tKeepDays:  pulumi.Float64(7),\n\t\t\t\tStartTime: pulumi.String(\"00:00 GMT+08:00\"),\n\t\t\t\tPrefix:    pulumi.String(\"snapshot\"),\n\t\t\t},\n\t\t\tNodeConfig: &opentelekomcloud.CssClusterV1NodeConfigArgs{\n\t\t\t\tFlavor: pulumi.String(\"css.medium.8\"),\n\t\t\t\tNetworkInfo: &opentelekomcloud.CssClusterV1NodeConfigNetworkInfoArgs{\n\t\t\t\t\tSecurityGroupId: pulumi.String(secgroup.Id),\n\t\t\t\t\tNetworkId:       pulumi.Any(networkId),\n\t\t\t\t\tVpcId:           pulumi.Any(vpcId),\n\t\t\t\t},\n\t\t\t\tVolume: &opentelekomcloud.CssClusterV1NodeConfigVolumeArgs{\n\t\t\t\t\tVolumeType: pulumi.String(\"COMMON\"),\n\t\t\t\t\tSize:       pulumi.Float64(40),\n\t\t\t\t},\n\t\t\t\tAvailabilityZone: pulumi.Any(availabilityZone),\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.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetNetworkingSecgroupV2Args;\nimport com.pulumi.opentelekomcloud.CssClusterV1;\nimport com.pulumi.opentelekomcloud.CssClusterV1Args;\nimport com.pulumi.opentelekomcloud.inputs.CssClusterV1DatastoreArgs;\nimport com.pulumi.opentelekomcloud.inputs.CssClusterV1BackupStrategyArgs;\nimport com.pulumi.opentelekomcloud.inputs.CssClusterV1NodeConfigArgs;\nimport com.pulumi.opentelekomcloud.inputs.CssClusterV1NodeConfigNetworkInfoArgs;\nimport com.pulumi.opentelekomcloud.inputs.CssClusterV1NodeConfigVolumeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var secgroup = OpentelekomcloudFunctions.getNetworkingSecgroupV2(GetNetworkingSecgroupV2Args.builder()\n            .name(securityGroup)\n            .build());\n\n        var cluster = new CssClusterV1(\"cluster\", CssClusterV1Args.builder()\n            .name(\"terraform_test_cluster\")\n            .expectNodeNum(1.0)\n            .datastore(CssClusterV1DatastoreArgs.builder()\n                .version(\"1.3.6\")\n                .type(\"opensearch\")\n                .build())\n            .enableHttps(true)\n            .enableAuthority(true)\n            .adminPass(\"QwertyUI!\")\n            .backupStrategy(CssClusterV1BackupStrategyArgs.builder()\n                .keepDays(7.0)\n                .startTime(\"00:00 GMT+08:00\")\n                .prefix(\"snapshot\")\n                .build())\n            .nodeConfig(CssClusterV1NodeConfigArgs.builder()\n                .flavor(\"css.medium.8\")\n                .networkInfo(CssClusterV1NodeConfigNetworkInfoArgs.builder()\n                    .securityGroupId(secgroup.id())\n                    .networkId(networkId)\n                    .vpcId(vpcId)\n                    .build())\n                .volume(CssClusterV1NodeConfigVolumeArgs.builder()\n                    .volumeType(\"COMMON\")\n                    .size(40.0)\n                    .build())\n                .availabilityZone(availabilityZone)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  cluster:\n    type: opentelekomcloud:CssClusterV1\n    properties:\n      name: terraform_test_cluster\n      expectNodeNum: 1\n      datastore:\n        version: 1.3.6\n        type: opensearch\n      enableHttps: true\n      enableAuthority: true\n      adminPass: QwertyUI!\n      backupStrategy:\n        keepDays: 7\n        startTime: 00:00 GMT+08:00\n        prefix: snapshot\n      nodeConfig:\n        flavor: css.medium.8\n        networkInfo:\n          securityGroupId: ${secgroup.id}\n          networkId: ${networkId}\n          vpcId: ${vpcId}\n        volume:\n          volumeType: COMMON\n          size: 40\n        availabilityZone: ${availabilityZone}\nvariables:\n  secgroup:\n    fn::invoke:\n      function: opentelekomcloud:getNetworkingSecgroupV2\n      arguments:\n        name: ${securityGroup}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nBackup can be imported using  `cluster_id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/cssClusterV1:CssClusterV1 cluster 5c77b71c-5b35-4f50-8984-76387e42451a\n```\n\n","inputProperties":{"adminPass":{"description":"Password of the cluster user admin in security mode.\nThis parameter is mandatory only when <span pulumi-lang-nodejs=\"`enableAuthority`\" pulumi-lang-dotnet=\"`EnableAuthority`\" pulumi-lang-go=\"`enableAuthority`\" pulumi-lang-python=\"`enable_authority`\" pulumi-lang-yaml=\"`enableAuthority`\" pulumi-lang-java=\"`enableAuthority`\">`enable_authority`</span> is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n\n~>\nThe administrator password must meet the following requirements: contain <span pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\">`8`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> characters,\ncontain at least <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> of the following character types: uppercase letters,\nlowercase letters, numbers, and special characters (`~!@#$%^&*()-_=+\\\\|[{}];:,<.>/?`).\n","type":"string"},"backupStrategy":{"$ref":"#/types/opentelekomcloud:index%2FCssClusterV1BackupStrategy:CssClusterV1BackupStrategy","description":"Specifies the advanced backup policy. Structure is documented below.\n"},"cssClusterV1Id":{"description":"Instance ID.\n","type":"string"},"datastore":{"$ref":"#/types/opentelekomcloud:index%2FCssClusterV1Datastore:CssClusterV1Datastore","description":"Type of the data search engine. Structure is documented below.\nChanging this parameter will create a new resource.\n"},"enableAuthority":{"description":"Whether to enable authentication.\nAuthentication is disabled by default.\nWhen authentication is enabled, <span pulumi-lang-nodejs=\"`enableHttps`\" pulumi-lang-dotnet=\"`EnableHttps`\" pulumi-lang-go=\"`enableHttps`\" pulumi-lang-python=\"`enable_https`\" pulumi-lang-yaml=\"`enableHttps`\" pulumi-lang-java=\"`enableHttps`\">`enable_https`</span> must be set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\nChanging this parameter will create a new resource.\n","type":"boolean"},"enableHttps":{"description":"Whether communication encryption is performed on the cluster.\nBy default, communication encryption is disabled.\nValue <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> indicates that communication encryption is performed on the cluster.\nValue <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> indicates that communication encryption is not performed on the cluster.\nChanging this parameter will create a new resource.\n","type":"boolean"},"expectNodeNum":{"description":"Number of cluster instances. The value range is <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span>.\n","type":"number"},"name":{"description":"Cluster name. It contains <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> characters. Only letters, digits,\nhyphens (`-`), and underscores (`_`) are allowed. The value must start with a letter.\nChanging this parameter will create a new resource.\n","type":"string"},"nodeConfig":{"$ref":"#/types/opentelekomcloud:index%2FCssClusterV1NodeConfig:CssClusterV1NodeConfig","description":"Instance object. Structure is documented below.\nChanging this parameter will create a new resource.\n"},"publicAccess":{"$ref":"#/types/opentelekomcloud:index%2FCssClusterV1PublicAccess:CssClusterV1PublicAccess"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the cluster.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCssClusterV1Timeouts:CssClusterV1Timeouts"}},"properties":{"adminPass":{"description":"Password of the cluster user admin in security mode.\nThis parameter is mandatory only when <span pulumi-lang-nodejs=\"`enableAuthority`\" pulumi-lang-dotnet=\"`EnableAuthority`\" pulumi-lang-go=\"`enableAuthority`\" pulumi-lang-python=\"`enable_authority`\" pulumi-lang-yaml=\"`enableAuthority`\" pulumi-lang-java=\"`enableAuthority`\">`enable_authority`</span> is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n\n~>\nThe administrator password must meet the following requirements: contain <span pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\">`8`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> characters,\ncontain at least <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> of the following character types: uppercase letters,\nlowercase letters, numbers, and special characters (`~!@#$%^&*()-_=+\\\\|[{}];:,<.>/?`).\n","type":"string"},"backupAvailable":{"description":"Indicates whether the snapshot function is enabled.\n","type":"boolean"},"backupStrategy":{"$ref":"#/types/opentelekomcloud:index%2FCssClusterV1BackupStrategy:CssClusterV1BackupStrategy","description":"Specifies the advanced backup policy. Structure is documented below.\n"},"created":{"description":"Time when a cluster is created. The format is ISO8601: `CCYY-MM-DDThh:mm:ss`.\n","type":"string"},"cssClusterV1Id":{"description":"Instance ID.\n","type":"string"},"datastore":{"$ref":"#/types/opentelekomcloud:index%2FCssClusterV1Datastore:CssClusterV1Datastore","description":"Type of the data search engine. Structure is documented below.\nChanging this parameter will create a new resource.\n"},"enableAuthority":{"description":"Whether to enable authentication.\nAuthentication is disabled by default.\nWhen authentication is enabled, <span pulumi-lang-nodejs=\"`enableHttps`\" pulumi-lang-dotnet=\"`EnableHttps`\" pulumi-lang-go=\"`enableHttps`\" pulumi-lang-python=\"`enable_https`\" pulumi-lang-yaml=\"`enableHttps`\" pulumi-lang-java=\"`enableHttps`\">`enable_https`</span> must be set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\nChanging this parameter will create a new resource.\n","type":"boolean"},"enableHttps":{"description":"Whether communication encryption is performed on the cluster.\nBy default, communication encryption is disabled.\nValue <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> indicates that communication encryption is performed on the cluster.\nValue <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> indicates that communication encryption is not performed on the cluster.\nChanging this parameter will create a new resource.\n","type":"boolean"},"endpoint":{"description":"Indicates the IP address and port number of the user used to access the VPC.\n","type":"string"},"expectNodeNum":{"description":"Number of cluster instances. The value range is <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span>.\n","type":"number"},"name":{"description":"Cluster name. It contains <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> characters. Only letters, digits,\nhyphens (`-`), and underscores (`_`) are allowed. The value must start with a letter.\nChanging this parameter will create a new resource.\n","type":"string"},"nodeConfig":{"$ref":"#/types/opentelekomcloud:index%2FCssClusterV1NodeConfig:CssClusterV1NodeConfig","description":"Instance object. Structure is documented below.\nChanging this parameter will create a new resource.\n"},"nodes":{"description":"List of node objects. Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCssClusterV1Node:CssClusterV1Node"},"type":"array"},"publicAccess":{"$ref":"#/types/opentelekomcloud:index%2FCssClusterV1PublicAccess:CssClusterV1PublicAccess"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the cluster.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCssClusterV1Timeouts:CssClusterV1Timeouts"},"updated":{"description":"Last modification time of a cluster. The format is ISO8601: `CCYY-MM-DDThh:mm:ss`.\n","type":"string"}},"required":["backupAvailable","created","cssClusterV1Id","enableAuthority","enableHttps","endpoint","name","nodeConfig","nodes","tags","updated"],"requiredInputs":["nodeConfig"],"stateInputs":{"description":"Input properties used for looking up and filtering CssClusterV1 resources.\n","properties":{"adminPass":{"description":"Password of the cluster user admin in security mode.\nThis parameter is mandatory only when <span pulumi-lang-nodejs=\"`enableAuthority`\" pulumi-lang-dotnet=\"`EnableAuthority`\" pulumi-lang-go=\"`enableAuthority`\" pulumi-lang-python=\"`enable_authority`\" pulumi-lang-yaml=\"`enableAuthority`\" pulumi-lang-java=\"`enableAuthority`\">`enable_authority`</span> is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n\n~>\nThe administrator password must meet the following requirements: contain <span pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\">`8`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> characters,\ncontain at least <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> of the following character types: uppercase letters,\nlowercase letters, numbers, and special characters (`~!@#$%^&*()-_=+\\\\|[{}];:,<.>/?`).\n","type":"string"},"backupAvailable":{"description":"Indicates whether the snapshot function is enabled.\n","type":"boolean"},"backupStrategy":{"$ref":"#/types/opentelekomcloud:index%2FCssClusterV1BackupStrategy:CssClusterV1BackupStrategy","description":"Specifies the advanced backup policy. Structure is documented below.\n"},"created":{"description":"Time when a cluster is created. The format is ISO8601: `CCYY-MM-DDThh:mm:ss`.\n","type":"string"},"cssClusterV1Id":{"description":"Instance ID.\n","type":"string"},"datastore":{"$ref":"#/types/opentelekomcloud:index%2FCssClusterV1Datastore:CssClusterV1Datastore","description":"Type of the data search engine. Structure is documented below.\nChanging this parameter will create a new resource.\n"},"enableAuthority":{"description":"Whether to enable authentication.\nAuthentication is disabled by default.\nWhen authentication is enabled, <span pulumi-lang-nodejs=\"`enableHttps`\" pulumi-lang-dotnet=\"`EnableHttps`\" pulumi-lang-go=\"`enableHttps`\" pulumi-lang-python=\"`enable_https`\" pulumi-lang-yaml=\"`enableHttps`\" pulumi-lang-java=\"`enableHttps`\">`enable_https`</span> must be set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\nChanging this parameter will create a new resource.\n","type":"boolean"},"enableHttps":{"description":"Whether communication encryption is performed on the cluster.\nBy default, communication encryption is disabled.\nValue <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> indicates that communication encryption is performed on the cluster.\nValue <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> indicates that communication encryption is not performed on the cluster.\nChanging this parameter will create a new resource.\n","type":"boolean"},"endpoint":{"description":"Indicates the IP address and port number of the user used to access the VPC.\n","type":"string"},"expectNodeNum":{"description":"Number of cluster instances. The value range is <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span>.\n","type":"number"},"name":{"description":"Cluster name. It contains <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> characters. Only letters, digits,\nhyphens (`-`), and underscores (`_`) are allowed. The value must start with a letter.\nChanging this parameter will create a new resource.\n","type":"string"},"nodeConfig":{"$ref":"#/types/opentelekomcloud:index%2FCssClusterV1NodeConfig:CssClusterV1NodeConfig","description":"Instance object. Structure is documented below.\nChanging this parameter will create a new resource.\n"},"nodes":{"description":"List of node objects. Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCssClusterV1Node:CssClusterV1Node"},"type":"array"},"publicAccess":{"$ref":"#/types/opentelekomcloud:index%2FCssClusterV1PublicAccess:CssClusterV1PublicAccess"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the cluster.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCssClusterV1Timeouts:CssClusterV1Timeouts"},"updated":{"description":"Last modification time of a cluster. The format is ISO8601: `CCYY-MM-DDThh:mm:ss`.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cssConfigurationV1:CssConfigurationV1":{"description":"Up-to-date reference for API arguments and details can be found at the [documentation portal](https://docs.otc.t-systems.com/cloud-search-service/api-ref/parameter_configuration/index.html).\n\nManage the configuration settings of a CSS cluster in OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst example = new opentelekomcloud.CssConfigurationV1(\"example\", {\n    clusterId: \"your-cluster-id\",\n    httpCorsAllowCredentials: \"true\",\n    httpCorsAllowOrigin: \"122.122.122.122:9200\",\n    indicesQueriesCacheSize: \"50\",\n    autoCreateIndex: \"true\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nexample = opentelekomcloud.CssConfigurationV1(\"example\",\n    cluster_id=\"your-cluster-id\",\n    http_cors_allow_credentials=\"true\",\n    http_cors_allow_origin=\"122.122.122.122:9200\",\n    indices_queries_cache_size=\"50\",\n    auto_create_index=\"true\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Opentelekomcloud.CssConfigurationV1(\"example\", new()\n    {\n        ClusterId = \"your-cluster-id\",\n        HttpCorsAllowCredentials = \"true\",\n        HttpCorsAllowOrigin = \"122.122.122.122:9200\",\n        IndicesQueriesCacheSize = \"50\",\n        AutoCreateIndex = \"true\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewCssConfigurationV1(ctx, \"example\", &opentelekomcloud.CssConfigurationV1Args{\n\t\t\tClusterId:                pulumi.String(\"your-cluster-id\"),\n\t\t\tHttpCorsAllowCredentials: pulumi.String(\"true\"),\n\t\t\tHttpCorsAllowOrigin:      pulumi.String(\"122.122.122.122:9200\"),\n\t\t\tIndicesQueriesCacheSize:  pulumi.String(\"50\"),\n\t\t\tAutoCreateIndex:          pulumi.String(\"true\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CssConfigurationV1;\nimport com.pulumi.opentelekomcloud.CssConfigurationV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class 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 CssConfigurationV1(\"example\", CssConfigurationV1Args.builder()\n            .clusterId(\"your-cluster-id\")\n            .httpCorsAllowCredentials(\"true\")\n            .httpCorsAllowOrigin(\"122.122.122.122:9200\")\n            .indicesQueriesCacheSize(\"50\")\n            .autoCreateIndex(\"true\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: opentelekomcloud:CssConfigurationV1\n    properties:\n      clusterId: your-cluster-id\n      httpCorsAllowCredentials: 'true'\n      httpCorsAllowOrigin: 122.122.122.122:9200\n      indicesQueriesCacheSize: '50'\n      autoCreateIndex: 'true'\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe CSS configuration can be imported using the `id` which equals the `cluster_id`, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/cssConfigurationV1:CssConfigurationV1 test <id>\n```\n\n","inputProperties":{"autoCreateIndex":{"description":"Whether to auto-create an index.\nThe value can be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"string"},"clusterId":{"description":"The CSS cluster ID.\n\nChanging this parameter will create a new resource.\n","type":"string"},"cssConfigurationV1Id":{"description":"The resource ID which equals the <span pulumi-lang-nodejs=\"`clusterId`\" pulumi-lang-dotnet=\"`ClusterId`\" pulumi-lang-go=\"`clusterId`\" pulumi-lang-python=\"`cluster_id`\" pulumi-lang-yaml=\"`clusterId`\" pulumi-lang-java=\"`clusterId`\">`cluster_id`</span>.\n","type":"string"},"httpCorsAllowCredentials":{"description":"Whether to return the Access-Control-Allow-Credentials of the header during cross-domain access.","type":"string"},"httpCorsAllowHeaders":{"description":"Headers allowed for cross-domain access.\nIncluding `X-Requested-With`, `Content-Type`, and `Content-Length`.\nUse commas (,) and spaces to separate headers.\n","type":"string"},"httpCorsAllowMethods":{"description":"Methods allowed for cross-domain access.\nIncluding `OPTIONS`, `HEAD`, `GET`, `POST`, `PUT`, and `DELETE`.\nUse commas (,) and spaces to separate methods.\n","type":"string"},"httpCorsAllowOrigin":{"description":"Origin IP address allowed for cross-domain access, for example, `122.122.122.122:9200`.\n","type":"string"},"httpCorsEnabled":{"description":"Whether to allow cross-domain access.\nThe value can be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Default value: <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"string"},"httpCorsMaxAge":{"description":"Cache duration of the browser. The cache is automatically cleared\nafter the time range you specify.\nUnit: s, Default value: `1,728,000`.\n","type":"string"},"indicesQueriesCacheSize":{"description":"Cache size in the query phase. Value range: `1%` to `100%`.\nUnit: %, Default value: `10%`.\n","type":"string"},"reindexRemoteWhitelist":{"description":"Configured for migrating data from the current cluster to\nthe target cluster through the reindex API.\nThe example value is `122.122.122.122:9200`.\n","type":"string"},"threadPoolForceMergeSize":{"description":"Queue size in the force merge thread pool.\nDefault value: <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCssConfigurationV1Timeouts:CssConfigurationV1Timeouts"}},"properties":{"autoCreateIndex":{"description":"Whether to auto-create an index.\nThe value can be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"string"},"clusterId":{"description":"The CSS cluster ID.\n\nChanging this parameter will create a new resource.\n","type":"string"},"cssConfigurationV1Id":{"description":"The resource ID which equals the <span pulumi-lang-nodejs=\"`clusterId`\" pulumi-lang-dotnet=\"`ClusterId`\" pulumi-lang-go=\"`clusterId`\" pulumi-lang-python=\"`cluster_id`\" pulumi-lang-yaml=\"`clusterId`\" pulumi-lang-java=\"`clusterId`\">`cluster_id`</span>.\n","type":"string"},"httpCorsAllowCredentials":{"description":"Whether to return the Access-Control-Allow-Credentials of the header during cross-domain access.","type":"string"},"httpCorsAllowHeaders":{"description":"Headers allowed for cross-domain access.\nIncluding `X-Requested-With`, `Content-Type`, and `Content-Length`.\nUse commas (,) and spaces to separate headers.\n","type":"string"},"httpCorsAllowMethods":{"description":"Methods allowed for cross-domain access.\nIncluding `OPTIONS`, `HEAD`, `GET`, `POST`, `PUT`, and `DELETE`.\nUse commas (,) and spaces to separate methods.\n","type":"string"},"httpCorsAllowOrigin":{"description":"Origin IP address allowed for cross-domain access, for example, `122.122.122.122:9200`.\n","type":"string"},"httpCorsEnabled":{"description":"Whether to allow cross-domain access.\nThe value can be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Default value: <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"string"},"httpCorsMaxAge":{"description":"Cache duration of the browser. The cache is automatically cleared\nafter the time range you specify.\nUnit: s, Default value: `1,728,000`.\n","type":"string"},"indicesQueriesCacheSize":{"description":"Cache size in the query phase. Value range: `1%` to `100%`.\nUnit: %, Default value: `10%`.\n","type":"string"},"region":{"description":"The region where the CSS cluster is deployed.\n","type":"string"},"reindexRemoteWhitelist":{"description":"Configured for migrating data from the current cluster to\nthe target cluster through the reindex API.\nThe example value is `122.122.122.122:9200`.\n","type":"string"},"threadPoolForceMergeSize":{"description":"Queue size in the force merge thread pool.\nDefault value: <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCssConfigurationV1Timeouts:CssConfigurationV1Timeouts"}},"required":["autoCreateIndex","clusterId","cssConfigurationV1Id","httpCorsAllowCredentials","httpCorsAllowHeaders","httpCorsAllowMethods","httpCorsAllowOrigin","httpCorsEnabled","httpCorsMaxAge","indicesQueriesCacheSize","region","reindexRemoteWhitelist","threadPoolForceMergeSize"],"requiredInputs":["clusterId"],"stateInputs":{"description":"Input properties used for looking up and filtering CssConfigurationV1 resources.\n","properties":{"autoCreateIndex":{"description":"Whether to auto-create an index.\nThe value can be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"string"},"clusterId":{"description":"The CSS cluster ID.\n\nChanging this parameter will create a new resource.\n","type":"string"},"cssConfigurationV1Id":{"description":"The resource ID which equals the <span pulumi-lang-nodejs=\"`clusterId`\" pulumi-lang-dotnet=\"`ClusterId`\" pulumi-lang-go=\"`clusterId`\" pulumi-lang-python=\"`cluster_id`\" pulumi-lang-yaml=\"`clusterId`\" pulumi-lang-java=\"`clusterId`\">`cluster_id`</span>.\n","type":"string"},"httpCorsAllowCredentials":{"description":"Whether to return the Access-Control-Allow-Credentials of the header during cross-domain access.","type":"string"},"httpCorsAllowHeaders":{"description":"Headers allowed for cross-domain access.\nIncluding `X-Requested-With`, `Content-Type`, and `Content-Length`.\nUse commas (,) and spaces to separate headers.\n","type":"string"},"httpCorsAllowMethods":{"description":"Methods allowed for cross-domain access.\nIncluding `OPTIONS`, `HEAD`, `GET`, `POST`, `PUT`, and `DELETE`.\nUse commas (,) and spaces to separate methods.\n","type":"string"},"httpCorsAllowOrigin":{"description":"Origin IP address allowed for cross-domain access, for example, `122.122.122.122:9200`.\n","type":"string"},"httpCorsEnabled":{"description":"Whether to allow cross-domain access.\nThe value can be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Default value: <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"string"},"httpCorsMaxAge":{"description":"Cache duration of the browser. The cache is automatically cleared\nafter the time range you specify.\nUnit: s, Default value: `1,728,000`.\n","type":"string"},"indicesQueriesCacheSize":{"description":"Cache size in the query phase. Value range: `1%` to `100%`.\nUnit: %, Default value: `10%`.\n","type":"string"},"region":{"description":"The region where the CSS cluster is deployed.\n","type":"string"},"reindexRemoteWhitelist":{"description":"Configured for migrating data from the current cluster to\nthe target cluster through the reindex API.\nThe example value is `122.122.122.122:9200`.\n","type":"string"},"threadPoolForceMergeSize":{"description":"Queue size in the force merge thread pool.\nDefault value: <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCssConfigurationV1Timeouts:CssConfigurationV1Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/cssSnapshotConfigurationV1:CssSnapshotConfigurationV1":{"description":"Up-to-date reference of API arguments for CSS snapshot you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-search-service/api-ref/snapshot_management_apis)\n\nManages a CSS configuration of automatic snapshot creation.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst secgroup = opentelekomcloud.getNetworkingSecgroupV2({\n    name: securityGroup,\n});\nconst cluster = new opentelekomcloud.CssClusterV1(\"cluster\", {\n    name: \"terraform_test_cluster\",\n    expectNodeNum: 1,\n    nodeConfig: {\n        flavor: \"css.medium.8\",\n        networkInfo: {\n            securityGroupId: secgroup.then(secgroup => secgroup.id),\n            networkId: networkId,\n            vpcId: vpcId,\n        },\n        volume: {\n            volumeType: \"COMMON\",\n            size: 40,\n        },\n        availabilityZone: availabilityZone,\n    },\n});\nconst bucket = new opentelekomcloud.ObsBucket(\"bucket\", {\n    bucket: \"tf-snap-testing\",\n    forceDestroy: true,\n});\nconst config = new opentelekomcloud.CssSnapshotConfigurationV1(\"config\", {\n    clusterId: cluster.cssClusterV1Id,\n    configuration: {\n        bucket: bucket.bucket,\n        agency: \"css_obs_agency\",\n        basePath: \"css/snapshot\",\n    },\n    creationPolicy: {\n        prefix: \"snapshot\",\n        period: \"00:00 GMT+03:00\",\n        keepday: 2,\n        enable: true,\n        deleteAuto: true,\n        frequency: \"DAY\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nsecgroup = opentelekomcloud.get_networking_secgroup_v2(name=security_group)\ncluster = opentelekomcloud.CssClusterV1(\"cluster\",\n    name=\"terraform_test_cluster\",\n    expect_node_num=1,\n    node_config={\n        \"flavor\": \"css.medium.8\",\n        \"network_info\": {\n            \"security_group_id\": secgroup.id,\n            \"network_id\": network_id,\n            \"vpc_id\": vpc_id,\n        },\n        \"volume\": {\n            \"volume_type\": \"COMMON\",\n            \"size\": 40,\n        },\n        \"availability_zone\": availability_zone,\n    })\nbucket = opentelekomcloud.ObsBucket(\"bucket\",\n    bucket=\"tf-snap-testing\",\n    force_destroy=True)\nconfig = opentelekomcloud.CssSnapshotConfigurationV1(\"config\",\n    cluster_id=cluster.css_cluster_v1_id,\n    configuration={\n        \"bucket\": bucket.bucket,\n        \"agency\": \"css_obs_agency\",\n        \"base_path\": \"css/snapshot\",\n    },\n    creation_policy={\n        \"prefix\": \"snapshot\",\n        \"period\": \"00:00 GMT+03:00\",\n        \"keepday\": 2,\n        \"enable\": True,\n        \"delete_auto\": True,\n        \"frequency\": \"DAY\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var secgroup = Opentelekomcloud.GetNetworkingSecgroupV2.Invoke(new()\n    {\n        Name = securityGroup,\n    });\n\n    var cluster = new Opentelekomcloud.CssClusterV1(\"cluster\", new()\n    {\n        Name = \"terraform_test_cluster\",\n        ExpectNodeNum = 1,\n        NodeConfig = new Opentelekomcloud.Inputs.CssClusterV1NodeConfigArgs\n        {\n            Flavor = \"css.medium.8\",\n            NetworkInfo = new Opentelekomcloud.Inputs.CssClusterV1NodeConfigNetworkInfoArgs\n            {\n                SecurityGroupId = secgroup.Apply(getNetworkingSecgroupV2Result => getNetworkingSecgroupV2Result.Id),\n                NetworkId = networkId,\n                VpcId = vpcId,\n            },\n            Volume = new Opentelekomcloud.Inputs.CssClusterV1NodeConfigVolumeArgs\n            {\n                VolumeType = \"COMMON\",\n                Size = 40,\n            },\n            AvailabilityZone = availabilityZone,\n        },\n    });\n\n    var bucket = new Opentelekomcloud.ObsBucket(\"bucket\", new()\n    {\n        Bucket = \"tf-snap-testing\",\n        ForceDestroy = true,\n    });\n\n    var config = new Opentelekomcloud.CssSnapshotConfigurationV1(\"config\", new()\n    {\n        ClusterId = cluster.CssClusterV1Id,\n        Configuration = new Opentelekomcloud.Inputs.CssSnapshotConfigurationV1ConfigurationArgs\n        {\n            Bucket = bucket.Bucket,\n            Agency = \"css_obs_agency\",\n            BasePath = \"css/snapshot\",\n        },\n        CreationPolicy = new Opentelekomcloud.Inputs.CssSnapshotConfigurationV1CreationPolicyArgs\n        {\n            Prefix = \"snapshot\",\n            Period = \"00:00 GMT+03:00\",\n            Keepday = 2,\n            Enable = true,\n            DeleteAuto = true,\n            Frequency = \"DAY\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsecgroup, err := opentelekomcloud.LookupNetworkingSecgroupV2(ctx, &opentelekomcloud.LookupNetworkingSecgroupV2Args{\n\t\t\tName: pulumi.StringRef(securityGroup),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcluster, err := opentelekomcloud.NewCssClusterV1(ctx, \"cluster\", &opentelekomcloud.CssClusterV1Args{\n\t\t\tName:          pulumi.String(\"terraform_test_cluster\"),\n\t\t\tExpectNodeNum: pulumi.Float64(1),\n\t\t\tNodeConfig: &opentelekomcloud.CssClusterV1NodeConfigArgs{\n\t\t\t\tFlavor: pulumi.String(\"css.medium.8\"),\n\t\t\t\tNetworkInfo: &opentelekomcloud.CssClusterV1NodeConfigNetworkInfoArgs{\n\t\t\t\t\tSecurityGroupId: pulumi.String(secgroup.Id),\n\t\t\t\t\tNetworkId:       pulumi.Any(networkId),\n\t\t\t\t\tVpcId:           pulumi.Any(vpcId),\n\t\t\t\t},\n\t\t\t\tVolume: &opentelekomcloud.CssClusterV1NodeConfigVolumeArgs{\n\t\t\t\t\tVolumeType: pulumi.String(\"COMMON\"),\n\t\t\t\t\tSize:       pulumi.Float64(40),\n\t\t\t\t},\n\t\t\t\tAvailabilityZone: pulumi.Any(availabilityZone),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket, err := opentelekomcloud.NewObsBucket(ctx, \"bucket\", &opentelekomcloud.ObsBucketArgs{\n\t\t\tBucket:       pulumi.String(\"tf-snap-testing\"),\n\t\t\tForceDestroy: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewCssSnapshotConfigurationV1(ctx, \"config\", &opentelekomcloud.CssSnapshotConfigurationV1Args{\n\t\t\tClusterId: cluster.CssClusterV1Id,\n\t\t\tConfiguration: &opentelekomcloud.CssSnapshotConfigurationV1ConfigurationArgs{\n\t\t\t\tBucket:   bucket.Bucket,\n\t\t\t\tAgency:   pulumi.String(\"css_obs_agency\"),\n\t\t\t\tBasePath: pulumi.String(\"css/snapshot\"),\n\t\t\t},\n\t\t\tCreationPolicy: &opentelekomcloud.CssSnapshotConfigurationV1CreationPolicyArgs{\n\t\t\t\tPrefix:     pulumi.String(\"snapshot\"),\n\t\t\t\tPeriod:     pulumi.String(\"00:00 GMT+03:00\"),\n\t\t\t\tKeepday:    pulumi.Float64(2),\n\t\t\t\tEnable:     pulumi.Bool(true),\n\t\t\t\tDeleteAuto: pulumi.Bool(true),\n\t\t\t\tFrequency:  pulumi.String(\"DAY\"),\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.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetNetworkingSecgroupV2Args;\nimport com.pulumi.opentelekomcloud.CssClusterV1;\nimport com.pulumi.opentelekomcloud.CssClusterV1Args;\nimport com.pulumi.opentelekomcloud.inputs.CssClusterV1NodeConfigArgs;\nimport com.pulumi.opentelekomcloud.inputs.CssClusterV1NodeConfigNetworkInfoArgs;\nimport com.pulumi.opentelekomcloud.inputs.CssClusterV1NodeConfigVolumeArgs;\nimport com.pulumi.opentelekomcloud.ObsBucket;\nimport com.pulumi.opentelekomcloud.ObsBucketArgs;\nimport com.pulumi.opentelekomcloud.CssSnapshotConfigurationV1;\nimport com.pulumi.opentelekomcloud.CssSnapshotConfigurationV1Args;\nimport com.pulumi.opentelekomcloud.inputs.CssSnapshotConfigurationV1ConfigurationArgs;\nimport com.pulumi.opentelekomcloud.inputs.CssSnapshotConfigurationV1CreationPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var secgroup = OpentelekomcloudFunctions.getNetworkingSecgroupV2(GetNetworkingSecgroupV2Args.builder()\n            .name(securityGroup)\n            .build());\n\n        var cluster = new CssClusterV1(\"cluster\", CssClusterV1Args.builder()\n            .name(\"terraform_test_cluster\")\n            .expectNodeNum(1.0)\n            .nodeConfig(CssClusterV1NodeConfigArgs.builder()\n                .flavor(\"css.medium.8\")\n                .networkInfo(CssClusterV1NodeConfigNetworkInfoArgs.builder()\n                    .securityGroupId(secgroup.id())\n                    .networkId(networkId)\n                    .vpcId(vpcId)\n                    .build())\n                .volume(CssClusterV1NodeConfigVolumeArgs.builder()\n                    .volumeType(\"COMMON\")\n                    .size(40.0)\n                    .build())\n                .availabilityZone(availabilityZone)\n                .build())\n            .build());\n\n        var bucket = new ObsBucket(\"bucket\", ObsBucketArgs.builder()\n            .bucket(\"tf-snap-testing\")\n            .forceDestroy(true)\n            .build());\n\n        var config = new CssSnapshotConfigurationV1(\"config\", CssSnapshotConfigurationV1Args.builder()\n            .clusterId(cluster.cssClusterV1Id())\n            .configuration(CssSnapshotConfigurationV1ConfigurationArgs.builder()\n                .bucket(bucket.bucket())\n                .agency(\"css_obs_agency\")\n                .basePath(\"css/snapshot\")\n                .build())\n            .creationPolicy(CssSnapshotConfigurationV1CreationPolicyArgs.builder()\n                .prefix(\"snapshot\")\n                .period(\"00:00 GMT+03:00\")\n                .keepday(2.0)\n                .enable(true)\n                .deleteAuto(true)\n                .frequency(\"DAY\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  cluster:\n    type: opentelekomcloud:CssClusterV1\n    properties:\n      name: terraform_test_cluster\n      expectNodeNum: 1\n      nodeConfig:\n        flavor: css.medium.8\n        networkInfo:\n          securityGroupId: ${secgroup.id}\n          networkId: ${networkId}\n          vpcId: ${vpcId}\n        volume:\n          volumeType: COMMON\n          size: 40\n        availabilityZone: ${availabilityZone}\n  bucket:\n    type: opentelekomcloud:ObsBucket\n    properties:\n      bucket: tf-snap-testing\n      forceDestroy: true\n  config:\n    type: opentelekomcloud:CssSnapshotConfigurationV1\n    properties:\n      clusterId: ${cluster.cssClusterV1Id}\n      configuration:\n        bucket: ${bucket.bucket}\n        agency: css_obs_agency\n        basePath: css/snapshot\n      creationPolicy:\n        prefix: snapshot\n        period: 00:00 GMT+03:00\n        keepday: 2\n        enable: true\n        deleteAuto: true\n        frequency: DAY\nvariables:\n  secgroup:\n    fn::invoke:\n      function: opentelekomcloud:getNetworkingSecgroupV2\n      arguments:\n        name: ${securityGroup}\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"automatic":{"description":"Use automatic configuration for CCS cluster screenshots.\nMutually exclusive with <span pulumi-lang-nodejs=\"`configuration`\" pulumi-lang-dotnet=\"`Configuration`\" pulumi-lang-go=\"`configuration`\" pulumi-lang-python=\"`configuration`\" pulumi-lang-yaml=\"`configuration`\" pulumi-lang-java=\"`configuration`\">`configuration`</span>/<span pulumi-lang-nodejs=\"`creationPolicy`\" pulumi-lang-dotnet=\"`CreationPolicy`\" pulumi-lang-go=\"`creationPolicy`\" pulumi-lang-python=\"`creation_policy`\" pulumi-lang-yaml=\"`creationPolicy`\" pulumi-lang-java=\"`creationPolicy`\">`creation_policy`</span>.\n","type":"boolean"},"clusterId":{"description":"ID of the CSS cluster.\n","type":"string"},"configuration":{"$ref":"#/types/opentelekomcloud:index%2FCssSnapshotConfigurationV1Configuration:CssSnapshotConfigurationV1Configuration","description":"The basic configurations of a cluster snapshot. Structure is documented below.\nMutually exclusive with <span pulumi-lang-nodejs=\"`automatic`\" pulumi-lang-dotnet=\"`Automatic`\" pulumi-lang-go=\"`automatic`\" pulumi-lang-python=\"`automatic`\" pulumi-lang-yaml=\"`automatic`\" pulumi-lang-java=\"`automatic`\">`automatic`</span>.\n"},"creationPolicy":{"$ref":"#/types/opentelekomcloud:index%2FCssSnapshotConfigurationV1CreationPolicy:CssSnapshotConfigurationV1CreationPolicy","description":"Parameters related to automatic snapshot creation. Structure is documented below.\nMutually exclusive with <span pulumi-lang-nodejs=\"`automatic`\" pulumi-lang-dotnet=\"`Automatic`\" pulumi-lang-go=\"`automatic`\" pulumi-lang-python=\"`automatic`\" pulumi-lang-yaml=\"`automatic`\" pulumi-lang-java=\"`automatic`\">`automatic`</span>.\n"},"cssSnapshotConfigurationV1Id":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCssSnapshotConfigurationV1Timeouts:CssSnapshotConfigurationV1Timeouts"}},"properties":{"automatic":{"description":"Use automatic configuration for CCS cluster screenshots.\nMutually exclusive with <span pulumi-lang-nodejs=\"`configuration`\" pulumi-lang-dotnet=\"`Configuration`\" pulumi-lang-go=\"`configuration`\" pulumi-lang-python=\"`configuration`\" pulumi-lang-yaml=\"`configuration`\" pulumi-lang-java=\"`configuration`\">`configuration`</span>/<span pulumi-lang-nodejs=\"`creationPolicy`\" pulumi-lang-dotnet=\"`CreationPolicy`\" pulumi-lang-go=\"`creationPolicy`\" pulumi-lang-python=\"`creation_policy`\" pulumi-lang-yaml=\"`creationPolicy`\" pulumi-lang-java=\"`creationPolicy`\">`creation_policy`</span>.\n","type":"boolean"},"clusterId":{"description":"ID of the CSS cluster.\n","type":"string"},"configuration":{"$ref":"#/types/opentelekomcloud:index%2FCssSnapshotConfigurationV1Configuration:CssSnapshotConfigurationV1Configuration","description":"The basic configurations of a cluster snapshot. Structure is documented below.\nMutually exclusive with <span pulumi-lang-nodejs=\"`automatic`\" pulumi-lang-dotnet=\"`Automatic`\" pulumi-lang-go=\"`automatic`\" pulumi-lang-python=\"`automatic`\" pulumi-lang-yaml=\"`automatic`\" pulumi-lang-java=\"`automatic`\">`automatic`</span>.\n"},"creationPolicy":{"$ref":"#/types/opentelekomcloud:index%2FCssSnapshotConfigurationV1CreationPolicy:CssSnapshotConfigurationV1CreationPolicy","description":"Parameters related to automatic snapshot creation. Structure is documented below.\nMutually exclusive with <span pulumi-lang-nodejs=\"`automatic`\" pulumi-lang-dotnet=\"`Automatic`\" pulumi-lang-go=\"`automatic`\" pulumi-lang-python=\"`automatic`\" pulumi-lang-yaml=\"`automatic`\" pulumi-lang-java=\"`automatic`\">`automatic`</span>.\n"},"cssSnapshotConfigurationV1Id":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCssSnapshotConfigurationV1Timeouts:CssSnapshotConfigurationV1Timeouts"}},"required":["clusterId","cssSnapshotConfigurationV1Id"],"requiredInputs":["clusterId"],"stateInputs":{"description":"Input properties used for looking up and filtering CssSnapshotConfigurationV1 resources.\n","properties":{"automatic":{"description":"Use automatic configuration for CCS cluster screenshots.\nMutually exclusive with <span pulumi-lang-nodejs=\"`configuration`\" pulumi-lang-dotnet=\"`Configuration`\" pulumi-lang-go=\"`configuration`\" pulumi-lang-python=\"`configuration`\" pulumi-lang-yaml=\"`configuration`\" pulumi-lang-java=\"`configuration`\">`configuration`</span>/<span pulumi-lang-nodejs=\"`creationPolicy`\" pulumi-lang-dotnet=\"`CreationPolicy`\" pulumi-lang-go=\"`creationPolicy`\" pulumi-lang-python=\"`creation_policy`\" pulumi-lang-yaml=\"`creationPolicy`\" pulumi-lang-java=\"`creationPolicy`\">`creation_policy`</span>.\n","type":"boolean"},"clusterId":{"description":"ID of the CSS cluster.\n","type":"string"},"configuration":{"$ref":"#/types/opentelekomcloud:index%2FCssSnapshotConfigurationV1Configuration:CssSnapshotConfigurationV1Configuration","description":"The basic configurations of a cluster snapshot. Structure is documented below.\nMutually exclusive with <span pulumi-lang-nodejs=\"`automatic`\" pulumi-lang-dotnet=\"`Automatic`\" pulumi-lang-go=\"`automatic`\" pulumi-lang-python=\"`automatic`\" pulumi-lang-yaml=\"`automatic`\" pulumi-lang-java=\"`automatic`\">`automatic`</span>.\n"},"creationPolicy":{"$ref":"#/types/opentelekomcloud:index%2FCssSnapshotConfigurationV1CreationPolicy:CssSnapshotConfigurationV1CreationPolicy","description":"Parameters related to automatic snapshot creation. Structure is documented below.\nMutually exclusive with <span pulumi-lang-nodejs=\"`automatic`\" pulumi-lang-dotnet=\"`Automatic`\" pulumi-lang-go=\"`automatic`\" pulumi-lang-python=\"`automatic`\" pulumi-lang-yaml=\"`automatic`\" pulumi-lang-java=\"`automatic`\">`automatic`</span>.\n"},"cssSnapshotConfigurationV1Id":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCssSnapshotConfigurationV1Timeouts:CssSnapshotConfigurationV1Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/ctsEventNotificationV3:CtsEventNotificationV3":{"description":"Up-to-date reference of API arguments for CTS event notification you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-trace-service/api-ref/api_description/key_event_notification_management)\n\nAllows to send SMS, email, or HTTP/HTTPS notifications through pre-configured SMN topics to subscribers.\n\n## Example Usage\n\n### Event notification which delivers every tenant action to subscribers\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst topic1 = new opentelekomcloud.SmnTopicV2(\"topic_1\", {name: \"topic_1\"});\nconst notificationV3 = new opentelekomcloud.CtsEventNotificationV3(\"notification_v3\", {\n    notificationName: \"my_notification\",\n    operationType: \"complete\",\n    topicId: topic1.smnTopicV2Id,\n    status: \"enabled\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntopic1 = opentelekomcloud.SmnTopicV2(\"topic_1\", name=\"topic_1\")\nnotification_v3 = opentelekomcloud.CtsEventNotificationV3(\"notification_v3\",\n    notification_name=\"my_notification\",\n    operation_type=\"complete\",\n    topic_id=topic1.smn_topic_v2_id,\n    status=\"enabled\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var topic1 = new Opentelekomcloud.SmnTopicV2(\"topic_1\", new()\n    {\n        Name = \"topic_1\",\n    });\n\n    var notificationV3 = new Opentelekomcloud.CtsEventNotificationV3(\"notification_v3\", new()\n    {\n        NotificationName = \"my_notification\",\n        OperationType = \"complete\",\n        TopicId = topic1.SmnTopicV2Id,\n        Status = \"enabled\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttopic1, err := opentelekomcloud.NewSmnTopicV2(ctx, \"topic_1\", &opentelekomcloud.SmnTopicV2Args{\n\t\t\tName: pulumi.String(\"topic_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewCtsEventNotificationV3(ctx, \"notification_v3\", &opentelekomcloud.CtsEventNotificationV3Args{\n\t\t\tNotificationName: pulumi.String(\"my_notification\"),\n\t\t\tOperationType:    pulumi.String(\"complete\"),\n\t\t\tTopicId:          topic1.SmnTopicV2Id,\n\t\t\tStatus:           pulumi.String(\"enabled\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.SmnTopicV2;\nimport com.pulumi.opentelekomcloud.SmnTopicV2Args;\nimport com.pulumi.opentelekomcloud.CtsEventNotificationV3;\nimport com.pulumi.opentelekomcloud.CtsEventNotificationV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var topic1 = new SmnTopicV2(\"topic1\", SmnTopicV2Args.builder()\n            .name(\"topic_1\")\n            .build());\n\n        var notificationV3 = new CtsEventNotificationV3(\"notificationV3\", CtsEventNotificationV3Args.builder()\n            .notificationName(\"my_notification\")\n            .operationType(\"complete\")\n            .topicId(topic1.smnTopicV2Id())\n            .status(\"enabled\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  topic1:\n    type: opentelekomcloud:SmnTopicV2\n    name: topic_1\n    properties:\n      name: topic_1\n  notificationV3:\n    type: opentelekomcloud:CtsEventNotificationV3\n    name: notification_v3\n    properties:\n      notificationName: my_notification\n      operationType: complete\n      topicId: ${topic1.smnTopicV2Id}\n      status: enabled\n```\n<!--End PulumiCodeChooser -->\n\n### Event notification with disabled SMN topic and filtering\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst topic1 = new opentelekomcloud.SmnTopicV2(\"topic_1\", {name: \"topic_1\"});\nconst notificationV3 = new opentelekomcloud.CtsEventNotificationV3(\"notification_v3\", {\n    notificationName: \"my_notification\",\n    operationType: \"complete\",\n    filter: {\n        condition: \"AND\",\n        rules: [\n            \"code = 200\",\n            \"resource_name = test\",\n        ],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntopic1 = opentelekomcloud.SmnTopicV2(\"topic_1\", name=\"topic_1\")\nnotification_v3 = opentelekomcloud.CtsEventNotificationV3(\"notification_v3\",\n    notification_name=\"my_notification\",\n    operation_type=\"complete\",\n    filter={\n        \"condition\": \"AND\",\n        \"rules\": [\n            \"code = 200\",\n            \"resource_name = test\",\n        ],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var topic1 = new Opentelekomcloud.SmnTopicV2(\"topic_1\", new()\n    {\n        Name = \"topic_1\",\n    });\n\n    var notificationV3 = new Opentelekomcloud.CtsEventNotificationV3(\"notification_v3\", new()\n    {\n        NotificationName = \"my_notification\",\n        OperationType = \"complete\",\n        Filter = new Opentelekomcloud.Inputs.CtsEventNotificationV3FilterArgs\n        {\n            Condition = \"AND\",\n            Rules = new[]\n            {\n                \"code = 200\",\n                \"resource_name = test\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewSmnTopicV2(ctx, \"topic_1\", &opentelekomcloud.SmnTopicV2Args{\n\t\t\tName: pulumi.String(\"topic_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewCtsEventNotificationV3(ctx, \"notification_v3\", &opentelekomcloud.CtsEventNotificationV3Args{\n\t\t\tNotificationName: pulumi.String(\"my_notification\"),\n\t\t\tOperationType:    pulumi.String(\"complete\"),\n\t\t\tFilter: &opentelekomcloud.CtsEventNotificationV3FilterArgs{\n\t\t\t\tCondition: pulumi.String(\"AND\"),\n\t\t\t\tRules: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"code = 200\"),\n\t\t\t\t\tpulumi.String(\"resource_name = test\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.SmnTopicV2;\nimport com.pulumi.opentelekomcloud.SmnTopicV2Args;\nimport com.pulumi.opentelekomcloud.CtsEventNotificationV3;\nimport com.pulumi.opentelekomcloud.CtsEventNotificationV3Args;\nimport com.pulumi.opentelekomcloud.inputs.CtsEventNotificationV3FilterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var topic1 = new SmnTopicV2(\"topic1\", SmnTopicV2Args.builder()\n            .name(\"topic_1\")\n            .build());\n\n        var notificationV3 = new CtsEventNotificationV3(\"notificationV3\", CtsEventNotificationV3Args.builder()\n            .notificationName(\"my_notification\")\n            .operationType(\"complete\")\n            .filter(CtsEventNotificationV3FilterArgs.builder()\n                .condition(\"AND\")\n                .rules(                \n                    \"code = 200\",\n                    \"resource_name = test\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  topic1:\n    type: opentelekomcloud:SmnTopicV2\n    name: topic_1\n    properties:\n      name: topic_1\n  notificationV3:\n    type: opentelekomcloud:CtsEventNotificationV3\n    name: notification_v3\n    properties:\n      notificationName: my_notification\n      operationType: complete\n      filter:\n        condition: AND\n        rules:\n          - code = 200\n          - resource_name = test\n```\n<!--End PulumiCodeChooser -->\n\n### Event notification with selected operations and users\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst topic1 = new opentelekomcloud.SmnTopicV2(\"topic_1\", {name: \"topic_1\"});\nconst notificationV3 = new opentelekomcloud.CtsEventNotificationV3(\"notification_v3\", {\n    notificationName: \"test_user\",\n    operationType: \"customized\",\n    topicId: topic1.smnTopicV2Id,\n    status: \"enabled\",\n    operations: [\n        {\n            resourceType: \"vpc\",\n            serviceType: \"VPC\",\n            traceNames: [\n                \"deleteVpc\",\n                \"createVpc\",\n            ],\n        },\n        {\n            resourceType: \"evs\",\n            serviceType: \"EVS\",\n            traceNames: [\n                \"createVolume\",\n                \"deleteVolume\",\n            ],\n        },\n    ],\n    notifyUserLists: [{\n        userGroup: \"user_group\",\n        userLists: [\n            \"user_one\",\n            \"user_two\",\n        ],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntopic1 = opentelekomcloud.SmnTopicV2(\"topic_1\", name=\"topic_1\")\nnotification_v3 = opentelekomcloud.CtsEventNotificationV3(\"notification_v3\",\n    notification_name=\"test_user\",\n    operation_type=\"customized\",\n    topic_id=topic1.smn_topic_v2_id,\n    status=\"enabled\",\n    operations=[\n        {\n            \"resource_type\": \"vpc\",\n            \"service_type\": \"VPC\",\n            \"trace_names\": [\n                \"deleteVpc\",\n                \"createVpc\",\n            ],\n        },\n        {\n            \"resource_type\": \"evs\",\n            \"service_type\": \"EVS\",\n            \"trace_names\": [\n                \"createVolume\",\n                \"deleteVolume\",\n            ],\n        },\n    ],\n    notify_user_lists=[{\n        \"user_group\": \"user_group\",\n        \"user_lists\": [\n            \"user_one\",\n            \"user_two\",\n        ],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var topic1 = new Opentelekomcloud.SmnTopicV2(\"topic_1\", new()\n    {\n        Name = \"topic_1\",\n    });\n\n    var notificationV3 = new Opentelekomcloud.CtsEventNotificationV3(\"notification_v3\", new()\n    {\n        NotificationName = \"test_user\",\n        OperationType = \"customized\",\n        TopicId = topic1.SmnTopicV2Id,\n        Status = \"enabled\",\n        Operations = new[]\n        {\n            new Opentelekomcloud.Inputs.CtsEventNotificationV3OperationArgs\n            {\n                ResourceType = \"vpc\",\n                ServiceType = \"VPC\",\n                TraceNames = new[]\n                {\n                    \"deleteVpc\",\n                    \"createVpc\",\n                },\n            },\n            new Opentelekomcloud.Inputs.CtsEventNotificationV3OperationArgs\n            {\n                ResourceType = \"evs\",\n                ServiceType = \"EVS\",\n                TraceNames = new[]\n                {\n                    \"createVolume\",\n                    \"deleteVolume\",\n                },\n            },\n        },\n        NotifyUserLists = new[]\n        {\n            new Opentelekomcloud.Inputs.CtsEventNotificationV3NotifyUserListArgs\n            {\n                UserGroup = \"user_group\",\n                UserLists = new[]\n                {\n                    \"user_one\",\n                    \"user_two\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttopic1, err := opentelekomcloud.NewSmnTopicV2(ctx, \"topic_1\", &opentelekomcloud.SmnTopicV2Args{\n\t\t\tName: pulumi.String(\"topic_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewCtsEventNotificationV3(ctx, \"notification_v3\", &opentelekomcloud.CtsEventNotificationV3Args{\n\t\t\tNotificationName: pulumi.String(\"test_user\"),\n\t\t\tOperationType:    pulumi.String(\"customized\"),\n\t\t\tTopicId:          topic1.SmnTopicV2Id,\n\t\t\tStatus:           pulumi.String(\"enabled\"),\n\t\t\tOperations: opentelekomcloud.CtsEventNotificationV3OperationArray{\n\t\t\t\t&opentelekomcloud.CtsEventNotificationV3OperationArgs{\n\t\t\t\t\tResourceType: pulumi.String(\"vpc\"),\n\t\t\t\t\tServiceType:  pulumi.String(\"VPC\"),\n\t\t\t\t\tTraceNames: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"deleteVpc\"),\n\t\t\t\t\t\tpulumi.String(\"createVpc\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.CtsEventNotificationV3OperationArgs{\n\t\t\t\t\tResourceType: pulumi.String(\"evs\"),\n\t\t\t\t\tServiceType:  pulumi.String(\"EVS\"),\n\t\t\t\t\tTraceNames: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"createVolume\"),\n\t\t\t\t\t\tpulumi.String(\"deleteVolume\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tNotifyUserLists: opentelekomcloud.CtsEventNotificationV3NotifyUserListArray{\n\t\t\t\t&opentelekomcloud.CtsEventNotificationV3NotifyUserListArgs{\n\t\t\t\t\tUserGroup: pulumi.String(\"user_group\"),\n\t\t\t\t\tUserLists: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"user_one\"),\n\t\t\t\t\t\tpulumi.String(\"user_two\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.SmnTopicV2;\nimport com.pulumi.opentelekomcloud.SmnTopicV2Args;\nimport com.pulumi.opentelekomcloud.CtsEventNotificationV3;\nimport com.pulumi.opentelekomcloud.CtsEventNotificationV3Args;\nimport com.pulumi.opentelekomcloud.inputs.CtsEventNotificationV3OperationArgs;\nimport com.pulumi.opentelekomcloud.inputs.CtsEventNotificationV3NotifyUserListArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var topic1 = new SmnTopicV2(\"topic1\", SmnTopicV2Args.builder()\n            .name(\"topic_1\")\n            .build());\n\n        var notificationV3 = new CtsEventNotificationV3(\"notificationV3\", CtsEventNotificationV3Args.builder()\n            .notificationName(\"test_user\")\n            .operationType(\"customized\")\n            .topicId(topic1.smnTopicV2Id())\n            .status(\"enabled\")\n            .operations(            \n                CtsEventNotificationV3OperationArgs.builder()\n                    .resourceType(\"vpc\")\n                    .serviceType(\"VPC\")\n                    .traceNames(                    \n                        \"deleteVpc\",\n                        \"createVpc\")\n                    .build(),\n                CtsEventNotificationV3OperationArgs.builder()\n                    .resourceType(\"evs\")\n                    .serviceType(\"EVS\")\n                    .traceNames(                    \n                        \"createVolume\",\n                        \"deleteVolume\")\n                    .build())\n            .notifyUserLists(CtsEventNotificationV3NotifyUserListArgs.builder()\n                .userGroup(\"user_group\")\n                .userLists(                \n                    \"user_one\",\n                    \"user_two\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  topic1:\n    type: opentelekomcloud:SmnTopicV2\n    name: topic_1\n    properties:\n      name: topic_1\n  notificationV3:\n    type: opentelekomcloud:CtsEventNotificationV3\n    name: notification_v3\n    properties:\n      notificationName: test_user\n      operationType: customized\n      topicId: ${topic1.smnTopicV2Id}\n      status: enabled\n      operations:\n        - resourceType: vpc\n          serviceType: VPC\n          traceNames:\n            - deleteVpc\n            - createVpc\n        - resourceType: evs\n          serviceType: EVS\n          traceNames:\n            - createVolume\n            - deleteVolume\n      notifyUserLists:\n        - userGroup: user_group\n          userLists:\n            - user_one\n            - user_two\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCTS event notification can be imported using the `notification_id/notification_name`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/ctsEventNotificationV3:CtsEventNotificationV3 notification c1881895-cdcb-4d23-96cb-032e6a3ee667/test_event\n```\n\n","inputProperties":{"ctsEventNotificationV3Id":{"type":"string"},"filter":{"$ref":"#/types/opentelekomcloud:index%2FCtsEventNotificationV3Filter:CtsEventNotificationV3Filter","description":"Specifies the filtering rules for notification.\nThe filter structure is documented below.\n"},"notificationName":{"description":"The name of event notification rule. Only letters, digits\nand underscores (_) are allowed.\n","type":"string"},"notifyUserLists":{"description":"Specifies the list of users whose operations will trigger notifications.\nCurrently, up to 50 users in 10 user groups can be configured. Supported fields:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCtsEventNotificationV3NotifyUserList:CtsEventNotificationV3NotifyUserList"},"type":"array"},"operationType":{"description":"The operation type of event rules.\n\nPossible values:\n","type":"string"},"operations":{"description":"Specifies an array of operations that will trigger notifications.\nThe operations structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCtsEventNotificationV3Operation:CtsEventNotificationV3Operation"},"type":"array"},"status":{"description":"Specifies whether SMN topic is <span pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\">`enabled`</span> or <span pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\">`disabled`</span>.\n","type":"string"},"topicId":{"description":"Specifies SMN topic URN that will be used for events notification.\n","type":"string"}},"properties":{"createTime":{"description":"Specifies creation time of event notification rule.\n","type":"number"},"ctsEventNotificationV3Id":{"type":"string"},"filter":{"$ref":"#/types/opentelekomcloud:index%2FCtsEventNotificationV3Filter:CtsEventNotificationV3Filter","description":"Specifies the filtering rules for notification.\nThe filter structure is documented below.\n"},"notificationId":{"description":"Unique event notification id.\n","type":"string"},"notificationName":{"description":"The name of event notification rule. Only letters, digits\nand underscores (_) are allowed.\n","type":"string"},"notificationType":{"description":"Specifies the notification type. Current <span pulumi-lang-nodejs=\"`cts`\" pulumi-lang-dotnet=\"`Cts`\" pulumi-lang-go=\"`cts`\" pulumi-lang-python=\"`cts`\" pulumi-lang-yaml=\"`cts`\" pulumi-lang-java=\"`cts`\">`cts`</span> version supports only <span pulumi-lang-nodejs=\"`smn`\" pulumi-lang-dotnet=\"`Smn`\" pulumi-lang-go=\"`smn`\" pulumi-lang-python=\"`smn`\" pulumi-lang-yaml=\"`smn`\" pulumi-lang-java=\"`smn`\">`smn`</span> type.\n","type":"string"},"notifyUserLists":{"description":"Specifies the list of users whose operations will trigger notifications.\nCurrently, up to 50 users in 10 user groups can be configured. Supported fields:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCtsEventNotificationV3NotifyUserList:CtsEventNotificationV3NotifyUserList"},"type":"array"},"operationType":{"description":"The operation type of event rules.\n\nPossible values:\n","type":"string"},"operations":{"description":"Specifies an array of operations that will trigger notifications.\nThe operations structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCtsEventNotificationV3Operation:CtsEventNotificationV3Operation"},"type":"array"},"projectId":{"description":"Specifies project id of event notification rule.\n","type":"string"},"status":{"description":"Specifies whether SMN topic is <span pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\">`enabled`</span> or <span pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\">`disabled`</span>.\n","type":"string"},"topicId":{"description":"Specifies SMN topic URN that will be used for events notification.\n","type":"string"}},"required":["createTime","ctsEventNotificationV3Id","notificationId","notificationName","notificationType","operationType","projectId","status","topicId"],"requiredInputs":["notificationName","operationType"],"stateInputs":{"description":"Input properties used for looking up and filtering CtsEventNotificationV3 resources.\n","properties":{"createTime":{"description":"Specifies creation time of event notification rule.\n","type":"number"},"ctsEventNotificationV3Id":{"type":"string"},"filter":{"$ref":"#/types/opentelekomcloud:index%2FCtsEventNotificationV3Filter:CtsEventNotificationV3Filter","description":"Specifies the filtering rules for notification.\nThe filter structure is documented below.\n"},"notificationId":{"description":"Unique event notification id.\n","type":"string"},"notificationName":{"description":"The name of event notification rule. Only letters, digits\nand underscores (_) are allowed.\n","type":"string"},"notificationType":{"description":"Specifies the notification type. Current <span pulumi-lang-nodejs=\"`cts`\" pulumi-lang-dotnet=\"`Cts`\" pulumi-lang-go=\"`cts`\" pulumi-lang-python=\"`cts`\" pulumi-lang-yaml=\"`cts`\" pulumi-lang-java=\"`cts`\">`cts`</span> version supports only <span pulumi-lang-nodejs=\"`smn`\" pulumi-lang-dotnet=\"`Smn`\" pulumi-lang-go=\"`smn`\" pulumi-lang-python=\"`smn`\" pulumi-lang-yaml=\"`smn`\" pulumi-lang-java=\"`smn`\">`smn`</span> type.\n","type":"string"},"notifyUserLists":{"description":"Specifies the list of users whose operations will trigger notifications.\nCurrently, up to 50 users in 10 user groups can be configured. Supported fields:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCtsEventNotificationV3NotifyUserList:CtsEventNotificationV3NotifyUserList"},"type":"array"},"operationType":{"description":"The operation type of event rules.\n\nPossible values:\n","type":"string"},"operations":{"description":"Specifies an array of operations that will trigger notifications.\nThe operations structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FCtsEventNotificationV3Operation:CtsEventNotificationV3Operation"},"type":"array"},"projectId":{"description":"Specifies project id of event notification rule.\n","type":"string"},"status":{"description":"Specifies whether SMN topic is <span pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\">`enabled`</span> or <span pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\">`disabled`</span>.\n","type":"string"},"topicId":{"description":"Specifies SMN topic URN that will be used for events notification.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/ctsTrackerV1:CtsTrackerV1":{"description":"Up-to-date reference of API arguments for CTS tracker you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-trace-service/api-ref/api_description/tracker_management)\n\n**DEPRECATED**\nAllows you to collect, store, and query cloud resource operation records.\n\n> A single tracker can be created for current CTS version.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst bucketName = config.requireObject<any>(\"bucketName\");\nconst trackerV1 = new opentelekomcloud.CtsTrackerV1(\"tracker_v1\", {\n    bucketName: bucketName,\n    filePrefixName: \"yO8Q\",\n    isLtsEnabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nbucket_name = config.require_object(\"bucketName\")\ntracker_v1 = opentelekomcloud.CtsTrackerV1(\"tracker_v1\",\n    bucket_name=bucket_name,\n    file_prefix_name=\"yO8Q\",\n    is_lts_enabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var bucketName = config.RequireObject<dynamic>(\"bucketName\");\n    var trackerV1 = new Opentelekomcloud.CtsTrackerV1(\"tracker_v1\", new()\n    {\n        BucketName = bucketName,\n        FilePrefixName = \"yO8Q\",\n        IsLtsEnabled = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tbucketName := cfg.RequireObject(\"bucketName\")\n\t\t_, err := opentelekomcloud.NewCtsTrackerV1(ctx, \"tracker_v1\", &opentelekomcloud.CtsTrackerV1Args{\n\t\t\tBucketName:     pulumi.Any(bucketName),\n\t\t\tFilePrefixName: pulumi.String(\"yO8Q\"),\n\t\t\tIsLtsEnabled:   pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CtsTrackerV1;\nimport com.pulumi.opentelekomcloud.CtsTrackerV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var bucketName = config.get(\"bucketName\");\n        var trackerV1 = new CtsTrackerV1(\"trackerV1\", CtsTrackerV1Args.builder()\n            .bucketName(bucketName)\n            .filePrefixName(\"yO8Q\")\n            .isLtsEnabled(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  bucketName:\n    type: dynamic\nresources:\n  trackerV1:\n    type: opentelekomcloud:CtsTrackerV1\n    name: tracker_v1\n    properties:\n      bucketName: ${bucketName}\n      filePrefixName: yO8Q\n      isLtsEnabled: true\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCTS tracker can be imported using  `tracker_name`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/ctsTrackerV1:CtsTrackerV1 tracker system\n```\n\n","inputProperties":{"bucketName":{"description":"The OBS bucket name for a tracker.\n","type":"string"},"ctsTrackerV1Id":{"type":"string"},"filePrefixName":{"description":"The prefix of a log that needs to be stored in an OBS bucket.\n","type":"string"},"isLtsEnabled":{"description":"Specifies whether to enable trace analysis.\n","type":"boolean"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCtsTrackerV1Timeouts:CtsTrackerV1Timeouts"}},"properties":{"bucketName":{"description":"The OBS bucket name for a tracker.\n","type":"string"},"ctsTrackerV1Id":{"type":"string"},"filePrefixName":{"description":"The prefix of a log that needs to be stored in an OBS bucket.\n","type":"string"},"isLtsEnabled":{"description":"Specifies whether to enable trace analysis.\n","type":"boolean"},"logGroupName":{"description":"Specifies LTS log group name.\n","type":"string"},"logTopicName":{"description":"Specifies LTS log stream.\n","type":"string"},"region":{"description":"Specifies the tracker region.\n","type":"string"},"status":{"description":"Specifies current status of the tracker.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCtsTrackerV1Timeouts:CtsTrackerV1Timeouts"},"trackerName":{"description":"The tracker name. Currently, only tracker <span pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\">`system`</span> is available.\n","type":"string"}},"required":["bucketName","ctsTrackerV1Id","filePrefixName","isLtsEnabled","logGroupName","logTopicName","region","status","trackerName"],"requiredInputs":["bucketName"],"stateInputs":{"description":"Input properties used for looking up and filtering CtsTrackerV1 resources.\n","properties":{"bucketName":{"description":"The OBS bucket name for a tracker.\n","type":"string"},"ctsTrackerV1Id":{"type":"string"},"filePrefixName":{"description":"The prefix of a log that needs to be stored in an OBS bucket.\n","type":"string"},"isLtsEnabled":{"description":"Specifies whether to enable trace analysis.\n","type":"boolean"},"logGroupName":{"description":"Specifies LTS log group name.\n","type":"string"},"logTopicName":{"description":"Specifies LTS log stream.\n","type":"string"},"region":{"description":"Specifies the tracker region.\n","type":"string"},"status":{"description":"Specifies current status of the tracker.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCtsTrackerV1Timeouts:CtsTrackerV1Timeouts"},"trackerName":{"description":"The tracker name. Currently, only tracker <span pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\">`system`</span> is available.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/ctsTrackerV3:CtsTrackerV3":{"description":"Up-to-date reference of API arguments for CTS tracker you can get at\n[documentation portal](https://docs.otc.t-systems.com/cloud-trace-service/api-ref/v3_apis_recommended/tracker_management/index.html#cts-api-0320)\n\nAllows you to collect, store, and query cloud resource operation records.\n\n> A single tracker can be created for current CTS version.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst bucketName = config.requireObject<any>(\"bucketName\");\nconst trackerV3 = new opentelekomcloud.CtsTrackerV3(\"tracker_v3\", {\n    bucketName: bucketName,\n    filePrefixName: \"prefix\",\n    isLtsEnabled: true,\n    status: \"enabled\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nbucket_name = config.require_object(\"bucketName\")\ntracker_v3 = opentelekomcloud.CtsTrackerV3(\"tracker_v3\",\n    bucket_name=bucket_name,\n    file_prefix_name=\"prefix\",\n    is_lts_enabled=True,\n    status=\"enabled\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var bucketName = config.RequireObject<dynamic>(\"bucketName\");\n    var trackerV3 = new Opentelekomcloud.CtsTrackerV3(\"tracker_v3\", new()\n    {\n        BucketName = bucketName,\n        FilePrefixName = \"prefix\",\n        IsLtsEnabled = true,\n        Status = \"enabled\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tbucketName := cfg.RequireObject(\"bucketName\")\n\t\t_, err := opentelekomcloud.NewCtsTrackerV3(ctx, \"tracker_v3\", &opentelekomcloud.CtsTrackerV3Args{\n\t\t\tBucketName:     pulumi.Any(bucketName),\n\t\t\tFilePrefixName: pulumi.String(\"prefix\"),\n\t\t\tIsLtsEnabled:   pulumi.Bool(true),\n\t\t\tStatus:         pulumi.String(\"enabled\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.CtsTrackerV3;\nimport com.pulumi.opentelekomcloud.CtsTrackerV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var bucketName = config.get(\"bucketName\");\n        var trackerV3 = new CtsTrackerV3(\"trackerV3\", CtsTrackerV3Args.builder()\n            .bucketName(bucketName)\n            .filePrefixName(\"prefix\")\n            .isLtsEnabled(true)\n            .status(\"enabled\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  bucketName:\n    type: dynamic\nresources:\n  trackerV3:\n    type: opentelekomcloud:CtsTrackerV3\n    name: tracker_v3\n    properties:\n      bucketName: ${bucketName}\n      filePrefixName: prefix\n      isLtsEnabled: true\n      status: enabled\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCTS tracker can be imported using `tracker_name`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/ctsTrackerV3:CtsTrackerV3 tracker system\n```\n\n","inputProperties":{"bucketName":{"description":"The OBS bucket name for a tracker.\n","type":"string"},"compressType":{"description":"Specifies the compression type. Default value is <span pulumi-lang-nodejs=\"`gzip`\" pulumi-lang-dotnet=\"`Gzip`\" pulumi-lang-go=\"`gzip`\" pulumi-lang-python=\"`gzip`\" pulumi-lang-yaml=\"`gzip`\" pulumi-lang-java=\"`gzip`\">`gzip`</span>.\nThe valid values are as follows:\n+ **gzip**: compression.\n+ **json**: no compression.\n","type":"string"},"filePrefixName":{"description":"The prefix of a log that needs to be stored in an OBS bucket.\n","type":"string"},"isLtsEnabled":{"description":"Specifies whether to enable trace analysis.\n","type":"boolean"},"isObsCreated":{"description":"Specifies whether the OBS bucket is automatically created by the tracker.\n","type":"boolean"},"isSortByService":{"description":"Specifies whether to sort the path by cloud service. If this option is enabled,\nthe cloud service name is added to the transfer file path. Default: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"status":{"description":"Specifies whether tracker is <span pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\">`enabled`</span> or <span pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\">`disabled`</span>.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCtsTrackerV3Timeouts:CtsTrackerV3Timeouts"}},"properties":{"bucketName":{"description":"The OBS bucket name for a tracker.\n","type":"string"},"compressType":{"description":"Specifies the compression type. Default value is <span pulumi-lang-nodejs=\"`gzip`\" pulumi-lang-dotnet=\"`Gzip`\" pulumi-lang-go=\"`gzip`\" pulumi-lang-python=\"`gzip`\" pulumi-lang-yaml=\"`gzip`\" pulumi-lang-java=\"`gzip`\">`gzip`</span>.\nThe valid values are as follows:\n+ **gzip**: compression.\n+ **json**: no compression.\n","type":"string"},"detail":{"description":"Specifies the cause of the abnormal status, and its value in case of errors.\n","type":"string"},"domainId":{"description":"Specifies domain id of the tracker.\n","type":"string"},"filePrefixName":{"description":"The prefix of a log that needs to be stored in an OBS bucket.\n","type":"string"},"isLtsEnabled":{"description":"Specifies whether to enable trace analysis.\n","type":"boolean"},"isObsCreated":{"description":"Specifies whether the OBS bucket is automatically created by the tracker.\n","type":"boolean"},"isSortByService":{"description":"Specifies whether to sort the path by cloud service. If this option is enabled,\nthe cloud service name is added to the transfer file path. Default: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"logGroupName":{"description":"Specifies LTS log group name.\n","type":"string"},"logTopicName":{"description":"Specifies LTS log stream.\n","type":"string"},"projectId":{"description":"Specifies project id of the tracker.\n","type":"string"},"status":{"description":"Specifies whether tracker is <span pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\">`enabled`</span> or <span pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\">`disabled`</span>.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCtsTrackerV3Timeouts:CtsTrackerV3Timeouts"},"trackerName":{"description":"The tracker name. Currently, only tracker <span pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\">`system`</span> is available.\n","type":"string"},"trackerType":{"description":"The tracker type. Currently, only tracker <span pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\">`system`</span> is available.\n","type":"string"}},"required":["bucketName","compressType","detail","domainId","filePrefixName","isLtsEnabled","isObsCreated","isSortByService","logGroupName","logTopicName","projectId","status","trackerName","trackerType"],"requiredInputs":["status"],"stateInputs":{"description":"Input properties used for looking up and filtering CtsTrackerV3 resources.\n","properties":{"bucketName":{"description":"The OBS bucket name for a tracker.\n","type":"string"},"compressType":{"description":"Specifies the compression type. Default value is <span pulumi-lang-nodejs=\"`gzip`\" pulumi-lang-dotnet=\"`Gzip`\" pulumi-lang-go=\"`gzip`\" pulumi-lang-python=\"`gzip`\" pulumi-lang-yaml=\"`gzip`\" pulumi-lang-java=\"`gzip`\">`gzip`</span>.\nThe valid values are as follows:\n+ **gzip**: compression.\n+ **json**: no compression.\n","type":"string"},"detail":{"description":"Specifies the cause of the abnormal status, and its value in case of errors.\n","type":"string"},"domainId":{"description":"Specifies domain id of the tracker.\n","type":"string"},"filePrefixName":{"description":"The prefix of a log that needs to be stored in an OBS bucket.\n","type":"string"},"isLtsEnabled":{"description":"Specifies whether to enable trace analysis.\n","type":"boolean"},"isObsCreated":{"description":"Specifies whether the OBS bucket is automatically created by the tracker.\n","type":"boolean"},"isSortByService":{"description":"Specifies whether to sort the path by cloud service. If this option is enabled,\nthe cloud service name is added to the transfer file path. Default: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"logGroupName":{"description":"Specifies LTS log group name.\n","type":"string"},"logTopicName":{"description":"Specifies LTS log stream.\n","type":"string"},"projectId":{"description":"Specifies project id of the tracker.\n","type":"string"},"status":{"description":"Specifies whether tracker is <span pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\">`enabled`</span> or <span pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\">`disabled`</span>.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FCtsTrackerV3Timeouts:CtsTrackerV3Timeouts"},"trackerName":{"description":"The tracker name. Currently, only tracker <span pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\">`system`</span> is available.\n","type":"string"},"trackerType":{"description":"The tracker type. Currently, only tracker <span pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\">`system`</span> is available.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/dcEndpointGroupV2:DcEndpointGroupV2":{"inputProperties":{"description":{"type":"string"},"endpoints":{"items":{"type":"string"},"type":"array"},"name":{"type":"string"},"projectId":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDcEndpointGroupV2Timeouts:DcEndpointGroupV2Timeouts"},"type":{"type":"string"}},"properties":{"description":{"type":"string"},"endpoints":{"items":{"type":"string"},"type":"array"},"name":{"type":"string"},"projectId":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDcEndpointGroupV2Timeouts:DcEndpointGroupV2Timeouts"},"type":{"type":"string"}},"required":["endpoints","name","projectId","type"],"requiredInputs":["endpoints","projectId","type"],"stateInputs":{"description":"Input properties used for looking up and filtering DcEndpointGroupV2 resources.\n","properties":{"description":{"type":"string"},"endpoints":{"items":{"type":"string"},"type":"array"},"name":{"type":"string"},"projectId":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDcEndpointGroupV2Timeouts:DcEndpointGroupV2Timeouts"},"type":{"type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/dcHostedConnectV3:DcHostedConnectV3":{"description":"Manages a hosted connection resource within OpenTelekomCloud.\n\n> **NOTE:** Direct Connect v3 API that are used in this resource officially supported only on SwissCloud now.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst hostingId = config.requireObject<any>(\"hostingId\");\nconst project = opentelekomcloud.getIdentityProjectV3({\n    name: \"project\",\n});\nconst hc = new opentelekomcloud.DcHostedConnectV3(\"hc\", {\n    name: \"hc\",\n    description: \"create\",\n    resourceTenantId: project.then(project => project.id),\n    hostingId: hostingId,\n    vlan: 441,\n    bandwidth: 10,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nhosting_id = config.require_object(\"hostingId\")\nproject = opentelekomcloud.get_identity_project_v3(name=\"project\")\nhc = opentelekomcloud.DcHostedConnectV3(\"hc\",\n    name=\"hc\",\n    description=\"create\",\n    resource_tenant_id=project.id,\n    hosting_id=hosting_id,\n    vlan=441,\n    bandwidth=10)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var hostingId = config.RequireObject<dynamic>(\"hostingId\");\n    var project = Opentelekomcloud.GetIdentityProjectV3.Invoke(new()\n    {\n        Name = \"project\",\n    });\n\n    var hc = new Opentelekomcloud.DcHostedConnectV3(\"hc\", new()\n    {\n        Name = \"hc\",\n        Description = \"create\",\n        ResourceTenantId = project.Apply(getIdentityProjectV3Result => getIdentityProjectV3Result.Id),\n        HostingId = hostingId,\n        Vlan = 441,\n        Bandwidth = 10,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\thostingId := cfg.RequireObject(\"hostingId\")\n\t\tproject, err := opentelekomcloud.LookupIdentityProjectV3(ctx, &opentelekomcloud.LookupIdentityProjectV3Args{\n\t\t\tName: pulumi.StringRef(\"project\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewDcHostedConnectV3(ctx, \"hc\", &opentelekomcloud.DcHostedConnectV3Args{\n\t\t\tName:             pulumi.String(\"hc\"),\n\t\t\tDescription:      pulumi.String(\"create\"),\n\t\t\tResourceTenantId: pulumi.String(project.Id),\n\t\t\tHostingId:        pulumi.Any(hostingId),\n\t\t\tVlan:             pulumi.Float64(441),\n\t\t\tBandwidth:        pulumi.Float64(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetIdentityProjectV3Args;\nimport com.pulumi.opentelekomcloud.DcHostedConnectV3;\nimport com.pulumi.opentelekomcloud.DcHostedConnectV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var hostingId = config.get(\"hostingId\");\n        final var project = OpentelekomcloudFunctions.getIdentityProjectV3(GetIdentityProjectV3Args.builder()\n            .name(\"project\")\n            .build());\n\n        var hc = new DcHostedConnectV3(\"hc\", DcHostedConnectV3Args.builder()\n            .name(\"hc\")\n            .description(\"create\")\n            .resourceTenantId(project.id())\n            .hostingId(hostingId)\n            .vlan(441.0)\n            .bandwidth(10.0)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  hostingId:\n    type: dynamic\nresources:\n  hc:\n    type: opentelekomcloud:DcHostedConnectV3\n    properties:\n      name: hc\n      description: create\n      resourceTenantId: ${project.id}\n      hostingId: ${hostingId}\n      vlan: 441\n      bandwidth: 10\nvariables:\n  project:\n    fn::invoke:\n      function: opentelekomcloud:getIdentityProjectV3\n      arguments:\n        name: project\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe hosted connect can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/dcHostedConnectV3:DcHostedConnectV3 hc 6d7bdb34-9254-46ad-b9e0-c7edf7abf8bc\n```\n\n","inputProperties":{"bandwidth":{"description":"The bandwidth size of the hosted connect in Mbit/s.\n","type":"number"},"dcHostedConnectV3Id":{"description":"The resource ID.\n","type":"string"},"description":{"description":"The description of the hosted connect.\n","type":"string"},"hostingId":{"description":"The ID of the operations connection on which the hosted connect is created.\n\nChanging this parameter will create a new resource.\n","type":"string"},"name":{"description":"The name of the hosted connect.\n","type":"string"},"peerLocation":{"description":"The location of the on-premises facility at the other end of the connection.\nSpecific to the street or data center name.\n","type":"string"},"resourceTenantId":{"description":"The project ID of the specified tenant for whom a hosted connection is to be created.\n\nChanging this parameter will create a new resource.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDcHostedConnectV3Timeouts:DcHostedConnectV3Timeouts"},"vlan":{"description":"The VLAN allocated to the hosted connect.\n\nChanging this parameter will create a new resource.\n","type":"number"}},"properties":{"bandwidth":{"description":"The bandwidth size of the hosted connect in Mbit/s.\n","type":"number"},"dcHostedConnectV3Id":{"description":"The resource ID.\n","type":"string"},"description":{"description":"The description of the hosted connect.\n","type":"string"},"hostingId":{"description":"The ID of the operations connection on which the hosted connect is created.\n\nChanging this parameter will create a new resource.\n","type":"string"},"name":{"description":"The name of the hosted connect.\n","type":"string"},"peerLocation":{"description":"The location of the on-premises facility at the other end of the connection.\nSpecific to the street or data center name.\n","type":"string"},"region":{"description":"Specifies the region in which to create the resource.\n","type":"string"},"resourceTenantId":{"description":"The project ID of the specified tenant for whom a hosted connection is to be created.\n\nChanging this parameter will create a new resource.\n","type":"string"},"status":{"description":"The status of the hosted connect.\nThe options are as follows:\n+ **BUILD**: The hosted connect has been created.\n+ **ACTIVE**: The associated virtual gateway is normal.\n+ **DOWN**: The port used by the hosted connect is down, indicating that there may be line faults.\n+ **ERROR**: The associated virtual gateway is abnormal.\n+ **PENDING_DELETE**: The hosted connect is being deleted.\n+ **PENDING_UPDATE**: The hosted connect is being updated.\n+ **PENDING_CREATE**: The hosted connect is being created.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDcHostedConnectV3Timeouts:DcHostedConnectV3Timeouts"},"vlan":{"description":"The VLAN allocated to the hosted connect.\n\nChanging this parameter will create a new resource.\n","type":"number"}},"required":["bandwidth","dcHostedConnectV3Id","hostingId","name","peerLocation","region","resourceTenantId","status","vlan"],"requiredInputs":["bandwidth","hostingId","resourceTenantId","vlan"],"stateInputs":{"description":"Input properties used for looking up and filtering DcHostedConnectV3 resources.\n","properties":{"bandwidth":{"description":"The bandwidth size of the hosted connect in Mbit/s.\n","type":"number"},"dcHostedConnectV3Id":{"description":"The resource ID.\n","type":"string"},"description":{"description":"The description of the hosted connect.\n","type":"string"},"hostingId":{"description":"The ID of the operations connection on which the hosted connect is created.\n\nChanging this parameter will create a new resource.\n","type":"string"},"name":{"description":"The name of the hosted connect.\n","type":"string"},"peerLocation":{"description":"The location of the on-premises facility at the other end of the connection.\nSpecific to the street or data center name.\n","type":"string"},"region":{"description":"Specifies the region in which to create the resource.\n","type":"string"},"resourceTenantId":{"description":"The project ID of the specified tenant for whom a hosted connection is to be created.\n\nChanging this parameter will create a new resource.\n","type":"string"},"status":{"description":"The status of the hosted connect.\nThe options are as follows:\n+ **BUILD**: The hosted connect has been created.\n+ **ACTIVE**: The associated virtual gateway is normal.\n+ **DOWN**: The port used by the hosted connect is down, indicating that there may be line faults.\n+ **ERROR**: The associated virtual gateway is abnormal.\n+ **PENDING_DELETE**: The hosted connect is being deleted.\n+ **PENDING_UPDATE**: The hosted connect is being updated.\n+ **PENDING_CREATE**: The hosted connect is being created.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDcHostedConnectV3Timeouts:DcHostedConnectV3Timeouts"},"vlan":{"description":"The VLAN allocated to the hosted connect.\n\nChanging this parameter will create a new resource.\n","type":"number"}},"type":"object"},"type":"object"},"opentelekomcloud:index/dcVirtualGatewayV2:DcVirtualGatewayV2":{"inputProperties":{"asn":{"type":"number"},"dcVirtualGatewayV2Id":{"type":"string"},"description":{"type":"string"},"deviceId":{"type":"string"},"localEpGroup":{"$ref":"#/types/opentelekomcloud:index%2FDcVirtualGatewayV2LocalEpGroup:DcVirtualGatewayV2LocalEpGroup"},"localEpGroupV6":{"$ref":"#/types/opentelekomcloud:index%2FDcVirtualGatewayV2LocalEpGroupV6:DcVirtualGatewayV2LocalEpGroupV6"},"name":{"type":"string"},"projectId":{"type":"string"},"redundantDeviceId":{"type":"string"},"vpcId":{"type":"string"}},"properties":{"asn":{"type":"number"},"dcVirtualGatewayV2Id":{"type":"string"},"description":{"type":"string"},"deviceId":{"type":"string"},"localEpGroup":{"$ref":"#/types/opentelekomcloud:index%2FDcVirtualGatewayV2LocalEpGroup:DcVirtualGatewayV2LocalEpGroup"},"localEpGroupId":{"type":"string"},"localEpGroupIpv6Id":{"type":"string"},"localEpGroupV6":{"$ref":"#/types/opentelekomcloud:index%2FDcVirtualGatewayV2LocalEpGroupV6:DcVirtualGatewayV2LocalEpGroupV6"},"name":{"type":"string"},"projectId":{"type":"string"},"redundantDeviceId":{"type":"string"},"status":{"type":"string"},"vpcId":{"type":"string"}},"required":["asn","dcVirtualGatewayV2Id","deviceId","localEpGroupId","localEpGroupIpv6Id","name","projectId","redundantDeviceId","status","vpcId"],"requiredInputs":["vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering DcVirtualGatewayV2 resources.\n","properties":{"asn":{"type":"number"},"dcVirtualGatewayV2Id":{"type":"string"},"description":{"type":"string"},"deviceId":{"type":"string"},"localEpGroup":{"$ref":"#/types/opentelekomcloud:index%2FDcVirtualGatewayV2LocalEpGroup:DcVirtualGatewayV2LocalEpGroup"},"localEpGroupId":{"type":"string"},"localEpGroupIpv6Id":{"type":"string"},"localEpGroupV6":{"$ref":"#/types/opentelekomcloud:index%2FDcVirtualGatewayV2LocalEpGroupV6:DcVirtualGatewayV2LocalEpGroupV6"},"name":{"type":"string"},"projectId":{"type":"string"},"redundantDeviceId":{"type":"string"},"status":{"type":"string"},"vpcId":{"type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/dcVirtualGatewayV3:DcVirtualGatewayV3":{"description":"Manages a virtual gateway v3 resource within OpenTelekomCloud.\n\n> **NOTE:** Direct Connect v3 API that are used in this resource officially supported only on SwissCloud now.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst vpcId = config.requireObject<any>(\"vpcId\");\nconst vpcCidr = config.requireObject<any>(\"vpcCidr\");\nconst gatewayName = config.requireObject<any>(\"gatewayName\");\nconst gw = new opentelekomcloud.DcVirtualGatewayV3(\"gw\", {\n    vpcId: vpcId,\n    name: gatewayName,\n    description: \"my gateway\",\n    localEpGroups: [vpcCidr],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nvpc_id = config.require_object(\"vpcId\")\nvpc_cidr = config.require_object(\"vpcCidr\")\ngateway_name = config.require_object(\"gatewayName\")\ngw = opentelekomcloud.DcVirtualGatewayV3(\"gw\",\n    vpc_id=vpc_id,\n    name=gateway_name,\n    description=\"my gateway\",\n    local_ep_groups=[vpc_cidr])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var vpcId = config.RequireObject<dynamic>(\"vpcId\");\n    var vpcCidr = config.RequireObject<dynamic>(\"vpcCidr\");\n    var gatewayName = config.RequireObject<dynamic>(\"gatewayName\");\n    var gw = new Opentelekomcloud.DcVirtualGatewayV3(\"gw\", new()\n    {\n        VpcId = vpcId,\n        Name = gatewayName,\n        Description = \"my gateway\",\n        LocalEpGroups = new[]\n        {\n            vpcCidr,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tvpcId := cfg.RequireObject(\"vpcId\")\n\t\tvpcCidr := cfg.RequireObject(\"vpcCidr\")\n\t\tgatewayName := cfg.RequireObject(\"gatewayName\")\n\t\t_, err := opentelekomcloud.NewDcVirtualGatewayV3(ctx, \"gw\", &opentelekomcloud.DcVirtualGatewayV3Args{\n\t\t\tVpcId:       pulumi.Any(vpcId),\n\t\t\tName:        pulumi.Any(gatewayName),\n\t\t\tDescription: pulumi.String(\"my gateway\"),\n\t\t\tLocalEpGroups: pulumi.StringArray{\n\t\t\t\tvpcCidr,\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.opentelekomcloud.DcVirtualGatewayV3;\nimport com.pulumi.opentelekomcloud.DcVirtualGatewayV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var vpcId = config.get(\"vpcId\");\n        final var vpcCidr = config.get(\"vpcCidr\");\n        final var gatewayName = config.get(\"gatewayName\");\n        var gw = new DcVirtualGatewayV3(\"gw\", DcVirtualGatewayV3Args.builder()\n            .vpcId(vpcId)\n            .name(gatewayName)\n            .description(\"my gateway\")\n            .localEpGroups(vpcCidr)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  vpcId:\n    type: dynamic\n  vpcCidr:\n    type: dynamic\n  gatewayName:\n    type: dynamic\nresources:\n  gw:\n    type: opentelekomcloud:DcVirtualGatewayV3\n    properties:\n      vpcId: ${vpcId}\n      name: ${gatewayName}\n      description: my gateway\n      localEpGroups:\n        - ${vpcCidr}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nVirtual gateways can be imported using their `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/dcVirtualGatewayV3:DcVirtualGatewayV3 gw e41748a0-aed9-463e-9817-5c6162265d10\n```\n\n","inputProperties":{"asn":{"description":"Specifies the local BGP ASN of the virtual gateway.\nThe valid value is range from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to `4,294,967,295`.\nChanging this will create a new resource.\n","type":"number"},"dcVirtualGatewayV3Id":{"description":"The ID of the virtual gateway.\n","type":"string"},"description":{"description":"Specifies the description of the virtual gateway.\nThe description contain a maximum of 128 characters and the angle brackets (< and >) are not allowed.\nChinese characters must be in `UTF-8` or `Unicode` format.\n","type":"string"},"localEpGroupIpv6s":{"description":"Specifies the IPv6 subnets of the associated VPC that can be accessed over the virtual gateway.\n","items":{"type":"string"},"type":"array"},"localEpGroups":{"description":"Specifies the list of IPv4 subnets from the virtual gateway to access cloud\nservices, which is usually the CIDR block of the VPC.\n","items":{"type":"string"},"type":"array"},"name":{"description":"Specifies the name of the virtual gateway.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, only chinese and english letters, digits, hyphens (-), underscores (_)\nand dots (.) are allowed.\nThe Chinese characters must be in `UTF-8` or `Unicode` format.\n","type":"string"},"vpcId":{"description":"Specifies the ID of the VPC connected to the virtual gateway.\nChanging this will create a new resource.\n","type":"string"}},"properties":{"asn":{"description":"Specifies the local BGP ASN of the virtual gateway.\nThe valid value is range from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to `4,294,967,295`.\nChanging this will create a new resource.\n","type":"number"},"dcVirtualGatewayV3Id":{"description":"The ID of the virtual gateway.\n","type":"string"},"description":{"description":"Specifies the description of the virtual gateway.\nThe description contain a maximum of 128 characters and the angle brackets (< and >) are not allowed.\nChinese characters must be in `UTF-8` or `Unicode` format.\n","type":"string"},"localEpGroupIpv6s":{"description":"Specifies the IPv6 subnets of the associated VPC that can be accessed over the virtual gateway.\n","items":{"type":"string"},"type":"array"},"localEpGroups":{"description":"Specifies the list of IPv4 subnets from the virtual gateway to access cloud\nservices, which is usually the CIDR block of the VPC.\n","items":{"type":"string"},"type":"array"},"name":{"description":"Specifies the name of the virtual gateway.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, only chinese and english letters, digits, hyphens (-), underscores (_)\nand dots (.) are allowed.\nThe Chinese characters must be in `UTF-8` or `Unicode` format.\n","type":"string"},"region":{"description":"The region where the virtual gateway is located.\n","type":"string"},"status":{"description":"The current status of the virtual gateway.\n","type":"string"},"vpcId":{"description":"Specifies the ID of the VPC connected to the virtual gateway.\nChanging this will create a new resource.\n","type":"string"}},"required":["asn","dcVirtualGatewayV3Id","localEpGroupIpv6s","localEpGroups","name","region","status","vpcId"],"requiredInputs":["localEpGroups","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering DcVirtualGatewayV3 resources.\n","properties":{"asn":{"description":"Specifies the local BGP ASN of the virtual gateway.\nThe valid value is range from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to `4,294,967,295`.\nChanging this will create a new resource.\n","type":"number"},"dcVirtualGatewayV3Id":{"description":"The ID of the virtual gateway.\n","type":"string"},"description":{"description":"Specifies the description of the virtual gateway.\nThe description contain a maximum of 128 characters and the angle brackets (< and >) are not allowed.\nChinese characters must be in `UTF-8` or `Unicode` format.\n","type":"string"},"localEpGroupIpv6s":{"description":"Specifies the IPv6 subnets of the associated VPC that can be accessed over the virtual gateway.\n","items":{"type":"string"},"type":"array"},"localEpGroups":{"description":"Specifies the list of IPv4 subnets from the virtual gateway to access cloud\nservices, which is usually the CIDR block of the VPC.\n","items":{"type":"string"},"type":"array"},"name":{"description":"Specifies the name of the virtual gateway.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, only chinese and english letters, digits, hyphens (-), underscores (_)\nand dots (.) are allowed.\nThe Chinese characters must be in `UTF-8` or `Unicode` format.\n","type":"string"},"region":{"description":"The region where the virtual gateway is located.\n","type":"string"},"status":{"description":"The current status of the virtual gateway.\n","type":"string"},"vpcId":{"description":"Specifies the ID of the VPC connected to the virtual gateway.\nChanging this will create a new resource.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/dcVirtualInterfacePeerV3:DcVirtualInterfacePeerV3":{"description":"Manages a virtual interface peer v3 resource within OpenTelekomCloud.\n\n> **NOTE:** Direct Connect v3 API that are used in this resource officially supported only on SwissCloud now.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst virtualInterfaceId = config.requireObject<any>(\"virtualInterfaceId\");\nconst vp = new opentelekomcloud.DcVirtualInterfacePeerV3(\"vp\", {\n    vifId: virtualInterfaceId,\n    name: \"my_peer\",\n    addressFamily: \"ipv6\",\n    routeMode: \"static\",\n    remoteEpGroups: [\"fd00:0:0:0:0:0:0:0/64\"],\n    description: \"ipv6 peer\",\n    localGatewayIp: \"FD00::1/64\",\n    remoteGatewayIp: \"FD00::2/64\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nvirtual_interface_id = config.require_object(\"virtualInterfaceId\")\nvp = opentelekomcloud.DcVirtualInterfacePeerV3(\"vp\",\n    vif_id=virtual_interface_id,\n    name=\"my_peer\",\n    address_family=\"ipv6\",\n    route_mode=\"static\",\n    remote_ep_groups=[\"fd00:0:0:0:0:0:0:0/64\"],\n    description=\"ipv6 peer\",\n    local_gateway_ip=\"FD00::1/64\",\n    remote_gateway_ip=\"FD00::2/64\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var virtualInterfaceId = config.RequireObject<dynamic>(\"virtualInterfaceId\");\n    var vp = new Opentelekomcloud.DcVirtualInterfacePeerV3(\"vp\", new()\n    {\n        VifId = virtualInterfaceId,\n        Name = \"my_peer\",\n        AddressFamily = \"ipv6\",\n        RouteMode = \"static\",\n        RemoteEpGroups = new[]\n        {\n            \"fd00:0:0:0:0:0:0:0/64\",\n        },\n        Description = \"ipv6 peer\",\n        LocalGatewayIp = \"FD00::1/64\",\n        RemoteGatewayIp = \"FD00::2/64\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tvirtualInterfaceId := cfg.RequireObject(\"virtualInterfaceId\")\n\t\t_, err := opentelekomcloud.NewDcVirtualInterfacePeerV3(ctx, \"vp\", &opentelekomcloud.DcVirtualInterfacePeerV3Args{\n\t\t\tVifId:         pulumi.Any(virtualInterfaceId),\n\t\t\tName:          pulumi.String(\"my_peer\"),\n\t\t\tAddressFamily: pulumi.String(\"ipv6\"),\n\t\t\tRouteMode:     pulumi.String(\"static\"),\n\t\t\tRemoteEpGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"fd00:0:0:0:0:0:0:0/64\"),\n\t\t\t},\n\t\t\tDescription:     pulumi.String(\"ipv6 peer\"),\n\t\t\tLocalGatewayIp:  pulumi.String(\"FD00::1/64\"),\n\t\t\tRemoteGatewayIp: pulumi.String(\"FD00::2/64\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.DcVirtualInterfacePeerV3;\nimport com.pulumi.opentelekomcloud.DcVirtualInterfacePeerV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var virtualInterfaceId = config.get(\"virtualInterfaceId\");\n        var vp = new DcVirtualInterfacePeerV3(\"vp\", DcVirtualInterfacePeerV3Args.builder()\n            .vifId(virtualInterfaceId)\n            .name(\"my_peer\")\n            .addressFamily(\"ipv6\")\n            .routeMode(\"static\")\n            .remoteEpGroups(\"fd00:0:0:0:0:0:0:0/64\")\n            .description(\"ipv6 peer\")\n            .localGatewayIp(\"FD00::1/64\")\n            .remoteGatewayIp(\"FD00::2/64\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  virtualInterfaceId:\n    type: dynamic\nresources:\n  vp:\n    type: opentelekomcloud:DcVirtualInterfacePeerV3\n    properties:\n      vifId: ${virtualInterfaceId}\n      name: my_peer\n      addressFamily: ipv6\n      routeMode: static\n      remoteEpGroups:\n        - fd00:0:0:0:0:0:0:0/64\n      description: ipv6 peer\n      localGatewayIp: FD00::1/64\n      remoteGatewayIp: FD00::2/64\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nVirtual interface peers can be imported using their `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/dcVirtualInterfacePeerV3:DcVirtualInterfacePeerV3 vi e41748a0-aed9-463e-9817-5c6162265d11\n```\n\n","inputProperties":{"addressFamily":{"description":"The address family type of the virtual interface, which can be `IPv4` or `IPv6`.\n","type":"string"},"bgpAsn":{"description":"The ASN of the BGP peer.\n","type":"number"},"bgpMd5":{"description":"The MD5 password of the BGP peer.\n","type":"string"},"dcVirtualInterfacePeerV3Id":{"description":"The VIF peer resource ID.\n","type":"string"},"description":{"description":"Provides supplementary information about the virtual interface peer.\n","type":"string"},"localGatewayIp":{"description":"The address of the virtual interface peer used on the cloud.\n","type":"string"},"name":{"description":"Specifies the name of the virtual interface peer.\n","type":"string"},"remoteEpGroups":{"description":"The remote subnet list, which records the CIDR blocks used in the on-premises data center.\n","items":{"type":"string"},"type":"array"},"remoteGatewayIp":{"description":"The address of the virtual interface peer used in the on-premises data center.\n","type":"string"},"routeMode":{"description":"The routing mode, which can be <span pulumi-lang-nodejs=\"`static`\" pulumi-lang-dotnet=\"`Static`\" pulumi-lang-go=\"`static`\" pulumi-lang-python=\"`static`\" pulumi-lang-yaml=\"`static`\" pulumi-lang-java=\"`static`\">`static`</span> or <span pulumi-lang-nodejs=\"`bgp`\" pulumi-lang-dotnet=\"`Bgp`\" pulumi-lang-go=\"`bgp`\" pulumi-lang-python=\"`bgp`\" pulumi-lang-yaml=\"`bgp`\" pulumi-lang-java=\"`bgp`\">`bgp`</span>.\n","type":"string"},"vifId":{"description":"Specifies the ID of the virtual interface corresponding to the virtual interface peer.\n","type":"string"}},"properties":{"addressFamily":{"description":"The address family type of the virtual interface, which can be `IPv4` or `IPv6`.\n","type":"string"},"bgpAsn":{"description":"The ASN of the BGP peer.\n","type":"number"},"bgpMd5":{"description":"The MD5 password of the BGP peer.\n","type":"string"},"bgpRouteLimit":{"description":"The BGP route configuration.\n","type":"number"},"bgpStatus":{"description":"The BGP protocol status of the virtual interface peer.\n","type":"string"},"dcVirtualInterfacePeerV3Id":{"description":"The VIF peer resource ID.\n","type":"string"},"description":{"description":"Provides supplementary information about the virtual interface peer.\n","type":"string"},"deviceId":{"description":"The ID of the device that the virtual interface peer belongs to.\n","type":"string"},"enableBfd":{"description":"BFD status.\n","type":"boolean"},"enableNqa":{"description":"NQA status.\n","type":"boolean"},"localGatewayIp":{"description":"The address of the virtual interface peer used on the cloud.\n","type":"string"},"name":{"description":"Specifies the name of the virtual interface peer.\n","type":"string"},"projectId":{"description":"The project where the virtual interface is located.\n","type":"string"},"receiveRouteNum":{"description":"The number of received BGP routes if <span pulumi-lang-nodejs=\"`bgp`\" pulumi-lang-dotnet=\"`Bgp`\" pulumi-lang-go=\"`bgp`\" pulumi-lang-python=\"`bgp`\" pulumi-lang-yaml=\"`bgp`\" pulumi-lang-java=\"`bgp`\">`bgp`</span> routing is used.\n","type":"number"},"region":{"description":"The region where the virtual interface is located.\n","type":"string"},"remoteEpGroups":{"description":"The remote subnet list, which records the CIDR blocks used in the on-premises data center.\n","items":{"type":"string"},"type":"array"},"remoteGatewayIp":{"description":"The address of the virtual interface peer used in the on-premises data center.\n","type":"string"},"routeMode":{"description":"The routing mode, which can be <span pulumi-lang-nodejs=\"`static`\" pulumi-lang-dotnet=\"`Static`\" pulumi-lang-go=\"`static`\" pulumi-lang-python=\"`static`\" pulumi-lang-yaml=\"`static`\" pulumi-lang-java=\"`static`\">`static`</span> or <span pulumi-lang-nodejs=\"`bgp`\" pulumi-lang-dotnet=\"`Bgp`\" pulumi-lang-go=\"`bgp`\" pulumi-lang-python=\"`bgp`\" pulumi-lang-yaml=\"`bgp`\" pulumi-lang-java=\"`bgp`\">`bgp`</span>.\n","type":"string"},"serviceEpGroups":{"description":"The list of public network addresses that can be accessed by the on-premises data center.\n","items":{"type":"string"},"type":"array"},"status":{"description":"The status of the virtual interface peer.\n","type":"string"},"vifId":{"description":"Specifies the ID of the virtual interface corresponding to the virtual interface peer.\n","type":"string"}},"required":["addressFamily","bgpRouteLimit","bgpStatus","dcVirtualInterfacePeerV3Id","deviceId","enableBfd","enableNqa","localGatewayIp","name","projectId","receiveRouteNum","region","remoteEpGroups","remoteGatewayIp","serviceEpGroups","status","vifId"],"requiredInputs":["addressFamily","localGatewayIp","remoteEpGroups","remoteGatewayIp","vifId"],"stateInputs":{"description":"Input properties used for looking up and filtering DcVirtualInterfacePeerV3 resources.\n","properties":{"addressFamily":{"description":"The address family type of the virtual interface, which can be `IPv4` or `IPv6`.\n","type":"string"},"bgpAsn":{"description":"The ASN of the BGP peer.\n","type":"number"},"bgpMd5":{"description":"The MD5 password of the BGP peer.\n","type":"string"},"bgpRouteLimit":{"description":"The BGP route configuration.\n","type":"number"},"bgpStatus":{"description":"The BGP protocol status of the virtual interface peer.\n","type":"string"},"dcVirtualInterfacePeerV3Id":{"description":"The VIF peer resource ID.\n","type":"string"},"description":{"description":"Provides supplementary information about the virtual interface peer.\n","type":"string"},"deviceId":{"description":"The ID of the device that the virtual interface peer belongs to.\n","type":"string"},"enableBfd":{"description":"BFD status.\n","type":"boolean"},"enableNqa":{"description":"NQA status.\n","type":"boolean"},"localGatewayIp":{"description":"The address of the virtual interface peer used on the cloud.\n","type":"string"},"name":{"description":"Specifies the name of the virtual interface peer.\n","type":"string"},"projectId":{"description":"The project where the virtual interface is located.\n","type":"string"},"receiveRouteNum":{"description":"The number of received BGP routes if <span pulumi-lang-nodejs=\"`bgp`\" pulumi-lang-dotnet=\"`Bgp`\" pulumi-lang-go=\"`bgp`\" pulumi-lang-python=\"`bgp`\" pulumi-lang-yaml=\"`bgp`\" pulumi-lang-java=\"`bgp`\">`bgp`</span> routing is used.\n","type":"number"},"region":{"description":"The region where the virtual interface is located.\n","type":"string"},"remoteEpGroups":{"description":"The remote subnet list, which records the CIDR blocks used in the on-premises data center.\n","items":{"type":"string"},"type":"array"},"remoteGatewayIp":{"description":"The address of the virtual interface peer used in the on-premises data center.\n","type":"string"},"routeMode":{"description":"The routing mode, which can be <span pulumi-lang-nodejs=\"`static`\" pulumi-lang-dotnet=\"`Static`\" pulumi-lang-go=\"`static`\" pulumi-lang-python=\"`static`\" pulumi-lang-yaml=\"`static`\" pulumi-lang-java=\"`static`\">`static`</span> or <span pulumi-lang-nodejs=\"`bgp`\" pulumi-lang-dotnet=\"`Bgp`\" pulumi-lang-go=\"`bgp`\" pulumi-lang-python=\"`bgp`\" pulumi-lang-yaml=\"`bgp`\" pulumi-lang-java=\"`bgp`\">`bgp`</span>.\n","type":"string"},"serviceEpGroups":{"description":"The list of public network addresses that can be accessed by the on-premises data center.\n","items":{"type":"string"},"type":"array"},"status":{"description":"The status of the virtual interface peer.\n","type":"string"},"vifId":{"description":"Specifies the ID of the virtual interface corresponding to the virtual interface peer.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/dcVirtualInterfaceV2:DcVirtualInterfaceV2":{"inputProperties":{"asn":{"type":"number"},"bandwidth":{"type":"number"},"bgpMd5":{"type":"string"},"dcVirtualInterfaceV2Id":{"type":"string"},"description":{"type":"string"},"directConnectId":{"type":"string"},"enableBfd":{"type":"boolean"},"enableNqa":{"type":"boolean"},"lagId":{"type":"string"},"localGatewayV4Ip":{"type":"string"},"name":{"type":"string"},"projectId":{"type":"string"},"remoteEpGroup":{"$ref":"#/types/opentelekomcloud:index%2FDcVirtualInterfaceV2RemoteEpGroup:DcVirtualInterfaceV2RemoteEpGroup"},"remoteGatewayV4Ip":{"type":"string"},"routeMode":{"type":"string"},"serviceType":{"type":"string"},"type":{"type":"string"},"virtualGatewayId":{"type":"string"},"vlan":{"type":"number"}},"properties":{"asn":{"type":"number"},"bandwidth":{"type":"number"},"bgpMd5":{"type":"string"},"createdAt":{"type":"string"},"dcVirtualInterfaceV2Id":{"type":"string"},"description":{"type":"string"},"directConnectId":{"type":"string"},"enableBfd":{"type":"boolean"},"enableNqa":{"type":"boolean"},"lagId":{"type":"string"},"localGatewayV4Ip":{"type":"string"},"name":{"type":"string"},"projectId":{"type":"string"},"remoteEpGroup":{"$ref":"#/types/opentelekomcloud:index%2FDcVirtualInterfaceV2RemoteEpGroup:DcVirtualInterfaceV2RemoteEpGroup"},"remoteEpGroupId":{"type":"string"},"remoteGatewayV4Ip":{"type":"string"},"routeMode":{"type":"string"},"serviceType":{"type":"string"},"status":{"type":"string"},"type":{"type":"string"},"virtualGatewayId":{"type":"string"},"vlan":{"type":"number"}},"required":["asn","bandwidth","bgpMd5","createdAt","dcVirtualInterfaceV2Id","directConnectId","enableBfd","enableNqa","lagId","name","remoteEpGroup","remoteEpGroupId","routeMode","serviceType","status","type","virtualGatewayId","vlan"],"requiredInputs":["bandwidth","directConnectId","remoteEpGroup","routeMode","serviceType","type","virtualGatewayId","vlan"],"stateInputs":{"description":"Input properties used for looking up and filtering DcVirtualInterfaceV2 resources.\n","properties":{"asn":{"type":"number"},"bandwidth":{"type":"number"},"bgpMd5":{"type":"string"},"createdAt":{"type":"string"},"dcVirtualInterfaceV2Id":{"type":"string"},"description":{"type":"string"},"directConnectId":{"type":"string"},"enableBfd":{"type":"boolean"},"enableNqa":{"type":"boolean"},"lagId":{"type":"string"},"localGatewayV4Ip":{"type":"string"},"name":{"type":"string"},"projectId":{"type":"string"},"remoteEpGroup":{"$ref":"#/types/opentelekomcloud:index%2FDcVirtualInterfaceV2RemoteEpGroup:DcVirtualInterfaceV2RemoteEpGroup"},"remoteEpGroupId":{"type":"string"},"remoteGatewayV4Ip":{"type":"string"},"routeMode":{"type":"string"},"serviceType":{"type":"string"},"status":{"type":"string"},"type":{"type":"string"},"virtualGatewayId":{"type":"string"},"vlan":{"type":"number"}},"type":"object"},"type":"object"},"opentelekomcloud:index/dcVirtualInterfaceV3:DcVirtualInterfaceV3":{"description":"Manages a virtual interface v3 resource within OpenTelekomCloud.\n\n> **NOTE:** Direct Connect v3 API that are used in this resource officially supported only on SwissCloud now.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst directConnectId = config.requireObject<any>(\"directConnectId\");\nconst gatewayId = config.requireObject<any>(\"gatewayId\");\nconst interfaceName = config.requireObject<any>(\"interfaceName\");\nconst vi = new opentelekomcloud.DcVirtualInterfaceV3(\"vi\", {\n    directConnectId: directConnectId,\n    vgwId: gatewayId,\n    name: interfaceName,\n    type: \"private\",\n    routeMode: \"static\",\n    vlan: 522,\n    bandwidth: 5,\n    remoteEpGroups: [\"1.1.1.0/30\"],\n    addressFamily: \"ipv4\",\n    localGatewayV4Ip: \"1.1.1.1/30\",\n    remoteGatewayV4Ip: \"1.1.1.2/30\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ndirect_connect_id = config.require_object(\"directConnectId\")\ngateway_id = config.require_object(\"gatewayId\")\ninterface_name = config.require_object(\"interfaceName\")\nvi = opentelekomcloud.DcVirtualInterfaceV3(\"vi\",\n    direct_connect_id=direct_connect_id,\n    vgw_id=gateway_id,\n    name=interface_name,\n    type=\"private\",\n    route_mode=\"static\",\n    vlan=522,\n    bandwidth=5,\n    remote_ep_groups=[\"1.1.1.0/30\"],\n    address_family=\"ipv4\",\n    local_gateway_v4_ip=\"1.1.1.1/30\",\n    remote_gateway_v4_ip=\"1.1.1.2/30\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var directConnectId = config.RequireObject<dynamic>(\"directConnectId\");\n    var gatewayId = config.RequireObject<dynamic>(\"gatewayId\");\n    var interfaceName = config.RequireObject<dynamic>(\"interfaceName\");\n    var vi = new Opentelekomcloud.DcVirtualInterfaceV3(\"vi\", new()\n    {\n        DirectConnectId = directConnectId,\n        VgwId = gatewayId,\n        Name = interfaceName,\n        Type = \"private\",\n        RouteMode = \"static\",\n        Vlan = 522,\n        Bandwidth = 5,\n        RemoteEpGroups = new[]\n        {\n            \"1.1.1.0/30\",\n        },\n        AddressFamily = \"ipv4\",\n        LocalGatewayV4Ip = \"1.1.1.1/30\",\n        RemoteGatewayV4Ip = \"1.1.1.2/30\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tdirectConnectId := cfg.RequireObject(\"directConnectId\")\n\t\tgatewayId := cfg.RequireObject(\"gatewayId\")\n\t\tinterfaceName := cfg.RequireObject(\"interfaceName\")\n\t\t_, err := opentelekomcloud.NewDcVirtualInterfaceV3(ctx, \"vi\", &opentelekomcloud.DcVirtualInterfaceV3Args{\n\t\t\tDirectConnectId: pulumi.Any(directConnectId),\n\t\t\tVgwId:           pulumi.Any(gatewayId),\n\t\t\tName:            pulumi.Any(interfaceName),\n\t\t\tType:            pulumi.String(\"private\"),\n\t\t\tRouteMode:       pulumi.String(\"static\"),\n\t\t\tVlan:            pulumi.Float64(522),\n\t\t\tBandwidth:       pulumi.Float64(5),\n\t\t\tRemoteEpGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1.1.1.0/30\"),\n\t\t\t},\n\t\t\tAddressFamily:     pulumi.String(\"ipv4\"),\n\t\t\tLocalGatewayV4Ip:  pulumi.String(\"1.1.1.1/30\"),\n\t\t\tRemoteGatewayV4Ip: pulumi.String(\"1.1.1.2/30\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.DcVirtualInterfaceV3;\nimport com.pulumi.opentelekomcloud.DcVirtualInterfaceV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var directConnectId = config.get(\"directConnectId\");\n        final var gatewayId = config.get(\"gatewayId\");\n        final var interfaceName = config.get(\"interfaceName\");\n        var vi = new DcVirtualInterfaceV3(\"vi\", DcVirtualInterfaceV3Args.builder()\n            .directConnectId(directConnectId)\n            .vgwId(gatewayId)\n            .name(interfaceName)\n            .type(\"private\")\n            .routeMode(\"static\")\n            .vlan(522.0)\n            .bandwidth(5.0)\n            .remoteEpGroups(\"1.1.1.0/30\")\n            .addressFamily(\"ipv4\")\n            .localGatewayV4Ip(\"1.1.1.1/30\")\n            .remoteGatewayV4Ip(\"1.1.1.2/30\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  directConnectId:\n    type: dynamic\n  gatewayId:\n    type: dynamic\n  interfaceName:\n    type: dynamic\nresources:\n  vi:\n    type: opentelekomcloud:DcVirtualInterfaceV3\n    properties:\n      directConnectId: ${directConnectId}\n      vgwId: ${gatewayId}\n      name: ${interfaceName}\n      type: private\n      routeMode: static\n      vlan: 522\n      bandwidth: 5\n      remoteEpGroups:\n        - 1.1.1.0/30\n      addressFamily: ipv4\n      localGatewayV4Ip: 1.1.1.1/30\n      remoteGatewayV4Ip: 1.1.1.2/30\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nVirtual interfaces can be imported using their `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/dcVirtualInterfaceV3:DcVirtualInterfaceV3 vi e41748a0-aed9-463e-9817-5c6162265d10\n```\n\n","inputProperties":{"addressFamily":{"description":"Specifies the service type of the virtual interface.\nThe valid values are <span pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\">`ipv4`</span> and <span pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\">`ipv6`</span>. Defaults to <span pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\">`ipv4`</span>.\nChanging this will create a new resource.\n","type":"string"},"asn":{"description":"Specifies the local BGP ASN of the virtual interface.\nThe valid value is range from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to `4,294,967,295`, except `64,512`.\nChanging this will create a new resource.\n","type":"number"},"bandwidth":{"description":"Specifies the bandwidth of the virtual interface. The unit is Mbit/s.\nThe size range depends on the direct connection.\n","type":"number"},"bgpMd5":{"description":"Specifies the (MD5) password for the local BGP.\nChanging this will create a new resource.\n","type":"string"},"dcVirtualInterfaceV3Id":{"description":"The VIF peer resource ID.\n","type":"string"},"description":{"description":"Specifies the description of the virtual interface.\nThe description contain a maximum of <span pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\">`128`</span> characters and the angle brackets (`<` and `>`) are not allowed.\nChinese characters must be in `UTF-8` or `Unicode` format.\n","type":"string"},"directConnectId":{"description":"Specifies the ID of the direct connection associated with the\nvirtual interface.\nChanging this will create a new resource.\n","type":"string"},"enableBfd":{"description":"Specifies whether to enable the Bidirectional Forwarding Detection (BFD) function.\nDefaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. (This is a reserved parameter and is not supported currently.)\n","type":"boolean"},"enableNqa":{"description":"Specifies whether to enable the Network Quality Analysis (NQA) function.\nDefaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. (This is a reserved parameter and is not supported currently.)\n\n> The values of parameter <span pulumi-lang-nodejs=\"`enableBfd`\" pulumi-lang-dotnet=\"`EnableBfd`\" pulumi-lang-go=\"`enableBfd`\" pulumi-lang-python=\"`enable_bfd`\" pulumi-lang-yaml=\"`enableBfd`\" pulumi-lang-java=\"`enableBfd`\">`enable_bfd`</span> and <span pulumi-lang-nodejs=\"`enableNqa`\" pulumi-lang-dotnet=\"`EnableNqa`\" pulumi-lang-go=\"`enableNqa`\" pulumi-lang-python=\"`enable_nqa`\" pulumi-lang-yaml=\"`enableNqa`\" pulumi-lang-java=\"`enableNqa`\">`enable_nqa`</span> cannot be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> at the same time.\n","type":"boolean"},"lagId":{"description":"Specifies the ID of the link aggregation group (LAG) associated with the\nvirtual interface.\nChanging this will create a new resource.\n","type":"string"},"localGatewayV4Ip":{"description":"Specifies the IPv4 address of the virtual interface in cloud\nside. This parameter is mandatory if <span pulumi-lang-nodejs=\"`addressFamily`\" pulumi-lang-dotnet=\"`AddressFamily`\" pulumi-lang-go=\"`addressFamily`\" pulumi-lang-python=\"`address_family`\" pulumi-lang-yaml=\"`addressFamily`\" pulumi-lang-java=\"`addressFamily`\">`address_family`</span> is set to <span pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\">`ipv4`</span>.\nChanging this will create a new resource.\n","type":"string"},"localGatewayV6Ip":{"description":"Specifies the IPv6 address of the virtual interface in cloud\nside. This parameter is mandatory if <span pulumi-lang-nodejs=\"`addressFamily`\" pulumi-lang-dotnet=\"`AddressFamily`\" pulumi-lang-go=\"`addressFamily`\" pulumi-lang-python=\"`address_family`\" pulumi-lang-yaml=\"`addressFamily`\" pulumi-lang-java=\"`addressFamily`\">`address_family`</span> is set to <span pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\">`ipv6`</span>.\nChanging this will create a new resource.\n","type":"string"},"name":{"description":"Specifies the name of the virtual interface.\n","type":"string"},"remoteEpGroups":{"description":"Specifies the CIDR list of remote subnets.\nA CIDR that contains CIDRs of local subnet (corresponding to the parameter <span pulumi-lang-nodejs=\"`localGatewayV4Ip`\" pulumi-lang-dotnet=\"`LocalGatewayV4Ip`\" pulumi-lang-go=\"`localGatewayV4Ip`\" pulumi-lang-python=\"`local_gateway_v4_ip`\" pulumi-lang-yaml=\"`localGatewayV4Ip`\" pulumi-lang-java=\"`localGatewayV4Ip`\">`local_gateway_v4_ip`</span> or\n<span pulumi-lang-nodejs=\"`localGatewayV6Ip`\" pulumi-lang-dotnet=\"`LocalGatewayV6Ip`\" pulumi-lang-go=\"`localGatewayV6Ip`\" pulumi-lang-python=\"`local_gateway_v6_ip`\" pulumi-lang-yaml=\"`localGatewayV6Ip`\" pulumi-lang-java=\"`localGatewayV6Ip`\">`local_gateway_v6_ip`</span>) and remote subnet (corresponding to the parameter <span pulumi-lang-nodejs=\"`remoteGatewayV4Ip`\" pulumi-lang-dotnet=\"`RemoteGatewayV4Ip`\" pulumi-lang-go=\"`remoteGatewayV4Ip`\" pulumi-lang-python=\"`remote_gateway_v4_ip`\" pulumi-lang-yaml=\"`remoteGatewayV4Ip`\" pulumi-lang-java=\"`remoteGatewayV4Ip`\">`remote_gateway_v4_ip`</span> or\n<span pulumi-lang-nodejs=\"`remoteGatewayV6Ip`\" pulumi-lang-dotnet=\"`RemoteGatewayV6Ip`\" pulumi-lang-go=\"`remoteGatewayV6Ip`\" pulumi-lang-python=\"`remote_gateway_v6_ip`\" pulumi-lang-yaml=\"`remoteGatewayV6Ip`\" pulumi-lang-java=\"`remoteGatewayV6Ip`\">`remote_gateway_v6_ip`</span>) must exist in the list.\n","items":{"type":"string"},"type":"array"},"remoteGatewayV4Ip":{"description":"Specifies the IPv4 address of the virtual interface in client\nside. This parameter is mandatory if <span pulumi-lang-nodejs=\"`addressFamily`\" pulumi-lang-dotnet=\"`AddressFamily`\" pulumi-lang-go=\"`addressFamily`\" pulumi-lang-python=\"`address_family`\" pulumi-lang-yaml=\"`addressFamily`\" pulumi-lang-java=\"`addressFamily`\">`address_family`</span> is set to <span pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\">`ipv4`</span>.\nChanging this will create a new resource.\n","type":"string"},"remoteGatewayV6Ip":{"description":"Specifies the IPv6 address of the virtual interface in client\nside. This parameter is mandatory if <span pulumi-lang-nodejs=\"`addressFamily`\" pulumi-lang-dotnet=\"`AddressFamily`\" pulumi-lang-go=\"`addressFamily`\" pulumi-lang-python=\"`address_family`\" pulumi-lang-yaml=\"`addressFamily`\" pulumi-lang-java=\"`addressFamily`\">`address_family`</span> is set to <span pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\">`ipv6`</span>.\nChanging this will create a new resource.\n\n> The CIDRs of <span pulumi-lang-nodejs=\"`localGatewayV4Ip`\" pulumi-lang-dotnet=\"`LocalGatewayV4Ip`\" pulumi-lang-go=\"`localGatewayV4Ip`\" pulumi-lang-python=\"`local_gateway_v4_ip`\" pulumi-lang-yaml=\"`localGatewayV4Ip`\" pulumi-lang-java=\"`localGatewayV4Ip`\">`local_gateway_v4_ip`</span> and <span pulumi-lang-nodejs=\"`remoteGatewayV4Ip`\" pulumi-lang-dotnet=\"`RemoteGatewayV4Ip`\" pulumi-lang-go=\"`remoteGatewayV4Ip`\" pulumi-lang-python=\"`remote_gateway_v4_ip`\" pulumi-lang-yaml=\"`remoteGatewayV4Ip`\" pulumi-lang-java=\"`remoteGatewayV4Ip`\">`remote_gateway_v4_ip`</span> (or <span pulumi-lang-nodejs=\"`localGatewayV6Ip`\" pulumi-lang-dotnet=\"`LocalGatewayV6Ip`\" pulumi-lang-go=\"`localGatewayV6Ip`\" pulumi-lang-python=\"`local_gateway_v6_ip`\" pulumi-lang-yaml=\"`localGatewayV6Ip`\" pulumi-lang-java=\"`localGatewayV6Ip`\">`local_gateway_v6_ip`</span> and <span pulumi-lang-nodejs=\"`remoteGatewayV6Ip`\" pulumi-lang-dotnet=\"`RemoteGatewayV6Ip`\" pulumi-lang-go=\"`remoteGatewayV6Ip`\" pulumi-lang-python=\"`remote_gateway_v6_ip`\" pulumi-lang-yaml=\"`remoteGatewayV6Ip`\" pulumi-lang-java=\"`remoteGatewayV6Ip`\">`remote_gateway_v6_ip`</span>)\nmust be in the same subnet.\n","type":"string"},"resourceTenantId":{"description":"Specifies the project ID of another tenant in the same region\nwhich is used to create virtual interface across tenant. After the across tenant virtual interface is successfully\ncreated, the target tenant needs to accept the virtual interface request for the virtual interface to take effect.\nChanging this will create a new resource.\n\n> 1. When <span pulumi-lang-nodejs=\"`resourceTenantId`\" pulumi-lang-dotnet=\"`ResourceTenantId`\" pulumi-lang-go=\"`resourceTenantId`\" pulumi-lang-python=\"`resource_tenant_id`\" pulumi-lang-yaml=\"`resourceTenantId`\" pulumi-lang-java=\"`resourceTenantId`\">`resource_tenant_id`</span> is specified, <span pulumi-lang-nodejs=\"`vgwId`\" pulumi-lang-dotnet=\"`VgwId`\" pulumi-lang-go=\"`vgwId`\" pulumi-lang-python=\"`vgw_id`\" pulumi-lang-yaml=\"`vgwId`\" pulumi-lang-java=\"`vgwId`\">`vgw_id`</span> must be the target tenant virtual gateway id.\n<br/>2. When <span pulumi-lang-nodejs=\"`resourceTenantId`\" pulumi-lang-dotnet=\"`ResourceTenantId`\" pulumi-lang-go=\"`resourceTenantId`\" pulumi-lang-python=\"`resource_tenant_id`\" pulumi-lang-yaml=\"`resourceTenantId`\" pulumi-lang-java=\"`resourceTenantId`\">`resource_tenant_id`</span> is specified, the tags can only be configured after the target tenant accepts the\nvirtual interface request and the virtual interface takes effect.\n","type":"string"},"routeMode":{"description":"Specifies the route mode of the virtual interface.\nThe valid values are <span pulumi-lang-nodejs=\"`static`\" pulumi-lang-dotnet=\"`Static`\" pulumi-lang-go=\"`static`\" pulumi-lang-python=\"`static`\" pulumi-lang-yaml=\"`static`\" pulumi-lang-java=\"`static`\">`static`</span> and <span pulumi-lang-nodejs=\"`bgp`\" pulumi-lang-dotnet=\"`Bgp`\" pulumi-lang-go=\"`bgp`\" pulumi-lang-python=\"`bgp`\" pulumi-lang-yaml=\"`bgp`\" pulumi-lang-java=\"`bgp`\">`bgp`</span>.\nChanging this will create a new resource.\n","type":"string"},"serviceEpGroups":{"description":"Specifies the subnets that access Internet services through a connection.\n","items":{"type":"string"},"type":"array"},"type":{"description":"Specifies the type of the virtual interface.\nThe valid value is <span pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\">`private`</span>.\nChanging this will create a new resource.\n","type":"string"},"vgwId":{"description":"Specifies the ID of the virtual gateway to which the virtual interface is\nconnected.\nChanging this will create a new resource.\n","type":"string"},"vlan":{"description":"Specifies the customer VLAN to be connected.\nThe valid value is range from <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> to `3,999`.\nChanging this will create a new resource.\n","type":"number"}},"properties":{"addressFamily":{"description":"Specifies the service type of the virtual interface.\nThe valid values are <span pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\">`ipv4`</span> and <span pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\">`ipv6`</span>. Defaults to <span pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\">`ipv4`</span>.\nChanging this will create a new resource.\n","type":"string"},"asn":{"description":"Specifies the local BGP ASN of the virtual interface.\nThe valid value is range from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to `4,294,967,295`, except `64,512`.\nChanging this will create a new resource.\n","type":"number"},"bandwidth":{"description":"Specifies the bandwidth of the virtual interface. The unit is Mbit/s.\nThe size range depends on the direct connection.\n","type":"number"},"bgpMd5":{"description":"Specifies the (MD5) password for the local BGP.\nChanging this will create a new resource.\n","type":"string"},"createdAt":{"description":"The creation time of the virtual interface\n","type":"string"},"dcVirtualInterfaceV3Id":{"description":"The VIF peer resource ID.\n","type":"string"},"description":{"description":"Specifies the description of the virtual interface.\nThe description contain a maximum of <span pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\">`128`</span> characters and the angle brackets (`<` and `>`) are not allowed.\nChinese characters must be in `UTF-8` or `Unicode` format.\n","type":"string"},"deviceId":{"description":"The ID of the device that the virtual interface peer belongs to.\n","type":"string"},"directConnectId":{"description":"Specifies the ID of the direct connection associated with the\nvirtual interface.\nChanging this will create a new resource.\n","type":"string"},"enableBfd":{"description":"Specifies whether to enable the Bidirectional Forwarding Detection (BFD) function.\nDefaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. (This is a reserved parameter and is not supported currently.)\n","type":"boolean"},"enableNqa":{"description":"Specifies whether to enable the Network Quality Analysis (NQA) function.\nDefaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. (This is a reserved parameter and is not supported currently.)\n\n> The values of parameter <span pulumi-lang-nodejs=\"`enableBfd`\" pulumi-lang-dotnet=\"`EnableBfd`\" pulumi-lang-go=\"`enableBfd`\" pulumi-lang-python=\"`enable_bfd`\" pulumi-lang-yaml=\"`enableBfd`\" pulumi-lang-java=\"`enableBfd`\">`enable_bfd`</span> and <span pulumi-lang-nodejs=\"`enableNqa`\" pulumi-lang-dotnet=\"`EnableNqa`\" pulumi-lang-go=\"`enableNqa`\" pulumi-lang-python=\"`enable_nqa`\" pulumi-lang-yaml=\"`enableNqa`\" pulumi-lang-java=\"`enableNqa`\">`enable_nqa`</span> cannot be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> at the same time.\n","type":"boolean"},"lagId":{"description":"Specifies the ID of the link aggregation group (LAG) associated with the\nvirtual interface.\nChanging this will create a new resource.\n","type":"string"},"localGatewayV4Ip":{"description":"Specifies the IPv4 address of the virtual interface in cloud\nside. This parameter is mandatory if <span pulumi-lang-nodejs=\"`addressFamily`\" pulumi-lang-dotnet=\"`AddressFamily`\" pulumi-lang-go=\"`addressFamily`\" pulumi-lang-python=\"`address_family`\" pulumi-lang-yaml=\"`addressFamily`\" pulumi-lang-java=\"`addressFamily`\">`address_family`</span> is set to <span pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\">`ipv4`</span>.\nChanging this will create a new resource.\n","type":"string"},"localGatewayV6Ip":{"description":"Specifies the IPv6 address of the virtual interface in cloud\nside. This parameter is mandatory if <span pulumi-lang-nodejs=\"`addressFamily`\" pulumi-lang-dotnet=\"`AddressFamily`\" pulumi-lang-go=\"`addressFamily`\" pulumi-lang-python=\"`address_family`\" pulumi-lang-yaml=\"`addressFamily`\" pulumi-lang-java=\"`addressFamily`\">`address_family`</span> is set to <span pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\">`ipv6`</span>.\nChanging this will create a new resource.\n","type":"string"},"name":{"description":"Specifies the name of the virtual interface.\n","type":"string"},"region":{"description":"The region where the virtual interface is located.\n","type":"string"},"remoteEpGroups":{"description":"Specifies the CIDR list of remote subnets.\nA CIDR that contains CIDRs of local subnet (corresponding to the parameter <span pulumi-lang-nodejs=\"`localGatewayV4Ip`\" pulumi-lang-dotnet=\"`LocalGatewayV4Ip`\" pulumi-lang-go=\"`localGatewayV4Ip`\" pulumi-lang-python=\"`local_gateway_v4_ip`\" pulumi-lang-yaml=\"`localGatewayV4Ip`\" pulumi-lang-java=\"`localGatewayV4Ip`\">`local_gateway_v4_ip`</span> or\n<span pulumi-lang-nodejs=\"`localGatewayV6Ip`\" pulumi-lang-dotnet=\"`LocalGatewayV6Ip`\" pulumi-lang-go=\"`localGatewayV6Ip`\" pulumi-lang-python=\"`local_gateway_v6_ip`\" pulumi-lang-yaml=\"`localGatewayV6Ip`\" pulumi-lang-java=\"`localGatewayV6Ip`\">`local_gateway_v6_ip`</span>) and remote subnet (corresponding to the parameter <span pulumi-lang-nodejs=\"`remoteGatewayV4Ip`\" pulumi-lang-dotnet=\"`RemoteGatewayV4Ip`\" pulumi-lang-go=\"`remoteGatewayV4Ip`\" pulumi-lang-python=\"`remote_gateway_v4_ip`\" pulumi-lang-yaml=\"`remoteGatewayV4Ip`\" pulumi-lang-java=\"`remoteGatewayV4Ip`\">`remote_gateway_v4_ip`</span> or\n<span pulumi-lang-nodejs=\"`remoteGatewayV6Ip`\" pulumi-lang-dotnet=\"`RemoteGatewayV6Ip`\" pulumi-lang-go=\"`remoteGatewayV6Ip`\" pulumi-lang-python=\"`remote_gateway_v6_ip`\" pulumi-lang-yaml=\"`remoteGatewayV6Ip`\" pulumi-lang-java=\"`remoteGatewayV6Ip`\">`remote_gateway_v6_ip`</span>) must exist in the list.\n","items":{"type":"string"},"type":"array"},"remoteGatewayV4Ip":{"description":"Specifies the IPv4 address of the virtual interface in client\nside. This parameter is mandatory if <span pulumi-lang-nodejs=\"`addressFamily`\" pulumi-lang-dotnet=\"`AddressFamily`\" pulumi-lang-go=\"`addressFamily`\" pulumi-lang-python=\"`address_family`\" pulumi-lang-yaml=\"`addressFamily`\" pulumi-lang-java=\"`addressFamily`\">`address_family`</span> is set to <span pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\">`ipv4`</span>.\nChanging this will create a new resource.\n","type":"string"},"remoteGatewayV6Ip":{"description":"Specifies the IPv6 address of the virtual interface in client\nside. This parameter is mandatory if <span pulumi-lang-nodejs=\"`addressFamily`\" pulumi-lang-dotnet=\"`AddressFamily`\" pulumi-lang-go=\"`addressFamily`\" pulumi-lang-python=\"`address_family`\" pulumi-lang-yaml=\"`addressFamily`\" pulumi-lang-java=\"`addressFamily`\">`address_family`</span> is set to <span pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\">`ipv6`</span>.\nChanging this will create a new resource.\n\n> The CIDRs of <span pulumi-lang-nodejs=\"`localGatewayV4Ip`\" pulumi-lang-dotnet=\"`LocalGatewayV4Ip`\" pulumi-lang-go=\"`localGatewayV4Ip`\" pulumi-lang-python=\"`local_gateway_v4_ip`\" pulumi-lang-yaml=\"`localGatewayV4Ip`\" pulumi-lang-java=\"`localGatewayV4Ip`\">`local_gateway_v4_ip`</span> and <span pulumi-lang-nodejs=\"`remoteGatewayV4Ip`\" pulumi-lang-dotnet=\"`RemoteGatewayV4Ip`\" pulumi-lang-go=\"`remoteGatewayV4Ip`\" pulumi-lang-python=\"`remote_gateway_v4_ip`\" pulumi-lang-yaml=\"`remoteGatewayV4Ip`\" pulumi-lang-java=\"`remoteGatewayV4Ip`\">`remote_gateway_v4_ip`</span> (or <span pulumi-lang-nodejs=\"`localGatewayV6Ip`\" pulumi-lang-dotnet=\"`LocalGatewayV6Ip`\" pulumi-lang-go=\"`localGatewayV6Ip`\" pulumi-lang-python=\"`local_gateway_v6_ip`\" pulumi-lang-yaml=\"`localGatewayV6Ip`\" pulumi-lang-java=\"`localGatewayV6Ip`\">`local_gateway_v6_ip`</span> and <span pulumi-lang-nodejs=\"`remoteGatewayV6Ip`\" pulumi-lang-dotnet=\"`RemoteGatewayV6Ip`\" pulumi-lang-go=\"`remoteGatewayV6Ip`\" pulumi-lang-python=\"`remote_gateway_v6_ip`\" pulumi-lang-yaml=\"`remoteGatewayV6Ip`\" pulumi-lang-java=\"`remoteGatewayV6Ip`\">`remote_gateway_v6_ip`</span>)\nmust be in the same subnet.\n","type":"string"},"resourceTenantId":{"description":"Specifies the project ID of another tenant in the same region\nwhich is used to create virtual interface across tenant. After the across tenant virtual interface is successfully\ncreated, the target tenant needs to accept the virtual interface request for the virtual interface to take effect.\nChanging this will create a new resource.\n\n> 1. When <span pulumi-lang-nodejs=\"`resourceTenantId`\" pulumi-lang-dotnet=\"`ResourceTenantId`\" pulumi-lang-go=\"`resourceTenantId`\" pulumi-lang-python=\"`resource_tenant_id`\" pulumi-lang-yaml=\"`resourceTenantId`\" pulumi-lang-java=\"`resourceTenantId`\">`resource_tenant_id`</span> is specified, <span pulumi-lang-nodejs=\"`vgwId`\" pulumi-lang-dotnet=\"`VgwId`\" pulumi-lang-go=\"`vgwId`\" pulumi-lang-python=\"`vgw_id`\" pulumi-lang-yaml=\"`vgwId`\" pulumi-lang-java=\"`vgwId`\">`vgw_id`</span> must be the target tenant virtual gateway id.\n<br/>2. When <span pulumi-lang-nodejs=\"`resourceTenantId`\" pulumi-lang-dotnet=\"`ResourceTenantId`\" pulumi-lang-go=\"`resourceTenantId`\" pulumi-lang-python=\"`resource_tenant_id`\" pulumi-lang-yaml=\"`resourceTenantId`\" pulumi-lang-java=\"`resourceTenantId`\">`resource_tenant_id`</span> is specified, the tags can only be configured after the target tenant accepts the\nvirtual interface request and the virtual interface takes effect.\n","type":"string"},"routeMode":{"description":"Specifies the route mode of the virtual interface.\nThe valid values are <span pulumi-lang-nodejs=\"`static`\" pulumi-lang-dotnet=\"`Static`\" pulumi-lang-go=\"`static`\" pulumi-lang-python=\"`static`\" pulumi-lang-yaml=\"`static`\" pulumi-lang-java=\"`static`\">`static`</span> and <span pulumi-lang-nodejs=\"`bgp`\" pulumi-lang-dotnet=\"`Bgp`\" pulumi-lang-go=\"`bgp`\" pulumi-lang-python=\"`bgp`\" pulumi-lang-yaml=\"`bgp`\" pulumi-lang-java=\"`bgp`\">`bgp`</span>.\nChanging this will create a new resource.\n","type":"string"},"serviceEpGroups":{"description":"Specifies the subnets that access Internet services through a connection.\n","items":{"type":"string"},"type":"array"},"status":{"description":"The status of the virtual interface peer.\n","type":"string"},"type":{"description":"Specifies the type of the virtual interface.\nThe valid value is <span pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\">`private`</span>.\nChanging this will create a new resource.\n","type":"string"},"updatedAt":{"type":"string"},"vgwId":{"description":"Specifies the ID of the virtual gateway to which the virtual interface is\nconnected.\nChanging this will create a new resource.\n","type":"string"},"vifPeers":{"description":"The peer information of the virtual interface.\nThe<span pulumi-lang-nodejs=\" vifPeers \" pulumi-lang-dotnet=\" VifPeers \" pulumi-lang-go=\" vifPeers \" pulumi-lang-python=\" vif_peers \" pulumi-lang-yaml=\" vifPeers \" pulumi-lang-java=\" vifPeers \"> vif_peers </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDcVirtualInterfaceV3VifPeer:DcVirtualInterfaceV3VifPeer"},"type":"array"},"vlan":{"description":"Specifies the customer VLAN to be connected.\nThe valid value is range from <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> to `3,999`.\nChanging this will create a new resource.\n","type":"number"}},"required":["asn","bandwidth","bgpMd5","createdAt","dcVirtualInterfaceV3Id","deviceId","directConnectId","enableBfd","enableNqa","lagId","name","region","remoteEpGroups","routeMode","serviceEpGroups","status","type","updatedAt","vgwId","vifPeers","vlan"],"requiredInputs":["bandwidth","directConnectId","remoteEpGroups","routeMode","type","vgwId","vlan"],"stateInputs":{"description":"Input properties used for looking up and filtering DcVirtualInterfaceV3 resources.\n","properties":{"addressFamily":{"description":"Specifies the service type of the virtual interface.\nThe valid values are <span pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\">`ipv4`</span> and <span pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\">`ipv6`</span>. Defaults to <span pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\">`ipv4`</span>.\nChanging this will create a new resource.\n","type":"string"},"asn":{"description":"Specifies the local BGP ASN of the virtual interface.\nThe valid value is range from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to `4,294,967,295`, except `64,512`.\nChanging this will create a new resource.\n","type":"number"},"bandwidth":{"description":"Specifies the bandwidth of the virtual interface. The unit is Mbit/s.\nThe size range depends on the direct connection.\n","type":"number"},"bgpMd5":{"description":"Specifies the (MD5) password for the local BGP.\nChanging this will create a new resource.\n","type":"string"},"createdAt":{"description":"The creation time of the virtual interface\n","type":"string"},"dcVirtualInterfaceV3Id":{"description":"The VIF peer resource ID.\n","type":"string"},"description":{"description":"Specifies the description of the virtual interface.\nThe description contain a maximum of <span pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\">`128`</span> characters and the angle brackets (`<` and `>`) are not allowed.\nChinese characters must be in `UTF-8` or `Unicode` format.\n","type":"string"},"deviceId":{"description":"The ID of the device that the virtual interface peer belongs to.\n","type":"string"},"directConnectId":{"description":"Specifies the ID of the direct connection associated with the\nvirtual interface.\nChanging this will create a new resource.\n","type":"string"},"enableBfd":{"description":"Specifies whether to enable the Bidirectional Forwarding Detection (BFD) function.\nDefaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. (This is a reserved parameter and is not supported currently.)\n","type":"boolean"},"enableNqa":{"description":"Specifies whether to enable the Network Quality Analysis (NQA) function.\nDefaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. (This is a reserved parameter and is not supported currently.)\n\n> The values of parameter <span pulumi-lang-nodejs=\"`enableBfd`\" pulumi-lang-dotnet=\"`EnableBfd`\" pulumi-lang-go=\"`enableBfd`\" pulumi-lang-python=\"`enable_bfd`\" pulumi-lang-yaml=\"`enableBfd`\" pulumi-lang-java=\"`enableBfd`\">`enable_bfd`</span> and <span pulumi-lang-nodejs=\"`enableNqa`\" pulumi-lang-dotnet=\"`EnableNqa`\" pulumi-lang-go=\"`enableNqa`\" pulumi-lang-python=\"`enable_nqa`\" pulumi-lang-yaml=\"`enableNqa`\" pulumi-lang-java=\"`enableNqa`\">`enable_nqa`</span> cannot be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> at the same time.\n","type":"boolean"},"lagId":{"description":"Specifies the ID of the link aggregation group (LAG) associated with the\nvirtual interface.\nChanging this will create a new resource.\n","type":"string"},"localGatewayV4Ip":{"description":"Specifies the IPv4 address of the virtual interface in cloud\nside. This parameter is mandatory if <span pulumi-lang-nodejs=\"`addressFamily`\" pulumi-lang-dotnet=\"`AddressFamily`\" pulumi-lang-go=\"`addressFamily`\" pulumi-lang-python=\"`address_family`\" pulumi-lang-yaml=\"`addressFamily`\" pulumi-lang-java=\"`addressFamily`\">`address_family`</span> is set to <span pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\">`ipv4`</span>.\nChanging this will create a new resource.\n","type":"string"},"localGatewayV6Ip":{"description":"Specifies the IPv6 address of the virtual interface in cloud\nside. This parameter is mandatory if <span pulumi-lang-nodejs=\"`addressFamily`\" pulumi-lang-dotnet=\"`AddressFamily`\" pulumi-lang-go=\"`addressFamily`\" pulumi-lang-python=\"`address_family`\" pulumi-lang-yaml=\"`addressFamily`\" pulumi-lang-java=\"`addressFamily`\">`address_family`</span> is set to <span pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\">`ipv6`</span>.\nChanging this will create a new resource.\n","type":"string"},"name":{"description":"Specifies the name of the virtual interface.\n","type":"string"},"region":{"description":"The region where the virtual interface is located.\n","type":"string"},"remoteEpGroups":{"description":"Specifies the CIDR list of remote subnets.\nA CIDR that contains CIDRs of local subnet (corresponding to the parameter <span pulumi-lang-nodejs=\"`localGatewayV4Ip`\" pulumi-lang-dotnet=\"`LocalGatewayV4Ip`\" pulumi-lang-go=\"`localGatewayV4Ip`\" pulumi-lang-python=\"`local_gateway_v4_ip`\" pulumi-lang-yaml=\"`localGatewayV4Ip`\" pulumi-lang-java=\"`localGatewayV4Ip`\">`local_gateway_v4_ip`</span> or\n<span pulumi-lang-nodejs=\"`localGatewayV6Ip`\" pulumi-lang-dotnet=\"`LocalGatewayV6Ip`\" pulumi-lang-go=\"`localGatewayV6Ip`\" pulumi-lang-python=\"`local_gateway_v6_ip`\" pulumi-lang-yaml=\"`localGatewayV6Ip`\" pulumi-lang-java=\"`localGatewayV6Ip`\">`local_gateway_v6_ip`</span>) and remote subnet (corresponding to the parameter <span pulumi-lang-nodejs=\"`remoteGatewayV4Ip`\" pulumi-lang-dotnet=\"`RemoteGatewayV4Ip`\" pulumi-lang-go=\"`remoteGatewayV4Ip`\" pulumi-lang-python=\"`remote_gateway_v4_ip`\" pulumi-lang-yaml=\"`remoteGatewayV4Ip`\" pulumi-lang-java=\"`remoteGatewayV4Ip`\">`remote_gateway_v4_ip`</span> or\n<span pulumi-lang-nodejs=\"`remoteGatewayV6Ip`\" pulumi-lang-dotnet=\"`RemoteGatewayV6Ip`\" pulumi-lang-go=\"`remoteGatewayV6Ip`\" pulumi-lang-python=\"`remote_gateway_v6_ip`\" pulumi-lang-yaml=\"`remoteGatewayV6Ip`\" pulumi-lang-java=\"`remoteGatewayV6Ip`\">`remote_gateway_v6_ip`</span>) must exist in the list.\n","items":{"type":"string"},"type":"array"},"remoteGatewayV4Ip":{"description":"Specifies the IPv4 address of the virtual interface in client\nside. This parameter is mandatory if <span pulumi-lang-nodejs=\"`addressFamily`\" pulumi-lang-dotnet=\"`AddressFamily`\" pulumi-lang-go=\"`addressFamily`\" pulumi-lang-python=\"`address_family`\" pulumi-lang-yaml=\"`addressFamily`\" pulumi-lang-java=\"`addressFamily`\">`address_family`</span> is set to <span pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\">`ipv4`</span>.\nChanging this will create a new resource.\n","type":"string"},"remoteGatewayV6Ip":{"description":"Specifies the IPv6 address of the virtual interface in client\nside. This parameter is mandatory if <span pulumi-lang-nodejs=\"`addressFamily`\" pulumi-lang-dotnet=\"`AddressFamily`\" pulumi-lang-go=\"`addressFamily`\" pulumi-lang-python=\"`address_family`\" pulumi-lang-yaml=\"`addressFamily`\" pulumi-lang-java=\"`addressFamily`\">`address_family`</span> is set to <span pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\">`ipv6`</span>.\nChanging this will create a new resource.\n\n> The CIDRs of <span pulumi-lang-nodejs=\"`localGatewayV4Ip`\" pulumi-lang-dotnet=\"`LocalGatewayV4Ip`\" pulumi-lang-go=\"`localGatewayV4Ip`\" pulumi-lang-python=\"`local_gateway_v4_ip`\" pulumi-lang-yaml=\"`localGatewayV4Ip`\" pulumi-lang-java=\"`localGatewayV4Ip`\">`local_gateway_v4_ip`</span> and <span pulumi-lang-nodejs=\"`remoteGatewayV4Ip`\" pulumi-lang-dotnet=\"`RemoteGatewayV4Ip`\" pulumi-lang-go=\"`remoteGatewayV4Ip`\" pulumi-lang-python=\"`remote_gateway_v4_ip`\" pulumi-lang-yaml=\"`remoteGatewayV4Ip`\" pulumi-lang-java=\"`remoteGatewayV4Ip`\">`remote_gateway_v4_ip`</span> (or <span pulumi-lang-nodejs=\"`localGatewayV6Ip`\" pulumi-lang-dotnet=\"`LocalGatewayV6Ip`\" pulumi-lang-go=\"`localGatewayV6Ip`\" pulumi-lang-python=\"`local_gateway_v6_ip`\" pulumi-lang-yaml=\"`localGatewayV6Ip`\" pulumi-lang-java=\"`localGatewayV6Ip`\">`local_gateway_v6_ip`</span> and <span pulumi-lang-nodejs=\"`remoteGatewayV6Ip`\" pulumi-lang-dotnet=\"`RemoteGatewayV6Ip`\" pulumi-lang-go=\"`remoteGatewayV6Ip`\" pulumi-lang-python=\"`remote_gateway_v6_ip`\" pulumi-lang-yaml=\"`remoteGatewayV6Ip`\" pulumi-lang-java=\"`remoteGatewayV6Ip`\">`remote_gateway_v6_ip`</span>)\nmust be in the same subnet.\n","type":"string"},"resourceTenantId":{"description":"Specifies the project ID of another tenant in the same region\nwhich is used to create virtual interface across tenant. After the across tenant virtual interface is successfully\ncreated, the target tenant needs to accept the virtual interface request for the virtual interface to take effect.\nChanging this will create a new resource.\n\n> 1. When <span pulumi-lang-nodejs=\"`resourceTenantId`\" pulumi-lang-dotnet=\"`ResourceTenantId`\" pulumi-lang-go=\"`resourceTenantId`\" pulumi-lang-python=\"`resource_tenant_id`\" pulumi-lang-yaml=\"`resourceTenantId`\" pulumi-lang-java=\"`resourceTenantId`\">`resource_tenant_id`</span> is specified, <span pulumi-lang-nodejs=\"`vgwId`\" pulumi-lang-dotnet=\"`VgwId`\" pulumi-lang-go=\"`vgwId`\" pulumi-lang-python=\"`vgw_id`\" pulumi-lang-yaml=\"`vgwId`\" pulumi-lang-java=\"`vgwId`\">`vgw_id`</span> must be the target tenant virtual gateway id.\n<br/>2. When <span pulumi-lang-nodejs=\"`resourceTenantId`\" pulumi-lang-dotnet=\"`ResourceTenantId`\" pulumi-lang-go=\"`resourceTenantId`\" pulumi-lang-python=\"`resource_tenant_id`\" pulumi-lang-yaml=\"`resourceTenantId`\" pulumi-lang-java=\"`resourceTenantId`\">`resource_tenant_id`</span> is specified, the tags can only be configured after the target tenant accepts the\nvirtual interface request and the virtual interface takes effect.\n","type":"string"},"routeMode":{"description":"Specifies the route mode of the virtual interface.\nThe valid values are <span pulumi-lang-nodejs=\"`static`\" pulumi-lang-dotnet=\"`Static`\" pulumi-lang-go=\"`static`\" pulumi-lang-python=\"`static`\" pulumi-lang-yaml=\"`static`\" pulumi-lang-java=\"`static`\">`static`</span> and <span pulumi-lang-nodejs=\"`bgp`\" pulumi-lang-dotnet=\"`Bgp`\" pulumi-lang-go=\"`bgp`\" pulumi-lang-python=\"`bgp`\" pulumi-lang-yaml=\"`bgp`\" pulumi-lang-java=\"`bgp`\">`bgp`</span>.\nChanging this will create a new resource.\n","type":"string"},"serviceEpGroups":{"description":"Specifies the subnets that access Internet services through a connection.\n","items":{"type":"string"},"type":"array"},"status":{"description":"The status of the virtual interface peer.\n","type":"string"},"type":{"description":"Specifies the type of the virtual interface.\nThe valid value is <span pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\">`private`</span>.\nChanging this will create a new resource.\n","type":"string"},"updatedAt":{"type":"string"},"vgwId":{"description":"Specifies the ID of the virtual gateway to which the virtual interface is\nconnected.\nChanging this will create a new resource.\n","type":"string"},"vifPeers":{"description":"The peer information of the virtual interface.\nThe<span pulumi-lang-nodejs=\" vifPeers \" pulumi-lang-dotnet=\" VifPeers \" pulumi-lang-go=\" vifPeers \" pulumi-lang-python=\" vif_peers \" pulumi-lang-yaml=\" vifPeers \" pulumi-lang-java=\" vifPeers \"> vif_peers </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDcVirtualInterfaceV3VifPeer:DcVirtualInterfaceV3VifPeer"},"type":"array"},"vlan":{"description":"Specifies the customer VLAN to be connected.\nThe valid value is range from <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> to `3,999`.\nChanging this will create a new resource.\n","type":"number"}},"type":"object"},"type":"object"},"opentelekomcloud:index/dcsInstanceV1:DcsInstanceV1":{"description":"Up-to-date reference of API arguments for DCS instance you can get at\n[documentation portal](https://docs.otc.t-systems.com/distributed-cache-service/api-ref/lifecycle_management_apis)\n\nManages a DCSv1 instance in the OpenTelekomCloud DCS Service.\n\n## Example Usage\n\n### Engine version 5.0 (please pay attention of proper selection of the spec_code):\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst az1 = opentelekomcloud.getDcsAzV1({\n    name: \"eu-de-01\",\n});\nconst product1 = opentelekomcloud.getDcsProductV1({\n    specCode: \"redis.single.xu1.tiny.128\",\n});\nconst instance1 = new opentelekomcloud.DcsInstanceV1(\"instance_1\", {\n    name: \"test_dcs_instance_5.0\",\n    engineVersion: \"5.0\",\n    password: \"0TCTestP@ssw0rd\",\n    engine: \"Redis\",\n    capacity: 0.125,\n    vpcId: sharedSubnet.vpcId,\n    subnetId: sharedSubnet.networkId,\n    availableZones: [az1.then(az1 => az1.id)],\n    productId: product1.then(product1 => product1.id),\n    enableWhitelist: true,\n    whitelists: [\n        {\n            groupName: \"test-group-name\",\n            ipLists: [\n                \"10.10.10.1\",\n                \"10.10.10.2\",\n            ],\n        },\n        {\n            groupName: \"test-group-name-2\",\n            ipLists: [\n                \"10.10.10.11\",\n                \"10.10.10.3\",\n                \"10.10.10.4\",\n            ],\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\naz1 = opentelekomcloud.get_dcs_az_v1(name=\"eu-de-01\")\nproduct1 = opentelekomcloud.get_dcs_product_v1(spec_code=\"redis.single.xu1.tiny.128\")\ninstance1 = opentelekomcloud.DcsInstanceV1(\"instance_1\",\n    name=\"test_dcs_instance_5.0\",\n    engine_version=\"5.0\",\n    password=\"0TCTestP@ssw0rd\",\n    engine=\"Redis\",\n    capacity=0.125,\n    vpc_id=shared_subnet[\"vpcId\"],\n    subnet_id=shared_subnet[\"networkId\"],\n    available_zones=[az1.id],\n    product_id=product1.id,\n    enable_whitelist=True,\n    whitelists=[\n        {\n            \"group_name\": \"test-group-name\",\n            \"ip_lists\": [\n                \"10.10.10.1\",\n                \"10.10.10.2\",\n            ],\n        },\n        {\n            \"group_name\": \"test-group-name-2\",\n            \"ip_lists\": [\n                \"10.10.10.11\",\n                \"10.10.10.3\",\n                \"10.10.10.4\",\n            ],\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var az1 = Opentelekomcloud.GetDcsAzV1.Invoke(new()\n    {\n        Name = \"eu-de-01\",\n    });\n\n    var product1 = Opentelekomcloud.GetDcsProductV1.Invoke(new()\n    {\n        SpecCode = \"redis.single.xu1.tiny.128\",\n    });\n\n    var instance1 = new Opentelekomcloud.DcsInstanceV1(\"instance_1\", new()\n    {\n        Name = \"test_dcs_instance_5.0\",\n        EngineVersion = \"5.0\",\n        Password = \"0TCTestP@ssw0rd\",\n        Engine = \"Redis\",\n        Capacity = 0.125,\n        VpcId = sharedSubnet.VpcId,\n        SubnetId = sharedSubnet.NetworkId,\n        AvailableZones = new[]\n        {\n            az1.Apply(getDcsAzV1Result => getDcsAzV1Result.Id),\n        },\n        ProductId = product1.Apply(getDcsProductV1Result => getDcsProductV1Result.Id),\n        EnableWhitelist = true,\n        Whitelists = new[]\n        {\n            new Opentelekomcloud.Inputs.DcsInstanceV1WhitelistArgs\n            {\n                GroupName = \"test-group-name\",\n                IpLists = new[]\n                {\n                    \"10.10.10.1\",\n                    \"10.10.10.2\",\n                },\n            },\n            new Opentelekomcloud.Inputs.DcsInstanceV1WhitelistArgs\n            {\n                GroupName = \"test-group-name-2\",\n                IpLists = new[]\n                {\n                    \"10.10.10.11\",\n                    \"10.10.10.3\",\n                    \"10.10.10.4\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\taz1, err := opentelekomcloud.GetDcsAzV1(ctx, &opentelekomcloud.GetDcsAzV1Args{\n\t\t\tName: pulumi.StringRef(\"eu-de-01\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproduct1, err := opentelekomcloud.GetDcsProductV1(ctx, &opentelekomcloud.GetDcsProductV1Args{\n\t\t\tSpecCode: pulumi.StringRef(\"redis.single.xu1.tiny.128\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewDcsInstanceV1(ctx, \"instance_1\", &opentelekomcloud.DcsInstanceV1Args{\n\t\t\tName:          pulumi.String(\"test_dcs_instance_5.0\"),\n\t\t\tEngineVersion: pulumi.String(\"5.0\"),\n\t\t\tPassword:      pulumi.String(\"0TCTestP@ssw0rd\"),\n\t\t\tEngine:        pulumi.String(\"Redis\"),\n\t\t\tCapacity:      pulumi.Float64(0.125),\n\t\t\tVpcId:         pulumi.Any(sharedSubnet.VpcId),\n\t\t\tSubnetId:      pulumi.Any(sharedSubnet.NetworkId),\n\t\t\tAvailableZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(az1.Id),\n\t\t\t},\n\t\t\tProductId:       pulumi.String(product1.Id),\n\t\t\tEnableWhitelist: pulumi.Bool(true),\n\t\t\tWhitelists: opentelekomcloud.DcsInstanceV1WhitelistArray{\n\t\t\t\t&opentelekomcloud.DcsInstanceV1WhitelistArgs{\n\t\t\t\t\tGroupName: pulumi.String(\"test-group-name\"),\n\t\t\t\t\tIpLists: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"10.10.10.1\"),\n\t\t\t\t\t\tpulumi.String(\"10.10.10.2\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.DcsInstanceV1WhitelistArgs{\n\t\t\t\t\tGroupName: pulumi.String(\"test-group-name-2\"),\n\t\t\t\t\tIpLists: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"10.10.10.11\"),\n\t\t\t\t\t\tpulumi.String(\"10.10.10.3\"),\n\t\t\t\t\t\tpulumi.String(\"10.10.10.4\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDcsAzV1Args;\nimport com.pulumi.opentelekomcloud.inputs.GetDcsProductV1Args;\nimport com.pulumi.opentelekomcloud.DcsInstanceV1;\nimport com.pulumi.opentelekomcloud.DcsInstanceV1Args;\nimport com.pulumi.opentelekomcloud.inputs.DcsInstanceV1WhitelistArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var az1 = OpentelekomcloudFunctions.getDcsAzV1(GetDcsAzV1Args.builder()\n            .name(\"eu-de-01\")\n            .build());\n\n        final var product1 = OpentelekomcloudFunctions.getDcsProductV1(GetDcsProductV1Args.builder()\n            .specCode(\"redis.single.xu1.tiny.128\")\n            .build());\n\n        var instance1 = new DcsInstanceV1(\"instance1\", DcsInstanceV1Args.builder()\n            .name(\"test_dcs_instance_5.0\")\n            .engineVersion(\"5.0\")\n            .password(\"0TCTestP@ssw0rd\")\n            .engine(\"Redis\")\n            .capacity(0.125)\n            .vpcId(sharedSubnet.vpcId())\n            .subnetId(sharedSubnet.networkId())\n            .availableZones(az1.id())\n            .productId(product1.id())\n            .enableWhitelist(true)\n            .whitelists(            \n                DcsInstanceV1WhitelistArgs.builder()\n                    .groupName(\"test-group-name\")\n                    .ipLists(                    \n                        \"10.10.10.1\",\n                        \"10.10.10.2\")\n                    .build(),\n                DcsInstanceV1WhitelistArgs.builder()\n                    .groupName(\"test-group-name-2\")\n                    .ipLists(                    \n                        \"10.10.10.11\",\n                        \"10.10.10.3\",\n                        \"10.10.10.4\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  instance1:\n    type: opentelekomcloud:DcsInstanceV1\n    name: instance_1\n    properties:\n      name: test_dcs_instance_5.0\n      engineVersion: '5.0'\n      password: 0TCTestP@ssw0rd\n      engine: Redis\n      capacity: 0.125\n      vpcId: ${sharedSubnet.vpcId}\n      subnetId: ${sharedSubnet.networkId}\n      availableZones:\n        - ${az1.id}\n      productId: ${product1.id}\n      enableWhitelist: true\n      whitelists:\n        - groupName: test-group-name\n          ipLists:\n            - 10.10.10.1\n            - 10.10.10.2\n        - groupName: test-group-name-2\n          ipLists:\n            - 10.10.10.11\n            - 10.10.10.3\n            - 10.10.10.4\nvariables:\n  az1:\n    fn::invoke:\n      function: opentelekomcloud:getDcsAzV1\n      arguments:\n        name: eu-de-01\n  product1:\n    fn::invoke:\n      function: opentelekomcloud:getDcsProductV1\n      arguments:\n        specCode: redis.single.xu1.tiny.128\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nDCS instance can be imported using  `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/dcsInstanceV1:DcsInstanceV1 instance instance_id\n```\n\n","inputProperties":{"availableZones":{"description":"IDs of the AZs where cache nodes reside. For details\non how to query AZs, see [Querying AZ Information](https://docs.otc.t-systems.com/en-us/api/dcs/dcs-api-0312039.html)\nor use<span pulumi-lang-nodejs=\" opentelekomcloud.getDcsAzV1 \" pulumi-lang-dotnet=\" opentelekomcloud.getDcsAzV1 \" pulumi-lang-go=\" getDcsAzV1 \" pulumi-lang-python=\" get_dcs_az_v1 \" pulumi-lang-yaml=\" opentelekomcloud.getDcsAzV1 \" pulumi-lang-java=\" opentelekomcloud.getDcsAzV1 \"> opentelekomcloud.getDcsAzV1 </span>data source:\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst az1 = opentelekomcloud.getDcsAzV1({\n    name: \"eu-de-01\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\naz1 = opentelekomcloud.get_dcs_az_v1(name=\"eu-de-01\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var az1 = Opentelekomcloud.GetDcsAzV1.Invoke(new()\n    {\n        Name = \"eu-de-01\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetDcsAzV1(ctx, &opentelekomcloud.GetDcsAzV1Args{\n\t\t\tName: pulumi.StringRef(\"eu-de-01\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDcsAzV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var az1 = OpentelekomcloudFunctions.getDcsAzV1(GetDcsAzV1Args.builder()\n            .name(\"eu-de-01\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  az1:\n    fn::invoke:\n      function: opentelekomcloud:getDcsAzV1\n      arguments:\n        name: eu-de-01\n```\n<!--End PulumiCodeChooser -->\nChanging this creates a new instance.\n","items":{"type":"string"},"type":"array"},"backupAts":{"deprecationMessage":"Deprecated","description":"See Argument Reference above.\n","items":{"type":"number"},"type":"array"},"backupPolicy":{"$ref":"#/types/opentelekomcloud:index%2FDcsInstanceV1BackupPolicy:DcsInstanceV1BackupPolicy","description":"Describes the backup configuration to be used with the instance.\n"},"backupType":{"deprecationMessage":"Deprecated","description":"See Argument Reference above.\n","type":"string"},"beginAt":{"deprecationMessage":"Deprecated","description":"See Argument Reference above.\n","type":"string"},"capacity":{"description":"Indicates the Cache capacity. Unit: GB.\n+ **Redis4.0, Redis5.0 and Redis6.0**: Stand-alone and active/standby type instance values: `0.125`, `0.25`,\n`0.5`, <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>, <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span>, <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span>, <span pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\">`8`</span>, <span pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\">`16`</span>, <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> and <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>.\nCluster instance specifications support <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span>,<span pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\">`8`</span>,<span pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\">`16`</span>, <span pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\">`24`</span>, <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span>, <span pulumi-lang-nodejs=\"`48`\" pulumi-lang-dotnet=\"`48`\" pulumi-lang-go=\"`48`\" pulumi-lang-python=\"`48`\" pulumi-lang-yaml=\"`48`\" pulumi-lang-java=\"`48`\">`48`</span>, <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, <span pulumi-lang-nodejs=\"`96`\" pulumi-lang-dotnet=\"`96`\" pulumi-lang-go=\"`96`\" pulumi-lang-python=\"`96`\" pulumi-lang-yaml=\"`96`\" pulumi-lang-java=\"`96`\">`96`</span>, <span pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\">`128`</span>, <span pulumi-lang-nodejs=\"`192`\" pulumi-lang-dotnet=\"`192`\" pulumi-lang-go=\"`192`\" pulumi-lang-python=\"`192`\" pulumi-lang-yaml=\"`192`\" pulumi-lang-java=\"`192`\">`192`</span>, <span pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\">`256`</span>,\n<span pulumi-lang-nodejs=\"`384`\" pulumi-lang-dotnet=\"`384`\" pulumi-lang-go=\"`384`\" pulumi-lang-python=\"`384`\" pulumi-lang-yaml=\"`384`\" pulumi-lang-java=\"`384`\">`384`</span>, <span pulumi-lang-nodejs=\"`512`\" pulumi-lang-dotnet=\"`512`\" pulumi-lang-go=\"`512`\" pulumi-lang-python=\"`512`\" pulumi-lang-yaml=\"`512`\" pulumi-lang-java=\"`512`\">`512`</span>, <span pulumi-lang-nodejs=\"`768`\" pulumi-lang-dotnet=\"`768`\" pulumi-lang-go=\"`768`\" pulumi-lang-python=\"`768`\" pulumi-lang-yaml=\"`768`\" pulumi-lang-java=\"`768`\">`768`</span> and <span pulumi-lang-nodejs=\"`1024`\" pulumi-lang-dotnet=\"`1024`\" pulumi-lang-go=\"`1024`\" pulumi-lang-python=\"`1024`\" pulumi-lang-yaml=\"`1024`\" pulumi-lang-java=\"`1024`\">`1024`</span>.\n+ **Memcached**: Stand-alone and active/standby type instance values: <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span>, <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span>, <span pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\">`8`</span>, <span pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\">`16`</span>, <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> and <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>.\n","type":"number"},"configurations":{"description":"Describes the array of configuration items of the DCS instance.\nConfigured values can be found [here](https://docs.otc.t-systems.com/en-us/api/dcs/dcs-api-0312015.html#dcs-api-0312015__table1439111281351).\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDcsInstanceV1Configuration:DcsInstanceV1Configuration"},"type":"array"},"dcsInstanceV1Id":{"type":"string"},"description":{"description":"Indicates the description of an instance. It is a character\nstring containing not more than <span pulumi-lang-nodejs=\"`1024`\" pulumi-lang-dotnet=\"`1024`\" pulumi-lang-go=\"`1024`\" pulumi-lang-python=\"`1024`\" pulumi-lang-yaml=\"`1024`\" pulumi-lang-java=\"`1024`\">`1024`</span> characters.\n","type":"string"},"enableWhitelist":{"description":"Specifies whether to enable or disable <span pulumi-lang-nodejs=\"`whitelist`\" pulumi-lang-dotnet=\"`Whitelist`\" pulumi-lang-go=\"`whitelist`\" pulumi-lang-python=\"`whitelist`\" pulumi-lang-yaml=\"`whitelist`\" pulumi-lang-java=\"`whitelist`\">`whitelist`</span>. Only available when\n<span pulumi-lang-nodejs=\"`engineVersion`\" pulumi-lang-dotnet=\"`EngineVersion`\" pulumi-lang-go=\"`engineVersion`\" pulumi-lang-python=\"`engine_version`\" pulumi-lang-yaml=\"`engineVersion`\" pulumi-lang-java=\"`engineVersion`\">`engine_version`</span> is set to `4.0`/`5.0`. Parameter have to be used together with <span pulumi-lang-nodejs=\"`whitelist`\" pulumi-lang-dotnet=\"`Whitelist`\" pulumi-lang-go=\"`whitelist`\" pulumi-lang-python=\"`whitelist`\" pulumi-lang-yaml=\"`whitelist`\" pulumi-lang-java=\"`whitelist`\">`whitelist`</span>.\n","type":"boolean"},"engine":{"description":"Indicates a cache engine. Only `Redis` is supported. Changing this\ncreates a new instance.\n","type":"string"},"engineVersion":{"description":"Indicates the version of a cache engine, which can be `4.0`/`5.0`/`6.0`.\nChanging this creates a new instance.\n","type":"string"},"maintainBegin":{"description":"Indicates the time at which a maintenance time window starts.\nFormat: `HH:mm:ss`. The start time and end time of a maintenance time window must indicate the time segment of\na supported maintenance time window. For details, see section\n[Querying Maintenance Time Windows](https://docs.otc.t-systems.com/api/dcs/dcs-api-0312041.html).\nThe start time must be set to `22:00`, `02:00`, `06:00`, `10:00`, `14:00`, or `18:00`.\n","type":"string"},"maintainEnd":{"description":"Indicates the time at which a maintenance time window ends.\nFormat: `HH:mm:ss`. The start time and end time of a maintenance time window must indicate the time segment of\na supported maintenance time window. For details, see section\n[Querying Maintenance Time Windows](https://docs.otc.t-systems.com/api/dcs/dcs-api-0312041.html).\nThe end time is four hours later than the start time. For example, if the start time is `22:00`,\nthe end time is `02:00`.\n\n> Parameters <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> and <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be set in pairs. If parameter <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> is left\nblank, parameter <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> is also blank. In this case, the system automatically allocates\nthe default start time `02:00` and the default end time `06:00`.\n","type":"string"},"name":{"description":"Indicates the name of an instance. An instance name starts with a letter,\nconsists of <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span> characters, and supports only letters, digits, and hyphens (-).\n","type":"string"},"password":{"description":"Indicates the password of an instance. An instance password\nmust meet the following complexity requirements: Must be 8 to 32 characters long.\nMust contain at least 3 of the following character types: lowercase letters, uppercase\nletters, digits, and special characters: `~!@#$^&*()-_=+|{}:,<>./?\nChanging this creates a new instance.\n","secret":true,"type":"string"},"periodType":{"deprecationMessage":"Deprecated","description":"See Argument Reference above.\n","type":"string"},"privateIp":{"description":"IP address that is manually specified for a DCS instance.\n","type":"string"},"productId":{"description":"Product ID used to differentiate DCS instance types.\nChanging this creates a new instance.\n","type":"string"},"saveDays":{"deprecationMessage":"Deprecated","description":"See Argument Reference above.\n","type":"number"},"securityGroupId":{"description":"Security group ID. This parameter is mandatory when <span pulumi-lang-nodejs=\"`engineVersion`\" pulumi-lang-dotnet=\"`EngineVersion`\" pulumi-lang-go=\"`engineVersion`\" pulumi-lang-python=\"`engine_version`\" pulumi-lang-yaml=\"`engineVersion`\" pulumi-lang-java=\"`engineVersion`\">`engine_version`</span> is `3.0`.\n","type":"string"},"subnetId":{"description":"Specifies the subnet Network ID. Changing this creates a new instance.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The key/value pairs to associate with the dcs instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDcsInstanceV1Timeouts:DcsInstanceV1Timeouts"},"vpcId":{"description":"Specifies the VPC ID. Changing this creates a new instance.\n","type":"string"},"whitelists":{"description":"Describes the <span pulumi-lang-nodejs=\"`whitelist`\" pulumi-lang-dotnet=\"`Whitelist`\" pulumi-lang-go=\"`whitelist`\" pulumi-lang-python=\"`whitelist`\" pulumi-lang-yaml=\"`whitelist`\" pulumi-lang-java=\"`whitelist`\">`whitelist`</span> groups to be used with the instance. Only available when\n<span pulumi-lang-nodejs=\"`engineVersion`\" pulumi-lang-dotnet=\"`EngineVersion`\" pulumi-lang-go=\"`engineVersion`\" pulumi-lang-python=\"`engine_version`\" pulumi-lang-yaml=\"`engineVersion`\" pulumi-lang-java=\"`engineVersion`\">`engine_version`</span> is set to `4.0`/`5.0`. Parameter have to be used together with <span pulumi-lang-nodejs=\"`enableWhitelist`\" pulumi-lang-dotnet=\"`EnableWhitelist`\" pulumi-lang-go=\"`enableWhitelist`\" pulumi-lang-python=\"`enable_whitelist`\" pulumi-lang-yaml=\"`enableWhitelist`\" pulumi-lang-java=\"`enableWhitelist`\">`enable_whitelist`</span>.\nResource fields:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDcsInstanceV1Whitelist:DcsInstanceV1Whitelist"},"type":"array"}},"properties":{"availableZones":{"description":"IDs of the AZs where cache nodes reside. For details\non how to query AZs, see [Querying AZ Information](https://docs.otc.t-systems.com/en-us/api/dcs/dcs-api-0312039.html)\nor use<span pulumi-lang-nodejs=\" opentelekomcloud.getDcsAzV1 \" pulumi-lang-dotnet=\" opentelekomcloud.getDcsAzV1 \" pulumi-lang-go=\" getDcsAzV1 \" pulumi-lang-python=\" get_dcs_az_v1 \" pulumi-lang-yaml=\" opentelekomcloud.getDcsAzV1 \" pulumi-lang-java=\" opentelekomcloud.getDcsAzV1 \"> opentelekomcloud.getDcsAzV1 </span>data source:\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst az1 = opentelekomcloud.getDcsAzV1({\n    name: \"eu-de-01\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\naz1 = opentelekomcloud.get_dcs_az_v1(name=\"eu-de-01\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var az1 = Opentelekomcloud.GetDcsAzV1.Invoke(new()\n    {\n        Name = \"eu-de-01\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetDcsAzV1(ctx, &opentelekomcloud.GetDcsAzV1Args{\n\t\t\tName: pulumi.StringRef(\"eu-de-01\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDcsAzV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var az1 = OpentelekomcloudFunctions.getDcsAzV1(GetDcsAzV1Args.builder()\n            .name(\"eu-de-01\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  az1:\n    fn::invoke:\n      function: opentelekomcloud:getDcsAzV1\n      arguments:\n        name: eu-de-01\n```\n<!--End PulumiCodeChooser -->\nChanging this creates a new instance.\n","items":{"type":"string"},"type":"array"},"backupAts":{"deprecationMessage":"Deprecated","description":"See Argument Reference above.\n","items":{"type":"number"},"type":"array"},"backupPolicy":{"$ref":"#/types/opentelekomcloud:index%2FDcsInstanceV1BackupPolicy:DcsInstanceV1BackupPolicy","description":"Describes the backup configuration to be used with the instance.\n"},"backupType":{"deprecationMessage":"Deprecated","description":"See Argument Reference above.\n","type":"string"},"beginAt":{"deprecationMessage":"Deprecated","description":"See Argument Reference above.\n","type":"string"},"capacity":{"description":"Indicates the Cache capacity. Unit: GB.\n+ **Redis4.0, Redis5.0 and Redis6.0**: Stand-alone and active/standby type instance values: `0.125`, `0.25`,\n`0.5`, <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>, <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span>, <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span>, <span pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\">`8`</span>, <span pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\">`16`</span>, <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> and <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>.\nCluster instance specifications support <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span>,<span pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\">`8`</span>,<span pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\">`16`</span>, <span pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\">`24`</span>, <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span>, <span pulumi-lang-nodejs=\"`48`\" pulumi-lang-dotnet=\"`48`\" pulumi-lang-go=\"`48`\" pulumi-lang-python=\"`48`\" pulumi-lang-yaml=\"`48`\" pulumi-lang-java=\"`48`\">`48`</span>, <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, <span pulumi-lang-nodejs=\"`96`\" pulumi-lang-dotnet=\"`96`\" pulumi-lang-go=\"`96`\" pulumi-lang-python=\"`96`\" pulumi-lang-yaml=\"`96`\" pulumi-lang-java=\"`96`\">`96`</span>, <span pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\">`128`</span>, <span pulumi-lang-nodejs=\"`192`\" pulumi-lang-dotnet=\"`192`\" pulumi-lang-go=\"`192`\" pulumi-lang-python=\"`192`\" pulumi-lang-yaml=\"`192`\" pulumi-lang-java=\"`192`\">`192`</span>, <span pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\">`256`</span>,\n<span pulumi-lang-nodejs=\"`384`\" pulumi-lang-dotnet=\"`384`\" pulumi-lang-go=\"`384`\" pulumi-lang-python=\"`384`\" pulumi-lang-yaml=\"`384`\" pulumi-lang-java=\"`384`\">`384`</span>, <span pulumi-lang-nodejs=\"`512`\" pulumi-lang-dotnet=\"`512`\" pulumi-lang-go=\"`512`\" pulumi-lang-python=\"`512`\" pulumi-lang-yaml=\"`512`\" pulumi-lang-java=\"`512`\">`512`</span>, <span pulumi-lang-nodejs=\"`768`\" pulumi-lang-dotnet=\"`768`\" pulumi-lang-go=\"`768`\" pulumi-lang-python=\"`768`\" pulumi-lang-yaml=\"`768`\" pulumi-lang-java=\"`768`\">`768`</span> and <span pulumi-lang-nodejs=\"`1024`\" pulumi-lang-dotnet=\"`1024`\" pulumi-lang-go=\"`1024`\" pulumi-lang-python=\"`1024`\" pulumi-lang-yaml=\"`1024`\" pulumi-lang-java=\"`1024`\">`1024`</span>.\n+ **Memcached**: Stand-alone and active/standby type instance values: <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span>, <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span>, <span pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\">`8`</span>, <span pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\">`16`</span>, <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> and <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>.\n","type":"number"},"configurations":{"description":"Describes the array of configuration items of the DCS instance.\nConfigured values can be found [here](https://docs.otc.t-systems.com/en-us/api/dcs/dcs-api-0312015.html#dcs-api-0312015__table1439111281351).\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDcsInstanceV1Configuration:DcsInstanceV1Configuration"},"type":"array"},"createdAt":{"description":"Time at which the DCS instance is created. For example, `2017-03-31T12:24:46.297Z`.\n","type":"string"},"dcsInstanceV1Id":{"type":"string"},"description":{"description":"Indicates the description of an instance. It is a character\nstring containing not more than <span pulumi-lang-nodejs=\"`1024`\" pulumi-lang-dotnet=\"`1024`\" pulumi-lang-go=\"`1024`\" pulumi-lang-python=\"`1024`\" pulumi-lang-yaml=\"`1024`\" pulumi-lang-java=\"`1024`\">`1024`</span> characters.\n","type":"string"},"enableWhitelist":{"description":"Specifies whether to enable or disable <span pulumi-lang-nodejs=\"`whitelist`\" pulumi-lang-dotnet=\"`Whitelist`\" pulumi-lang-go=\"`whitelist`\" pulumi-lang-python=\"`whitelist`\" pulumi-lang-yaml=\"`whitelist`\" pulumi-lang-java=\"`whitelist`\">`whitelist`</span>. Only available when\n<span pulumi-lang-nodejs=\"`engineVersion`\" pulumi-lang-dotnet=\"`EngineVersion`\" pulumi-lang-go=\"`engineVersion`\" pulumi-lang-python=\"`engine_version`\" pulumi-lang-yaml=\"`engineVersion`\" pulumi-lang-java=\"`engineVersion`\">`engine_version`</span> is set to `4.0`/`5.0`. Parameter have to be used together with <span pulumi-lang-nodejs=\"`whitelist`\" pulumi-lang-dotnet=\"`Whitelist`\" pulumi-lang-go=\"`whitelist`\" pulumi-lang-python=\"`whitelist`\" pulumi-lang-yaml=\"`whitelist`\" pulumi-lang-java=\"`whitelist`\">`whitelist`</span>.\n","type":"boolean"},"engine":{"description":"Indicates a cache engine. Only `Redis` is supported. Changing this\ncreates a new instance.\n","type":"string"},"engineVersion":{"description":"Indicates the version of a cache engine, which can be `4.0`/`5.0`/`6.0`.\nChanging this creates a new instance.\n","type":"string"},"internalVersion":{"description":"Internal DCS version.\n","type":"string"},"ip":{"description":"Cache node's IP address in the tenant's VPC.\n","type":"string"},"maintainBegin":{"description":"Indicates the time at which a maintenance time window starts.\nFormat: `HH:mm:ss`. The start time and end time of a maintenance time window must indicate the time segment of\na supported maintenance time window. For details, see section\n[Querying Maintenance Time Windows](https://docs.otc.t-systems.com/api/dcs/dcs-api-0312041.html).\nThe start time must be set to `22:00`, `02:00`, `06:00`, `10:00`, `14:00`, or `18:00`.\n","type":"string"},"maintainEnd":{"description":"Indicates the time at which a maintenance time window ends.\nFormat: `HH:mm:ss`. The start time and end time of a maintenance time window must indicate the time segment of\na supported maintenance time window. For details, see section\n[Querying Maintenance Time Windows](https://docs.otc.t-systems.com/api/dcs/dcs-api-0312041.html).\nThe end time is four hours later than the start time. For example, if the start time is `22:00`,\nthe end time is `02:00`.\n\n> Parameters <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> and <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be set in pairs. If parameter <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> is left\nblank, parameter <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> is also blank. In this case, the system automatically allocates\nthe default start time `02:00` and the default end time `06:00`.\n","type":"string"},"maxMemory":{"description":"Overall memory size. Unit: MB.\n","type":"number"},"name":{"description":"Indicates the name of an instance. An instance name starts with a letter,\nconsists of <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span> characters, and supports only letters, digits, and hyphens (-).\n","type":"string"},"noPasswordAccess":{"description":"An indicator of whether a DCS instance can be accessed in password-free mode.\n<span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> when password not set.\n","type":"string"},"orderId":{"description":"An order ID is generated only in the monthly or yearly billing mode.\nIn other billing modes, no value is returned for this parameter.\n","type":"string"},"password":{"description":"Indicates the password of an instance. An instance password\nmust meet the following complexity requirements: Must be 8 to 32 characters long.\nMust contain at least 3 of the following character types: lowercase letters, uppercase\nletters, digits, and special characters: `~!@#$^&*()-_=+|{}:,<>./?\nChanging this creates a new instance.\n","secret":true,"type":"string"},"periodType":{"deprecationMessage":"Deprecated","description":"See Argument Reference above.\n","type":"string"},"port":{"description":"Port of the cache node.\n","type":"number"},"privateIp":{"description":"IP address that is manually specified for a DCS instance.\n","type":"string"},"productId":{"description":"Product ID used to differentiate DCS instance types.\nChanging this creates a new instance.\n","type":"string"},"resourceSpecCode":{"description":"Resource specifications.\n","type":"string"},"saveDays":{"deprecationMessage":"Deprecated","description":"See Argument Reference above.\n","type":"number"},"securityGroupId":{"description":"Security group ID. This parameter is mandatory when <span pulumi-lang-nodejs=\"`engineVersion`\" pulumi-lang-dotnet=\"`EngineVersion`\" pulumi-lang-go=\"`engineVersion`\" pulumi-lang-python=\"`engine_version`\" pulumi-lang-yaml=\"`engineVersion`\" pulumi-lang-java=\"`engineVersion`\">`engine_version`</span> is `3.0`.\n","type":"string"},"securityGroupName":{"description":"Indicates the name of a security group.\n","type":"string"},"status":{"description":"Cache instance status. One of `CREATING`, `CREATEFAILED`, `RUNNING`, `ERROR`,\n`RESTARTING`, `EXTENDING`, `RESTORING`\n","type":"string"},"subnetId":{"description":"Specifies the subnet Network ID. Changing this creates a new instance.\n","type":"string"},"subnetName":{"description":"Indicates the name of a subnet.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The key/value pairs to associate with the dcs instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDcsInstanceV1Timeouts:DcsInstanceV1Timeouts"},"usedMemory":{"description":"Size of the used memory. Unit: MB.\n","type":"number"},"userId":{"description":"Indicates a user ID.\n","type":"string"},"userName":{"description":"Username.\n","type":"string"},"vpcId":{"description":"Specifies the VPC ID. Changing this creates a new instance.\n","type":"string"},"vpcName":{"description":"Indicates the name of a vpc.\n","type":"string"},"whitelists":{"description":"Describes the <span pulumi-lang-nodejs=\"`whitelist`\" pulumi-lang-dotnet=\"`Whitelist`\" pulumi-lang-go=\"`whitelist`\" pulumi-lang-python=\"`whitelist`\" pulumi-lang-yaml=\"`whitelist`\" pulumi-lang-java=\"`whitelist`\">`whitelist`</span> groups to be used with the instance. Only available when\n<span pulumi-lang-nodejs=\"`engineVersion`\" pulumi-lang-dotnet=\"`EngineVersion`\" pulumi-lang-go=\"`engineVersion`\" pulumi-lang-python=\"`engine_version`\" pulumi-lang-yaml=\"`engineVersion`\" pulumi-lang-java=\"`engineVersion`\">`engine_version`</span> is set to `4.0`/`5.0`. Parameter have to be used together with <span pulumi-lang-nodejs=\"`enableWhitelist`\" pulumi-lang-dotnet=\"`EnableWhitelist`\" pulumi-lang-go=\"`enableWhitelist`\" pulumi-lang-python=\"`enable_whitelist`\" pulumi-lang-yaml=\"`enableWhitelist`\" pulumi-lang-java=\"`enableWhitelist`\">`enable_whitelist`</span>.\nResource fields:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDcsInstanceV1Whitelist:DcsInstanceV1Whitelist"},"type":"array"}},"required":["availableZones","capacity","createdAt","dcsInstanceV1Id","description","enableWhitelist","engine","engineVersion","internalVersion","ip","maintainBegin","maintainEnd","maxMemory","name","noPasswordAccess","orderId","port","productId","resourceSpecCode","securityGroupName","status","subnetId","subnetName","usedMemory","userId","userName","vpcId","vpcName"],"requiredInputs":["availableZones","capacity","engine","engineVersion","productId","subnetId","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering DcsInstanceV1 resources.\n","properties":{"availableZones":{"description":"IDs of the AZs where cache nodes reside. For details\non how to query AZs, see [Querying AZ Information](https://docs.otc.t-systems.com/en-us/api/dcs/dcs-api-0312039.html)\nor use<span pulumi-lang-nodejs=\" opentelekomcloud.getDcsAzV1 \" pulumi-lang-dotnet=\" opentelekomcloud.getDcsAzV1 \" pulumi-lang-go=\" getDcsAzV1 \" pulumi-lang-python=\" get_dcs_az_v1 \" pulumi-lang-yaml=\" opentelekomcloud.getDcsAzV1 \" pulumi-lang-java=\" opentelekomcloud.getDcsAzV1 \"> opentelekomcloud.getDcsAzV1 </span>data source:\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst az1 = opentelekomcloud.getDcsAzV1({\n    name: \"eu-de-01\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\naz1 = opentelekomcloud.get_dcs_az_v1(name=\"eu-de-01\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var az1 = Opentelekomcloud.GetDcsAzV1.Invoke(new()\n    {\n        Name = \"eu-de-01\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.GetDcsAzV1(ctx, &opentelekomcloud.GetDcsAzV1Args{\n\t\t\tName: pulumi.StringRef(\"eu-de-01\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDcsAzV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var az1 = OpentelekomcloudFunctions.getDcsAzV1(GetDcsAzV1Args.builder()\n            .name(\"eu-de-01\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  az1:\n    fn::invoke:\n      function: opentelekomcloud:getDcsAzV1\n      arguments:\n        name: eu-de-01\n```\n<!--End PulumiCodeChooser -->\nChanging this creates a new instance.\n","items":{"type":"string"},"type":"array"},"backupAts":{"deprecationMessage":"Deprecated","description":"See Argument Reference above.\n","items":{"type":"number"},"type":"array"},"backupPolicy":{"$ref":"#/types/opentelekomcloud:index%2FDcsInstanceV1BackupPolicy:DcsInstanceV1BackupPolicy","description":"Describes the backup configuration to be used with the instance.\n"},"backupType":{"deprecationMessage":"Deprecated","description":"See Argument Reference above.\n","type":"string"},"beginAt":{"deprecationMessage":"Deprecated","description":"See Argument Reference above.\n","type":"string"},"capacity":{"description":"Indicates the Cache capacity. Unit: GB.\n+ **Redis4.0, Redis5.0 and Redis6.0**: Stand-alone and active/standby type instance values: `0.125`, `0.25`,\n`0.5`, <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>, <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span>, <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span>, <span pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\">`8`</span>, <span pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\">`16`</span>, <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> and <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>.\nCluster instance specifications support <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span>,<span pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\">`8`</span>,<span pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\">`16`</span>, <span pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\">`24`</span>, <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span>, <span pulumi-lang-nodejs=\"`48`\" pulumi-lang-dotnet=\"`48`\" pulumi-lang-go=\"`48`\" pulumi-lang-python=\"`48`\" pulumi-lang-yaml=\"`48`\" pulumi-lang-java=\"`48`\">`48`</span>, <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, <span pulumi-lang-nodejs=\"`96`\" pulumi-lang-dotnet=\"`96`\" pulumi-lang-go=\"`96`\" pulumi-lang-python=\"`96`\" pulumi-lang-yaml=\"`96`\" pulumi-lang-java=\"`96`\">`96`</span>, <span pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\">`128`</span>, <span pulumi-lang-nodejs=\"`192`\" pulumi-lang-dotnet=\"`192`\" pulumi-lang-go=\"`192`\" pulumi-lang-python=\"`192`\" pulumi-lang-yaml=\"`192`\" pulumi-lang-java=\"`192`\">`192`</span>, <span pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\">`256`</span>,\n<span pulumi-lang-nodejs=\"`384`\" pulumi-lang-dotnet=\"`384`\" pulumi-lang-go=\"`384`\" pulumi-lang-python=\"`384`\" pulumi-lang-yaml=\"`384`\" pulumi-lang-java=\"`384`\">`384`</span>, <span pulumi-lang-nodejs=\"`512`\" pulumi-lang-dotnet=\"`512`\" pulumi-lang-go=\"`512`\" pulumi-lang-python=\"`512`\" pulumi-lang-yaml=\"`512`\" pulumi-lang-java=\"`512`\">`512`</span>, <span pulumi-lang-nodejs=\"`768`\" pulumi-lang-dotnet=\"`768`\" pulumi-lang-go=\"`768`\" pulumi-lang-python=\"`768`\" pulumi-lang-yaml=\"`768`\" pulumi-lang-java=\"`768`\">`768`</span> and <span pulumi-lang-nodejs=\"`1024`\" pulumi-lang-dotnet=\"`1024`\" pulumi-lang-go=\"`1024`\" pulumi-lang-python=\"`1024`\" pulumi-lang-yaml=\"`1024`\" pulumi-lang-java=\"`1024`\">`1024`</span>.\n+ **Memcached**: Stand-alone and active/standby type instance values: <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span>, <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span>, <span pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\">`8`</span>, <span pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\">`16`</span>, <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> and <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>.\n","type":"number"},"configurations":{"description":"Describes the array of configuration items of the DCS instance.\nConfigured values can be found [here](https://docs.otc.t-systems.com/en-us/api/dcs/dcs-api-0312015.html#dcs-api-0312015__table1439111281351).\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDcsInstanceV1Configuration:DcsInstanceV1Configuration"},"type":"array"},"createdAt":{"description":"Time at which the DCS instance is created. For example, `2017-03-31T12:24:46.297Z`.\n","type":"string"},"dcsInstanceV1Id":{"type":"string"},"description":{"description":"Indicates the description of an instance. It is a character\nstring containing not more than <span pulumi-lang-nodejs=\"`1024`\" pulumi-lang-dotnet=\"`1024`\" pulumi-lang-go=\"`1024`\" pulumi-lang-python=\"`1024`\" pulumi-lang-yaml=\"`1024`\" pulumi-lang-java=\"`1024`\">`1024`</span> characters.\n","type":"string"},"enableWhitelist":{"description":"Specifies whether to enable or disable <span pulumi-lang-nodejs=\"`whitelist`\" pulumi-lang-dotnet=\"`Whitelist`\" pulumi-lang-go=\"`whitelist`\" pulumi-lang-python=\"`whitelist`\" pulumi-lang-yaml=\"`whitelist`\" pulumi-lang-java=\"`whitelist`\">`whitelist`</span>. Only available when\n<span pulumi-lang-nodejs=\"`engineVersion`\" pulumi-lang-dotnet=\"`EngineVersion`\" pulumi-lang-go=\"`engineVersion`\" pulumi-lang-python=\"`engine_version`\" pulumi-lang-yaml=\"`engineVersion`\" pulumi-lang-java=\"`engineVersion`\">`engine_version`</span> is set to `4.0`/`5.0`. Parameter have to be used together with <span pulumi-lang-nodejs=\"`whitelist`\" pulumi-lang-dotnet=\"`Whitelist`\" pulumi-lang-go=\"`whitelist`\" pulumi-lang-python=\"`whitelist`\" pulumi-lang-yaml=\"`whitelist`\" pulumi-lang-java=\"`whitelist`\">`whitelist`</span>.\n","type":"boolean"},"engine":{"description":"Indicates a cache engine. Only `Redis` is supported. Changing this\ncreates a new instance.\n","type":"string"},"engineVersion":{"description":"Indicates the version of a cache engine, which can be `4.0`/`5.0`/`6.0`.\nChanging this creates a new instance.\n","type":"string"},"internalVersion":{"description":"Internal DCS version.\n","type":"string"},"ip":{"description":"Cache node's IP address in the tenant's VPC.\n","type":"string"},"maintainBegin":{"description":"Indicates the time at which a maintenance time window starts.\nFormat: `HH:mm:ss`. The start time and end time of a maintenance time window must indicate the time segment of\na supported maintenance time window. For details, see section\n[Querying Maintenance Time Windows](https://docs.otc.t-systems.com/api/dcs/dcs-api-0312041.html).\nThe start time must be set to `22:00`, `02:00`, `06:00`, `10:00`, `14:00`, or `18:00`.\n","type":"string"},"maintainEnd":{"description":"Indicates the time at which a maintenance time window ends.\nFormat: `HH:mm:ss`. The start time and end time of a maintenance time window must indicate the time segment of\na supported maintenance time window. For details, see section\n[Querying Maintenance Time Windows](https://docs.otc.t-systems.com/api/dcs/dcs-api-0312041.html).\nThe end time is four hours later than the start time. For example, if the start time is `22:00`,\nthe end time is `02:00`.\n\n> Parameters <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> and <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be set in pairs. If parameter <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> is left\nblank, parameter <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> is also blank. In this case, the system automatically allocates\nthe default start time `02:00` and the default end time `06:00`.\n","type":"string"},"maxMemory":{"description":"Overall memory size. Unit: MB.\n","type":"number"},"name":{"description":"Indicates the name of an instance. An instance name starts with a letter,\nconsists of <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span> characters, and supports only letters, digits, and hyphens (-).\n","type":"string"},"noPasswordAccess":{"description":"An indicator of whether a DCS instance can be accessed in password-free mode.\n<span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> when password not set.\n","type":"string"},"orderId":{"description":"An order ID is generated only in the monthly or yearly billing mode.\nIn other billing modes, no value is returned for this parameter.\n","type":"string"},"password":{"description":"Indicates the password of an instance. An instance password\nmust meet the following complexity requirements: Must be 8 to 32 characters long.\nMust contain at least 3 of the following character types: lowercase letters, uppercase\nletters, digits, and special characters: `~!@#$^&*()-_=+|{}:,<>./?\nChanging this creates a new instance.\n","secret":true,"type":"string"},"periodType":{"deprecationMessage":"Deprecated","description":"See Argument Reference above.\n","type":"string"},"port":{"description":"Port of the cache node.\n","type":"number"},"privateIp":{"description":"IP address that is manually specified for a DCS instance.\n","type":"string"},"productId":{"description":"Product ID used to differentiate DCS instance types.\nChanging this creates a new instance.\n","type":"string"},"resourceSpecCode":{"description":"Resource specifications.\n","type":"string"},"saveDays":{"deprecationMessage":"Deprecated","description":"See Argument Reference above.\n","type":"number"},"securityGroupId":{"description":"Security group ID. This parameter is mandatory when <span pulumi-lang-nodejs=\"`engineVersion`\" pulumi-lang-dotnet=\"`EngineVersion`\" pulumi-lang-go=\"`engineVersion`\" pulumi-lang-python=\"`engine_version`\" pulumi-lang-yaml=\"`engineVersion`\" pulumi-lang-java=\"`engineVersion`\">`engine_version`</span> is `3.0`.\n","type":"string"},"securityGroupName":{"description":"Indicates the name of a security group.\n","type":"string"},"status":{"description":"Cache instance status. One of `CREATING`, `CREATEFAILED`, `RUNNING`, `ERROR`,\n`RESTARTING`, `EXTENDING`, `RESTORING`\n","type":"string"},"subnetId":{"description":"Specifies the subnet Network ID. Changing this creates a new instance.\n","type":"string"},"subnetName":{"description":"Indicates the name of a subnet.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The key/value pairs to associate with the dcs instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDcsInstanceV1Timeouts:DcsInstanceV1Timeouts"},"usedMemory":{"description":"Size of the used memory. Unit: MB.\n","type":"number"},"userId":{"description":"Indicates a user ID.\n","type":"string"},"userName":{"description":"Username.\n","type":"string"},"vpcId":{"description":"Specifies the VPC ID. Changing this creates a new instance.\n","type":"string"},"vpcName":{"description":"Indicates the name of a vpc.\n","type":"string"},"whitelists":{"description":"Describes the <span pulumi-lang-nodejs=\"`whitelist`\" pulumi-lang-dotnet=\"`Whitelist`\" pulumi-lang-go=\"`whitelist`\" pulumi-lang-python=\"`whitelist`\" pulumi-lang-yaml=\"`whitelist`\" pulumi-lang-java=\"`whitelist`\">`whitelist`</span> groups to be used with the instance. Only available when\n<span pulumi-lang-nodejs=\"`engineVersion`\" pulumi-lang-dotnet=\"`EngineVersion`\" pulumi-lang-go=\"`engineVersion`\" pulumi-lang-python=\"`engine_version`\" pulumi-lang-yaml=\"`engineVersion`\" pulumi-lang-java=\"`engineVersion`\">`engine_version`</span> is set to `4.0`/`5.0`. Parameter have to be used together with <span pulumi-lang-nodejs=\"`enableWhitelist`\" pulumi-lang-dotnet=\"`EnableWhitelist`\" pulumi-lang-go=\"`enableWhitelist`\" pulumi-lang-python=\"`enable_whitelist`\" pulumi-lang-yaml=\"`enableWhitelist`\" pulumi-lang-java=\"`enableWhitelist`\">`enable_whitelist`</span>.\nResource fields:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDcsInstanceV1Whitelist:DcsInstanceV1Whitelist"},"type":"array"}},"type":"object"},"type":"object"},"opentelekomcloud:index/dcsInstanceV2:DcsInstanceV2":{"description":"Up-to-date reference of API arguments for DCS V2 instance you can get at\n[documentation portal](https://docs.otc.t-systems.com/distributed-cache-service/api-ref/apis_v2_recommended/index.html)\n\nManages a DCSv2 instance in the OpenTelekomCloud DCS Service.\n\n## Example Usage\n\n### Engine version 5.0 (please pay attention of proper selection of flavor):\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst zones = opentelekomcloud.getComputeAvailabilityZonesV2({});\nconst instance1 = new opentelekomcloud.DcsInstanceV2(\"instance_1\", {\n    name: \"test_dcs_instance_5.0\",\n    engineVersion: \"5.0\",\n    password: \"0TCTestP@ssw0rd\",\n    engine: \"Redis\",\n    capacity: 0.125,\n    vpcId: sharedSubnet.vpcId,\n    subnetId: sharedSubnet.networkId,\n    availabilityZones: [zones.then(zones => zones.names?.[0])],\n    flavor: \"redis.single.xu1.tiny.128\",\n    enableWhitelist: true,\n    whitelists: [\n        {\n            groupName: \"test-group-name\",\n            ipLists: [\n                \"10.10.10.1\",\n                \"10.10.10.2\",\n            ],\n        },\n        {\n            groupName: \"test-group-name-2\",\n            ipLists: [\n                \"10.10.10.11\",\n                \"10.10.10.3\",\n                \"10.10.10.4\",\n            ],\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nzones = opentelekomcloud.get_compute_availability_zones_v2()\ninstance1 = opentelekomcloud.DcsInstanceV2(\"instance_1\",\n    name=\"test_dcs_instance_5.0\",\n    engine_version=\"5.0\",\n    password=\"0TCTestP@ssw0rd\",\n    engine=\"Redis\",\n    capacity=0.125,\n    vpc_id=shared_subnet[\"vpcId\"],\n    subnet_id=shared_subnet[\"networkId\"],\n    availability_zones=[zones.names[0]],\n    flavor=\"redis.single.xu1.tiny.128\",\n    enable_whitelist=True,\n    whitelists=[\n        {\n            \"group_name\": \"test-group-name\",\n            \"ip_lists\": [\n                \"10.10.10.1\",\n                \"10.10.10.2\",\n            ],\n        },\n        {\n            \"group_name\": \"test-group-name-2\",\n            \"ip_lists\": [\n                \"10.10.10.11\",\n                \"10.10.10.3\",\n                \"10.10.10.4\",\n            ],\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var zones = Opentelekomcloud.GetComputeAvailabilityZonesV2.Invoke();\n\n    var instance1 = new Opentelekomcloud.DcsInstanceV2(\"instance_1\", new()\n    {\n        Name = \"test_dcs_instance_5.0\",\n        EngineVersion = \"5.0\",\n        Password = \"0TCTestP@ssw0rd\",\n        Engine = \"Redis\",\n        Capacity = 0.125,\n        VpcId = sharedSubnet.VpcId,\n        SubnetId = sharedSubnet.NetworkId,\n        AvailabilityZones = new[]\n        {\n            zones.Apply(getComputeAvailabilityZonesV2Result => getComputeAvailabilityZonesV2Result.Names[0]),\n        },\n        Flavor = \"redis.single.xu1.tiny.128\",\n        EnableWhitelist = true,\n        Whitelists = new[]\n        {\n            new Opentelekomcloud.Inputs.DcsInstanceV2WhitelistArgs\n            {\n                GroupName = \"test-group-name\",\n                IpLists = new[]\n                {\n                    \"10.10.10.1\",\n                    \"10.10.10.2\",\n                },\n            },\n            new Opentelekomcloud.Inputs.DcsInstanceV2WhitelistArgs\n            {\n                GroupName = \"test-group-name-2\",\n                IpLists = new[]\n                {\n                    \"10.10.10.11\",\n                    \"10.10.10.3\",\n                    \"10.10.10.4\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tzones, err := opentelekomcloud.GetComputeAvailabilityZonesV2(ctx, &opentelekomcloud.GetComputeAvailabilityZonesV2Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewDcsInstanceV2(ctx, \"instance_1\", &opentelekomcloud.DcsInstanceV2Args{\n\t\t\tName:          pulumi.String(\"test_dcs_instance_5.0\"),\n\t\t\tEngineVersion: pulumi.String(\"5.0\"),\n\t\t\tPassword:      pulumi.String(\"0TCTestP@ssw0rd\"),\n\t\t\tEngine:        pulumi.String(\"Redis\"),\n\t\t\tCapacity:      pulumi.Float64(0.125),\n\t\t\tVpcId:         pulumi.Any(sharedSubnet.VpcId),\n\t\t\tSubnetId:      pulumi.Any(sharedSubnet.NetworkId),\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(zones.Names[0]),\n\t\t\t},\n\t\t\tFlavor:          pulumi.String(\"redis.single.xu1.tiny.128\"),\n\t\t\tEnableWhitelist: pulumi.Bool(true),\n\t\t\tWhitelists: opentelekomcloud.DcsInstanceV2WhitelistArray{\n\t\t\t\t&opentelekomcloud.DcsInstanceV2WhitelistArgs{\n\t\t\t\t\tGroupName: pulumi.String(\"test-group-name\"),\n\t\t\t\t\tIpLists: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"10.10.10.1\"),\n\t\t\t\t\t\tpulumi.String(\"10.10.10.2\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.DcsInstanceV2WhitelistArgs{\n\t\t\t\t\tGroupName: pulumi.String(\"test-group-name-2\"),\n\t\t\t\t\tIpLists: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"10.10.10.11\"),\n\t\t\t\t\t\tpulumi.String(\"10.10.10.3\"),\n\t\t\t\t\t\tpulumi.String(\"10.10.10.4\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetComputeAvailabilityZonesV2Args;\nimport com.pulumi.opentelekomcloud.DcsInstanceV2;\nimport com.pulumi.opentelekomcloud.DcsInstanceV2Args;\nimport com.pulumi.opentelekomcloud.inputs.DcsInstanceV2WhitelistArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var zones = OpentelekomcloudFunctions.getComputeAvailabilityZonesV2(GetComputeAvailabilityZonesV2Args.builder()\n            .build());\n\n        var instance1 = new DcsInstanceV2(\"instance1\", DcsInstanceV2Args.builder()\n            .name(\"test_dcs_instance_5.0\")\n            .engineVersion(\"5.0\")\n            .password(\"0TCTestP@ssw0rd\")\n            .engine(\"Redis\")\n            .capacity(0.125)\n            .vpcId(sharedSubnet.vpcId())\n            .subnetId(sharedSubnet.networkId())\n            .availabilityZones(zones.names()[0])\n            .flavor(\"redis.single.xu1.tiny.128\")\n            .enableWhitelist(true)\n            .whitelists(            \n                DcsInstanceV2WhitelistArgs.builder()\n                    .groupName(\"test-group-name\")\n                    .ipLists(                    \n                        \"10.10.10.1\",\n                        \"10.10.10.2\")\n                    .build(),\n                DcsInstanceV2WhitelistArgs.builder()\n                    .groupName(\"test-group-name-2\")\n                    .ipLists(                    \n                        \"10.10.10.11\",\n                        \"10.10.10.3\",\n                        \"10.10.10.4\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  instance1:\n    type: opentelekomcloud:DcsInstanceV2\n    name: instance_1\n    properties:\n      name: test_dcs_instance_5.0\n      engineVersion: '5.0'\n      password: 0TCTestP@ssw0rd\n      engine: Redis\n      capacity: 0.125\n      vpcId: ${sharedSubnet.vpcId}\n      subnetId: ${sharedSubnet.networkId}\n      availabilityZones:\n        - ${zones.names[0]}\n      flavor: redis.single.xu1.tiny.128\n      enableWhitelist: true\n      whitelists:\n        - groupName: test-group-name\n          ipLists:\n            - 10.10.10.1\n            - 10.10.10.2\n        - groupName: test-group-name-2\n          ipLists:\n            - 10.10.10.11\n            - 10.10.10.3\n            - 10.10.10.4\nvariables:\n  zones:\n    fn::invoke:\n      function: opentelekomcloud:getComputeAvailabilityZonesV2\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nDCS instance can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/dcsInstanceV2:DcsInstanceV2 instance_1 80e373f9-872e-4046-aae9-ccd9ddc55511\n```\n\nNote that the imported state may not be identical to your resource definition, due to some attributes missing from the\n\nAPI response, security or some other reason.\n\nThe missing attributes include: `backup_policy`, `parameters`, `password`,\n\n`bandwidth_info.0.current_time`.\n\nIt is generally recommended running `pulumi preview` after importing an instance.\n\nYou can then decide if changes should be applied to the instance, or the resource definition should be updated to\n\nalign with the instance. Also, you can ignore changes as below.\n\nresource \"opentelekomcloud_dcs_instance_v2\" \"instance_1\" {\n\n    ...\n\n  lifecycle {\n\n    ignore_changes = [\n\n      password, rename_commands, backup_policy, parameters,\n\n      bandwidth_info.0.current_time\n\n    ]\n\n  }\n\n}\n\n","inputProperties":{"accessUser":{"description":"Specifies the username used for accessing a DCS instance.\nThe username starts with a letter, consists of 1 to 64 characters, and supports only letters, digits, and\nhyphens (-). Changing this creates a new instance. If the cache engine is Redis, leave this parameter empty.\n","type":"string"},"availabilityZones":{"description":"The code of the AZ where the cache node resides.\nMaster/Standby, Proxy Cluster, and Redis Cluster DCS instances support cross-AZ deployment.\nYou can specify an AZ for the standby node. When specifying AZs for nodes, use commas (,) to separate AZs.\nChanging this creates a new instance.\n","items":{"type":"string"},"type":"array"},"backupPolicy":{"$ref":"#/types/opentelekomcloud:index%2FDcsInstanceV2BackupPolicy:DcsInstanceV2BackupPolicy","description":"Specifies the backup configuration to be used with the instance.\nThe structure is described below.\n\n> **NOTE:** This parameter is not supported when the instance type is single.\n"},"capacity":{"description":"Specifies the cache capacity. Unit: GB.\n","type":"number"},"dcsInstanceV2Id":{"description":"A resource ID in UUID format.\n","type":"string"},"deletedNodes":{"description":"Specifies the ID of the replica to delete. This parameter is mandatory when\nyou delete replicas of a master/standby DCS Redis 4.0 or 5.0 instance. Currently, only one replica can be deleted\nat a time.\n","items":{"type":"string"},"type":"array"},"description":{"description":"Specifies the description of an instance.\nIt is a string that contains a maximum of 1024 characters.\n","type":"string"},"enableWhitelist":{"description":"Enable or disable the IP address whitelists. Defaults to true.\nIf the whitelist is disabled, all IP addresses connected to the VPC can access the instance.\n","type":"boolean"},"engine":{"description":"Specifies a cache engine. Options: *Redis* and *Memcached*.\nChanging this creates a new instance.\n","type":"string"},"engineVersion":{"description":"Specifies the version of a cache engine.\nIt is mandatory when the engine is *Redis*, the value can be 4.0, 5.0, 6.0 or 7.0.\nChanging this creates a new instance.\n","type":"string"},"flavor":{"description":"The flavor of the cache instance, which including the total memory, available memory,\nmaximum number of connections allowed, maximum/assured bandwidth and reference performance.\nIt also includes the modes of Redis instances. You can query the *flavor* as follows:\n+ Query flavors\nin [DCS Instance Specifications](https://docs.otc.t-systems.com/distributed-cache-service/umn/service_overview/dcs_instance_specifications/index.html)\n+ Log in to the DCS console, click *Create DCS Instance*, and find the corresponding instance specification.\n","type":"string"},"maintainBegin":{"description":"Time at which the maintenance time window starts. Defaults to **02:00:00**.\n+ The start time and end time of a maintenance time window must indicate the time segment of a supported maintenance\ntime window.\n+ The start time must be on the hour, such as **18:00:00**.\n+ If parameter <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> is left blank, parameter <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> is also blank.\nIn this case, the system automatically allocates the default start time **02:00:00**.\n","type":"string"},"maintainEnd":{"description":"Time at which the maintenance time window ends. Defaults to **06:00:00**.\n+ The start time and end time of a maintenance time window must indicate the time segment of a supported maintenance\ntime window.\n+ The end time is one hour later than the start time. For example, if the start time is **18:00:00**, the end time is\n**19:00:00**.\n+ If parameter <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> is left blank, parameter <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> is also blank.\nIn this case, the system automatically allocates the default end time **06:00:00**.\n\n> **NOTE:** Parameters <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> and <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be set in pairs.\n","type":"string"},"name":{"description":"Specifies the name of an instance.\nThe name must be 4 to 64 characters and start with a letter.\nOnly chinese, letters (case-insensitive), digits, underscores (_) ,and hyphens (-) are allowed.\n","type":"string"},"parameters":{"description":"Specify an array of one or more parameters to be set to the DCS instance after\nlaunched. You can check on console to see which parameters supported.\nThe parameters structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDcsInstanceV2Parameter:DcsInstanceV2Parameter"},"type":"array"},"password":{"description":"Specifies the password of a DCS instance.\nThe password of a DCS instance must meet the following complexity requirements:\n+ Must be a string of 8 to 32 bits in length.\n+ Must contain three combinations of the following four characters: Lower case letters, uppercase letter, digital,\nSpecial characters include (`~!@#$^&*()-_=+\\\\|{}:,<.>/?).\n+ The new password cannot be the same as the old password.\n","secret":true,"type":"string"},"port":{"description":"Port customization, which is supported only by Redis 4.0 and Redis 5.0 instances.\nRedis instance defaults to 6379. Memcached instance does not use this argument.\n","type":"number"},"privateIp":{"description":"The IP address of the DCS instance,\nwhich can only be the currently available IP address the selected subnet.\nYou can specify an available IP for the Redis instance (except for the Redis Cluster type).\nIf omitted, the system will automatically allocate an available IP address to the Redis instance.\nChanging this creates a new instance resource.\n","type":"string"},"renameCommands":{"additionalProperties":{"type":"string"},"description":"Critical command renaming, which is supported only by Redis 4.0 and\nRedis 5.0 instances but not by Redis 3.0 instance.\nThe valid commands that can be renamed are: **command**, **keys**, **flushdb**, **flushall** and **hgetall**.\n","type":"object"},"reservedIps":{"description":"Specifies IP addresses to retain. Mandatory during cluster scale-in. If this\nparameter is not set, the system randomly deletes unnecessary shards.\n","items":{"type":"string"},"type":"array"},"securityGroupId":{"description":"The ID of the security group which the instance belongs to.\nThis parameter is mandatory for Memcached and Redis 3.0 version.\n","type":"string"},"sslEnable":{"description":"Specifies whether to enable the SSL. Value options: **true**, **false**.\n","type":"boolean"},"subnetId":{"description":"The ID of subnet (Network ID) which the instance belongs to.\nChanging this creates a new instance resource.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The key/value pairs to associate with the dcs instance.\n","type":"object"},"templateId":{"description":"The Parameter Template ID.\nChanging this creates a new instance resource.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDcsInstanceV2Timeouts:DcsInstanceV2Timeouts"},"vpcId":{"description":"The ID of VPC which the instance belongs to.\nChanging this creates a new instance resource.\n","type":"string"},"whitelists":{"description":"Specifies the IP addresses which can access the instance.\nThis parameter is valid for Redis 4.0 and 5.0 versions. The structure is described below. Required if <span pulumi-lang-nodejs=\"`enableWhitelist`\" pulumi-lang-dotnet=\"`EnableWhitelist`\" pulumi-lang-go=\"`enableWhitelist`\" pulumi-lang-python=\"`enable_whitelist`\" pulumi-lang-yaml=\"`enableWhitelist`\" pulumi-lang-java=\"`enableWhitelist`\">`enable_whitelist`</span> is used.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDcsInstanceV2Whitelist:DcsInstanceV2Whitelist"},"type":"array"}},"properties":{"accessUser":{"description":"Specifies the username used for accessing a DCS instance.\nThe username starts with a letter, consists of 1 to 64 characters, and supports only letters, digits, and\nhyphens (-). Changing this creates a new instance. If the cache engine is Redis, leave this parameter empty.\n","type":"string"},"availabilityZones":{"description":"The code of the AZ where the cache node resides.\nMaster/Standby, Proxy Cluster, and Redis Cluster DCS instances support cross-AZ deployment.\nYou can specify an AZ for the standby node. When specifying AZs for nodes, use commas (,) to separate AZs.\nChanging this creates a new instance.\n","items":{"type":"string"},"type":"array"},"backupPolicy":{"$ref":"#/types/opentelekomcloud:index%2FDcsInstanceV2BackupPolicy:DcsInstanceV2BackupPolicy","description":"Specifies the backup configuration to be used with the instance.\nThe structure is described below.\n\n> **NOTE:** This parameter is not supported when the instance type is single.\n"},"bandwidthInfos":{"description":"Indicates the bandwidth information of the instance.\nThe<span pulumi-lang-nodejs=\" bandwidthInfo \" pulumi-lang-dotnet=\" BandwidthInfo \" pulumi-lang-go=\" bandwidthInfo \" pulumi-lang-python=\" bandwidth_info \" pulumi-lang-yaml=\" bandwidthInfo \" pulumi-lang-java=\" bandwidthInfo \"> bandwidth_info </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDcsInstanceV2BandwidthInfo:DcsInstanceV2BandwidthInfo"},"type":"array"},"cacheMode":{"description":"Indicates the instance type. The value can be **single**, **ha**, **cluster** or **proxy**.\n","type":"string"},"capacity":{"description":"Specifies the cache capacity. Unit: GB.\n","type":"number"},"cpuType":{"description":"Indicates the CPU type of the instance. The value can be **x86_64** or **aarch64**.\n","type":"string"},"createdAt":{"description":"Indicates the time when the instance is created, in RFC3339 format.\n","type":"string"},"dcsInstanceV2Id":{"description":"A resource ID in UUID format.\n","type":"string"},"deletedNodes":{"description":"Specifies the ID of the replica to delete. This parameter is mandatory when\nyou delete replicas of a master/standby DCS Redis 4.0 or 5.0 instance. Currently, only one replica can be deleted\nat a time.\n","items":{"type":"string"},"type":"array"},"description":{"description":"Specifies the description of an instance.\nIt is a string that contains a maximum of 1024 characters.\n","type":"string"},"domainName":{"description":"Domain name of the instance. Usually, we use domain name and port to connect to the DCS instances.\n","type":"string"},"enableWhitelist":{"description":"Enable or disable the IP address whitelists. Defaults to true.\nIf the whitelist is disabled, all IP addresses connected to the VPC can access the instance.\n","type":"boolean"},"engine":{"description":"Specifies a cache engine. Options: *Redis* and *Memcached*.\nChanging this creates a new instance.\n","type":"string"},"engineVersion":{"description":"Specifies the version of a cache engine.\nIt is mandatory when the engine is *Redis*, the value can be 4.0, 5.0, 6.0 or 7.0.\nChanging this creates a new instance.\n","type":"string"},"flavor":{"description":"The flavor of the cache instance, which including the total memory, available memory,\nmaximum number of connections allowed, maximum/assured bandwidth and reference performance.\nIt also includes the modes of Redis instances. You can query the *flavor* as follows:\n+ Query flavors\nin [DCS Instance Specifications](https://docs.otc.t-systems.com/distributed-cache-service/umn/service_overview/dcs_instance_specifications/index.html)\n+ Log in to the DCS console, click *Create DCS Instance*, and find the corresponding instance specification.\n","type":"string"},"launchedAt":{"description":"Indicates the time when the instance is started, in RFC3339 format.\n","type":"string"},"maintainBegin":{"description":"Time at which the maintenance time window starts. Defaults to **02:00:00**.\n+ The start time and end time of a maintenance time window must indicate the time segment of a supported maintenance\ntime window.\n+ The start time must be on the hour, such as **18:00:00**.\n+ If parameter <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> is left blank, parameter <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> is also blank.\nIn this case, the system automatically allocates the default start time **02:00:00**.\n","type":"string"},"maintainEnd":{"description":"Time at which the maintenance time window ends. Defaults to **06:00:00**.\n+ The start time and end time of a maintenance time window must indicate the time segment of a supported maintenance\ntime window.\n+ The end time is one hour later than the start time. For example, if the start time is **18:00:00**, the end time is\n**19:00:00**.\n+ If parameter <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> is left blank, parameter <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> is also blank.\nIn this case, the system automatically allocates the default end time **06:00:00**.\n\n> **NOTE:** Parameters <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> and <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be set in pairs.\n","type":"string"},"maxMemory":{"description":"Total memory size. Unit: MB.\n","type":"number"},"name":{"description":"Specifies the name of an instance.\nThe name must be 4 to 64 characters and start with a letter.\nOnly chinese, letters (case-insensitive), digits, underscores (_) ,and hyphens (-) are allowed.\n","type":"string"},"parameters":{"description":"Specify an array of one or more parameters to be set to the DCS instance after\nlaunched. You can check on console to see which parameters supported.\nThe parameters structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDcsInstanceV2Parameter:DcsInstanceV2Parameter"},"type":"array"},"password":{"description":"Specifies the password of a DCS instance.\nThe password of a DCS instance must meet the following complexity requirements:\n+ Must be a string of 8 to 32 bits in length.\n+ Must contain three combinations of the following four characters: Lower case letters, uppercase letter, digital,\nSpecial characters include (`~!@#$^&*()-_=+\\\\|{}:,<.>/?).\n+ The new password cannot be the same as the old password.\n","secret":true,"type":"string"},"port":{"description":"Port customization, which is supported only by Redis 4.0 and Redis 5.0 instances.\nRedis instance defaults to 6379. Memcached instance does not use this argument.\n","type":"number"},"privateIp":{"description":"The IP address of the DCS instance,\nwhich can only be the currently available IP address the selected subnet.\nYou can specify an available IP for the Redis instance (except for the Redis Cluster type).\nIf omitted, the system will automatically allocate an available IP address to the Redis instance.\nChanging this creates a new instance resource.\n","type":"string"},"productType":{"description":"Indicates the product type of the instance. The value can be: **generic** or **enterprise**.\n","type":"string"},"readonlyDomainName":{"description":"Indicates the read-only domain name of the instance. This parameter is available\nonly for master/standby instances.\n","type":"string"},"region":{"description":"Indicates the region in which DCS instance resource is created.\n","type":"string"},"renameCommands":{"additionalProperties":{"type":"string"},"description":"Critical command renaming, which is supported only by Redis 4.0 and\nRedis 5.0 instances but not by Redis 3.0 instance.\nThe valid commands that can be renamed are: **command**, **keys**, **flushdb**, **flushall** and **hgetall**.\n","type":"object"},"replicaCount":{"description":"Indicates the number of replicas in the instance.\n","type":"number"},"reservedIps":{"description":"Specifies IP addresses to retain. Mandatory during cluster scale-in. If this\nparameter is not set, the system randomly deletes unnecessary shards.\n","items":{"type":"string"},"type":"array"},"securityGroupId":{"description":"The ID of the security group which the instance belongs to.\nThis parameter is mandatory for Memcached and Redis 3.0 version.\n","type":"string"},"securityGroupName":{"description":"The name of security group which the instance belongs to.\n","type":"string"},"shardingCount":{"description":"Indicates the number of shards in a cluster instance.\n","type":"number"},"sslEnable":{"description":"Specifies whether to enable the SSL. Value options: **true**, **false**.\n","type":"boolean"},"status":{"description":"Cache instance status. The valid values are as follows:\n+ `RUNNING`: The instance is running properly.\nOnly instances in the Running state can provide in-memory cache service.\n+ `ERROR`: The instance is not running properly.\n+ `RESTARTING`: The instance is being restarted.\n+ `FROZEN`: The instance has been frozen due to low balance.\nYou can unfreeze the instance by recharging your account in My Order.\n+ `EXTENDING`: The instance is being scaled up.\n+ `RESTORING`: The instance data is being restored.\n+ `FLUSHING`: The DCS instance is being cleared.\n","type":"string"},"subnetCidr":{"description":"Indicates the subnet segment.\n","type":"string"},"subnetId":{"description":"The ID of subnet (Network ID) which the instance belongs to.\nChanging this creates a new instance resource.\n","type":"string"},"subnetName":{"description":"The name of subnet which the instance belongs to.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The key/value pairs to associate with the dcs instance.\n","type":"object"},"templateId":{"description":"The Parameter Template ID.\nChanging this creates a new instance resource.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDcsInstanceV2Timeouts:DcsInstanceV2Timeouts"},"transparentClientIpEnable":{"description":"Indicates whether client IP pass-through is enabled.\n","type":"boolean"},"usedMemory":{"description":"Size of the used memory. Unit: MB.\n","type":"number"},"userId":{"type":"string"},"userName":{"type":"string"},"vpcId":{"description":"The ID of VPC which the instance belongs to.\nChanging this creates a new instance resource.\n","type":"string"},"vpcName":{"description":"The name of VPC which the instance belongs to.\n","type":"string"},"whitelists":{"description":"Specifies the IP addresses which can access the instance.\nThis parameter is valid for Redis 4.0 and 5.0 versions. The structure is described below. Required if <span pulumi-lang-nodejs=\"`enableWhitelist`\" pulumi-lang-dotnet=\"`EnableWhitelist`\" pulumi-lang-go=\"`enableWhitelist`\" pulumi-lang-python=\"`enable_whitelist`\" pulumi-lang-yaml=\"`enableWhitelist`\" pulumi-lang-java=\"`enableWhitelist`\">`enable_whitelist`</span> is used.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDcsInstanceV2Whitelist:DcsInstanceV2Whitelist"},"type":"array"}},"required":["accessUser","availabilityZones","bandwidthInfos","cacheMode","capacity","cpuType","createdAt","dcsInstanceV2Id","description","domainName","enableWhitelist","engine","flavor","launchedAt","maintainBegin","maintainEnd","maxMemory","name","port","privateIp","productType","readonlyDomainName","region","replicaCount","securityGroupName","shardingCount","sslEnable","status","subnetCidr","subnetId","subnetName","transparentClientIpEnable","usedMemory","userId","userName","vpcId","vpcName"],"requiredInputs":["availabilityZones","capacity","engine","flavor","subnetId","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering DcsInstanceV2 resources.\n","properties":{"accessUser":{"description":"Specifies the username used for accessing a DCS instance.\nThe username starts with a letter, consists of 1 to 64 characters, and supports only letters, digits, and\nhyphens (-). Changing this creates a new instance. If the cache engine is Redis, leave this parameter empty.\n","type":"string"},"availabilityZones":{"description":"The code of the AZ where the cache node resides.\nMaster/Standby, Proxy Cluster, and Redis Cluster DCS instances support cross-AZ deployment.\nYou can specify an AZ for the standby node. When specifying AZs for nodes, use commas (,) to separate AZs.\nChanging this creates a new instance.\n","items":{"type":"string"},"type":"array"},"backupPolicy":{"$ref":"#/types/opentelekomcloud:index%2FDcsInstanceV2BackupPolicy:DcsInstanceV2BackupPolicy","description":"Specifies the backup configuration to be used with the instance.\nThe structure is described below.\n\n> **NOTE:** This parameter is not supported when the instance type is single.\n"},"bandwidthInfos":{"description":"Indicates the bandwidth information of the instance.\nThe<span pulumi-lang-nodejs=\" bandwidthInfo \" pulumi-lang-dotnet=\" BandwidthInfo \" pulumi-lang-go=\" bandwidthInfo \" pulumi-lang-python=\" bandwidth_info \" pulumi-lang-yaml=\" bandwidthInfo \" pulumi-lang-java=\" bandwidthInfo \"> bandwidth_info </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDcsInstanceV2BandwidthInfo:DcsInstanceV2BandwidthInfo"},"type":"array"},"cacheMode":{"description":"Indicates the instance type. The value can be **single**, **ha**, **cluster** or **proxy**.\n","type":"string"},"capacity":{"description":"Specifies the cache capacity. Unit: GB.\n","type":"number"},"cpuType":{"description":"Indicates the CPU type of the instance. The value can be **x86_64** or **aarch64**.\n","type":"string"},"createdAt":{"description":"Indicates the time when the instance is created, in RFC3339 format.\n","type":"string"},"dcsInstanceV2Id":{"description":"A resource ID in UUID format.\n","type":"string"},"deletedNodes":{"description":"Specifies the ID of the replica to delete. This parameter is mandatory when\nyou delete replicas of a master/standby DCS Redis 4.0 or 5.0 instance. Currently, only one replica can be deleted\nat a time.\n","items":{"type":"string"},"type":"array"},"description":{"description":"Specifies the description of an instance.\nIt is a string that contains a maximum of 1024 characters.\n","type":"string"},"domainName":{"description":"Domain name of the instance. Usually, we use domain name and port to connect to the DCS instances.\n","type":"string"},"enableWhitelist":{"description":"Enable or disable the IP address whitelists. Defaults to true.\nIf the whitelist is disabled, all IP addresses connected to the VPC can access the instance.\n","type":"boolean"},"engine":{"description":"Specifies a cache engine. Options: *Redis* and *Memcached*.\nChanging this creates a new instance.\n","type":"string"},"engineVersion":{"description":"Specifies the version of a cache engine.\nIt is mandatory when the engine is *Redis*, the value can be 4.0, 5.0, 6.0 or 7.0.\nChanging this creates a new instance.\n","type":"string"},"flavor":{"description":"The flavor of the cache instance, which including the total memory, available memory,\nmaximum number of connections allowed, maximum/assured bandwidth and reference performance.\nIt also includes the modes of Redis instances. You can query the *flavor* as follows:\n+ Query flavors\nin [DCS Instance Specifications](https://docs.otc.t-systems.com/distributed-cache-service/umn/service_overview/dcs_instance_specifications/index.html)\n+ Log in to the DCS console, click *Create DCS Instance*, and find the corresponding instance specification.\n","type":"string"},"launchedAt":{"description":"Indicates the time when the instance is started, in RFC3339 format.\n","type":"string"},"maintainBegin":{"description":"Time at which the maintenance time window starts. Defaults to **02:00:00**.\n+ The start time and end time of a maintenance time window must indicate the time segment of a supported maintenance\ntime window.\n+ The start time must be on the hour, such as **18:00:00**.\n+ If parameter <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> is left blank, parameter <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> is also blank.\nIn this case, the system automatically allocates the default start time **02:00:00**.\n","type":"string"},"maintainEnd":{"description":"Time at which the maintenance time window ends. Defaults to **06:00:00**.\n+ The start time and end time of a maintenance time window must indicate the time segment of a supported maintenance\ntime window.\n+ The end time is one hour later than the start time. For example, if the start time is **18:00:00**, the end time is\n**19:00:00**.\n+ If parameter <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> is left blank, parameter <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> is also blank.\nIn this case, the system automatically allocates the default end time **06:00:00**.\n\n> **NOTE:** Parameters <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> and <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be set in pairs.\n","type":"string"},"maxMemory":{"description":"Total memory size. Unit: MB.\n","type":"number"},"name":{"description":"Specifies the name of an instance.\nThe name must be 4 to 64 characters and start with a letter.\nOnly chinese, letters (case-insensitive), digits, underscores (_) ,and hyphens (-) are allowed.\n","type":"string"},"parameters":{"description":"Specify an array of one or more parameters to be set to the DCS instance after\nlaunched. You can check on console to see which parameters supported.\nThe parameters structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDcsInstanceV2Parameter:DcsInstanceV2Parameter"},"type":"array"},"password":{"description":"Specifies the password of a DCS instance.\nThe password of a DCS instance must meet the following complexity requirements:\n+ Must be a string of 8 to 32 bits in length.\n+ Must contain three combinations of the following four characters: Lower case letters, uppercase letter, digital,\nSpecial characters include (`~!@#$^&*()-_=+\\\\|{}:,<.>/?).\n+ The new password cannot be the same as the old password.\n","secret":true,"type":"string"},"port":{"description":"Port customization, which is supported only by Redis 4.0 and Redis 5.0 instances.\nRedis instance defaults to 6379. Memcached instance does not use this argument.\n","type":"number"},"privateIp":{"description":"The IP address of the DCS instance,\nwhich can only be the currently available IP address the selected subnet.\nYou can specify an available IP for the Redis instance (except for the Redis Cluster type).\nIf omitted, the system will automatically allocate an available IP address to the Redis instance.\nChanging this creates a new instance resource.\n","type":"string"},"productType":{"description":"Indicates the product type of the instance. The value can be: **generic** or **enterprise**.\n","type":"string"},"readonlyDomainName":{"description":"Indicates the read-only domain name of the instance. This parameter is available\nonly for master/standby instances.\n","type":"string"},"region":{"description":"Indicates the region in which DCS instance resource is created.\n","type":"string"},"renameCommands":{"additionalProperties":{"type":"string"},"description":"Critical command renaming, which is supported only by Redis 4.0 and\nRedis 5.0 instances but not by Redis 3.0 instance.\nThe valid commands that can be renamed are: **command**, **keys**, **flushdb**, **flushall** and **hgetall**.\n","type":"object"},"replicaCount":{"description":"Indicates the number of replicas in the instance.\n","type":"number"},"reservedIps":{"description":"Specifies IP addresses to retain. Mandatory during cluster scale-in. If this\nparameter is not set, the system randomly deletes unnecessary shards.\n","items":{"type":"string"},"type":"array"},"securityGroupId":{"description":"The ID of the security group which the instance belongs to.\nThis parameter is mandatory for Memcached and Redis 3.0 version.\n","type":"string"},"securityGroupName":{"description":"The name of security group which the instance belongs to.\n","type":"string"},"shardingCount":{"description":"Indicates the number of shards in a cluster instance.\n","type":"number"},"sslEnable":{"description":"Specifies whether to enable the SSL. Value options: **true**, **false**.\n","type":"boolean"},"status":{"description":"Cache instance status. The valid values are as follows:\n+ `RUNNING`: The instance is running properly.\nOnly instances in the Running state can provide in-memory cache service.\n+ `ERROR`: The instance is not running properly.\n+ `RESTARTING`: The instance is being restarted.\n+ `FROZEN`: The instance has been frozen due to low balance.\nYou can unfreeze the instance by recharging your account in My Order.\n+ `EXTENDING`: The instance is being scaled up.\n+ `RESTORING`: The instance data is being restored.\n+ `FLUSHING`: The DCS instance is being cleared.\n","type":"string"},"subnetCidr":{"description":"Indicates the subnet segment.\n","type":"string"},"subnetId":{"description":"The ID of subnet (Network ID) which the instance belongs to.\nChanging this creates a new instance resource.\n","type":"string"},"subnetName":{"description":"The name of subnet which the instance belongs to.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The key/value pairs to associate with the dcs instance.\n","type":"object"},"templateId":{"description":"The Parameter Template ID.\nChanging this creates a new instance resource.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDcsInstanceV2Timeouts:DcsInstanceV2Timeouts"},"transparentClientIpEnable":{"description":"Indicates whether client IP pass-through is enabled.\n","type":"boolean"},"usedMemory":{"description":"Size of the used memory. Unit: MB.\n","type":"number"},"userId":{"type":"string"},"userName":{"type":"string"},"vpcId":{"description":"The ID of VPC which the instance belongs to.\nChanging this creates a new instance resource.\n","type":"string"},"vpcName":{"description":"The name of VPC which the instance belongs to.\n","type":"string"},"whitelists":{"description":"Specifies the IP addresses which can access the instance.\nThis parameter is valid for Redis 4.0 and 5.0 versions. The structure is described below. Required if <span pulumi-lang-nodejs=\"`enableWhitelist`\" pulumi-lang-dotnet=\"`EnableWhitelist`\" pulumi-lang-go=\"`enableWhitelist`\" pulumi-lang-python=\"`enable_whitelist`\" pulumi-lang-yaml=\"`enableWhitelist`\" pulumi-lang-java=\"`enableWhitelist`\">`enable_whitelist`</span> is used.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDcsInstanceV2Whitelist:DcsInstanceV2Whitelist"},"type":"array"}},"type":"object"},"type":"object"},"opentelekomcloud:index/ddmInstanceV1:DdmInstanceV1":{"description":"Up-to-date reference of API arguments for DDM instance you can get at\n[documentation portal](https://docs.otc.t-systems.com/distributed-database-middleware/api-ref/apis_recommended/ddm_instances)\n\nManages DDM instance resource within OpenTelekomCloud\n\n## Example Usage\n\n### Creating A Basic DDM Instance With 2 Nodes\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst flavorId = config.requireObject<any>(\"flavorId\");\nconst engineId = config.requireObject<any>(\"engineId\");\nconst vpcId = config.requireObject<any>(\"vpcId\");\nconst subnetId = config.requireObject<any>(\"subnetId\");\nconst securityGroupId = config.requireObject<any>(\"securityGroupId\");\nconst instance1 = new opentelekomcloud.DdmInstanceV1(\"instance_1\", {\n    name: \"ddm-instance\",\n    availabilityZones: [\n        \"eu-de-01\",\n        \"eu-de-02\",\n        \"eu-de-03\",\n    ],\n    flavorId: flavorId,\n    nodeNum: 2,\n    engineId: engineId,\n    vpcId: vpcId,\n    subnetId: subnetId,\n    securityGroupId: securityGroup.id,\n    purgeRdsOnDelete: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nflavor_id = config.require_object(\"flavorId\")\nengine_id = config.require_object(\"engineId\")\nvpc_id = config.require_object(\"vpcId\")\nsubnet_id = config.require_object(\"subnetId\")\nsecurity_group_id = config.require_object(\"securityGroupId\")\ninstance1 = opentelekomcloud.DdmInstanceV1(\"instance_1\",\n    name=\"ddm-instance\",\n    availability_zones=[\n        \"eu-de-01\",\n        \"eu-de-02\",\n        \"eu-de-03\",\n    ],\n    flavor_id=flavor_id,\n    node_num=2,\n    engine_id=engine_id,\n    vpc_id=vpc_id,\n    subnet_id=subnet_id,\n    security_group_id=security_group[\"id\"],\n    purge_rds_on_delete=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var flavorId = config.RequireObject<dynamic>(\"flavorId\");\n    var engineId = config.RequireObject<dynamic>(\"engineId\");\n    var vpcId = config.RequireObject<dynamic>(\"vpcId\");\n    var subnetId = config.RequireObject<dynamic>(\"subnetId\");\n    var securityGroupId = config.RequireObject<dynamic>(\"securityGroupId\");\n    var instance1 = new Opentelekomcloud.DdmInstanceV1(\"instance_1\", new()\n    {\n        Name = \"ddm-instance\",\n        AvailabilityZones = new[]\n        {\n            \"eu-de-01\",\n            \"eu-de-02\",\n            \"eu-de-03\",\n        },\n        FlavorId = flavorId,\n        NodeNum = 2,\n        EngineId = engineId,\n        VpcId = vpcId,\n        SubnetId = subnetId,\n        SecurityGroupId = securityGroup.Id,\n        PurgeRdsOnDelete = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tflavorId := cfg.RequireObject(\"flavorId\")\n\t\tengineId := cfg.RequireObject(\"engineId\")\n\t\tvpcId := cfg.RequireObject(\"vpcId\")\n\t\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\tsecurityGroupId := cfg.RequireObject(\"securityGroupId\")\n\t\t_, err := opentelekomcloud.NewDdmInstanceV1(ctx, \"instance_1\", &opentelekomcloud.DdmInstanceV1Args{\n\t\t\tName: pulumi.String(\"ddm-instance\"),\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"eu-de-01\"),\n\t\t\t\tpulumi.String(\"eu-de-02\"),\n\t\t\t\tpulumi.String(\"eu-de-03\"),\n\t\t\t},\n\t\t\tFlavorId:         pulumi.Any(flavorId),\n\t\t\tNodeNum:          pulumi.Float64(2),\n\t\t\tEngineId:         pulumi.Any(engineId),\n\t\t\tVpcId:            pulumi.Any(vpcId),\n\t\t\tSubnetId:         pulumi.Any(subnetId),\n\t\t\tSecurityGroupId:  pulumi.Any(securityGroup.Id),\n\t\t\tPurgeRdsOnDelete: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.DdmInstanceV1;\nimport com.pulumi.opentelekomcloud.DdmInstanceV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var flavorId = config.get(\"flavorId\");\n        final var engineId = config.get(\"engineId\");\n        final var vpcId = config.get(\"vpcId\");\n        final var subnetId = config.get(\"subnetId\");\n        final var securityGroupId = config.get(\"securityGroupId\");\n        var instance1 = new DdmInstanceV1(\"instance1\", DdmInstanceV1Args.builder()\n            .name(\"ddm-instance\")\n            .availabilityZones(            \n                \"eu-de-01\",\n                \"eu-de-02\",\n                \"eu-de-03\")\n            .flavorId(flavorId)\n            .nodeNum(2.0)\n            .engineId(engineId)\n            .vpcId(vpcId)\n            .subnetId(subnetId)\n            .securityGroupId(securityGroup.id())\n            .purgeRdsOnDelete(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  flavorId:\n    type: dynamic\n  engineId:\n    type: dynamic\n  vpcId:\n    type: dynamic\n  subnetId:\n    type: dynamic\n  securityGroupId:\n    type: dynamic\nresources:\n  instance1:\n    type: opentelekomcloud:DdmInstanceV1\n    name: instance_1\n    properties:\n      name: ddm-instance\n      availabilityZones:\n        - eu-de-01\n        - eu-de-02\n        - eu-de-03\n      flavorId: ${flavorId}\n      nodeNum: 2\n      engineId: ${engineId}\n      vpcId: ${vpcId}\n      subnetId: ${subnetId}\n      securityGroupId: ${securityGroup.id}\n      purgeRdsOnDelete: true\n```\n<!--End PulumiCodeChooser -->\n\n\n### Creating A DDM Instance With Custom Credentials\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst flavorId = config.requireObject<any>(\"flavorId\");\nconst engineId = config.requireObject<any>(\"engineId\");\nconst vpcId = config.requireObject<any>(\"vpcId\");\nconst subnetId = config.requireObject<any>(\"subnetId\");\nconst securityGroupId = config.requireObject<any>(\"securityGroupId\");\nconst username = config.requireObject<any>(\"username\");\nconst password = config.requireObject<any>(\"password\");\nconst instance1 = new opentelekomcloud.DdmInstanceV1(\"instance_1\", {\n    name: \"ddm-instance\",\n    availabilityZones: [\n        \"eu-de-01\",\n        \"eu-de-02\",\n        \"eu-de-03\",\n    ],\n    flavorId: flavorId,\n    nodeNum: 2,\n    engineId: engineId,\n    vpcId: vpcId,\n    subnetId: subnetId,\n    securityGroupId: securityGroup.id,\n    purgeRdsOnDelete: true,\n    username: username,\n    password: password,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nflavor_id = config.require_object(\"flavorId\")\nengine_id = config.require_object(\"engineId\")\nvpc_id = config.require_object(\"vpcId\")\nsubnet_id = config.require_object(\"subnetId\")\nsecurity_group_id = config.require_object(\"securityGroupId\")\nusername = config.require_object(\"username\")\npassword = config.require_object(\"password\")\ninstance1 = opentelekomcloud.DdmInstanceV1(\"instance_1\",\n    name=\"ddm-instance\",\n    availability_zones=[\n        \"eu-de-01\",\n        \"eu-de-02\",\n        \"eu-de-03\",\n    ],\n    flavor_id=flavor_id,\n    node_num=2,\n    engine_id=engine_id,\n    vpc_id=vpc_id,\n    subnet_id=subnet_id,\n    security_group_id=security_group[\"id\"],\n    purge_rds_on_delete=True,\n    username=username,\n    password=password)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var flavorId = config.RequireObject<dynamic>(\"flavorId\");\n    var engineId = config.RequireObject<dynamic>(\"engineId\");\n    var vpcId = config.RequireObject<dynamic>(\"vpcId\");\n    var subnetId = config.RequireObject<dynamic>(\"subnetId\");\n    var securityGroupId = config.RequireObject<dynamic>(\"securityGroupId\");\n    var username = config.RequireObject<dynamic>(\"username\");\n    var password = config.RequireObject<dynamic>(\"password\");\n    var instance1 = new Opentelekomcloud.DdmInstanceV1(\"instance_1\", new()\n    {\n        Name = \"ddm-instance\",\n        AvailabilityZones = new[]\n        {\n            \"eu-de-01\",\n            \"eu-de-02\",\n            \"eu-de-03\",\n        },\n        FlavorId = flavorId,\n        NodeNum = 2,\n        EngineId = engineId,\n        VpcId = vpcId,\n        SubnetId = subnetId,\n        SecurityGroupId = securityGroup.Id,\n        PurgeRdsOnDelete = true,\n        Username = username,\n        Password = password,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tflavorId := cfg.RequireObject(\"flavorId\")\n\t\tengineId := cfg.RequireObject(\"engineId\")\n\t\tvpcId := cfg.RequireObject(\"vpcId\")\n\t\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\tsecurityGroupId := cfg.RequireObject(\"securityGroupId\")\n\t\tusername := cfg.RequireObject(\"username\")\n\t\tpassword := cfg.RequireObject(\"password\")\n\t\t_, err := opentelekomcloud.NewDdmInstanceV1(ctx, \"instance_1\", &opentelekomcloud.DdmInstanceV1Args{\n\t\t\tName: pulumi.String(\"ddm-instance\"),\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"eu-de-01\"),\n\t\t\t\tpulumi.String(\"eu-de-02\"),\n\t\t\t\tpulumi.String(\"eu-de-03\"),\n\t\t\t},\n\t\t\tFlavorId:         pulumi.Any(flavorId),\n\t\t\tNodeNum:          pulumi.Float64(2),\n\t\t\tEngineId:         pulumi.Any(engineId),\n\t\t\tVpcId:            pulumi.Any(vpcId),\n\t\t\tSubnetId:         pulumi.Any(subnetId),\n\t\t\tSecurityGroupId:  pulumi.Any(securityGroup.Id),\n\t\t\tPurgeRdsOnDelete: pulumi.Bool(true),\n\t\t\tUsername:         pulumi.Any(username),\n\t\t\tPassword:         pulumi.Any(password),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.DdmInstanceV1;\nimport com.pulumi.opentelekomcloud.DdmInstanceV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var flavorId = config.get(\"flavorId\");\n        final var engineId = config.get(\"engineId\");\n        final var vpcId = config.get(\"vpcId\");\n        final var subnetId = config.get(\"subnetId\");\n        final var securityGroupId = config.get(\"securityGroupId\");\n        final var username = config.get(\"username\");\n        final var password = config.get(\"password\");\n        var instance1 = new DdmInstanceV1(\"instance1\", DdmInstanceV1Args.builder()\n            .name(\"ddm-instance\")\n            .availabilityZones(            \n                \"eu-de-01\",\n                \"eu-de-02\",\n                \"eu-de-03\")\n            .flavorId(flavorId)\n            .nodeNum(2.0)\n            .engineId(engineId)\n            .vpcId(vpcId)\n            .subnetId(subnetId)\n            .securityGroupId(securityGroup.id())\n            .purgeRdsOnDelete(true)\n            .username(username)\n            .password(password)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  flavorId:\n    type: dynamic\n  engineId:\n    type: dynamic\n  vpcId:\n    type: dynamic\n  subnetId:\n    type: dynamic\n  securityGroupId:\n    type: dynamic\n  username:\n    type: dynamic\n  password:\n    type: dynamic\nresources:\n  instance1:\n    type: opentelekomcloud:DdmInstanceV1\n    name: instance_1\n    properties:\n      name: ddm-instance\n      availabilityZones:\n        - eu-de-01\n        - eu-de-02\n        - eu-de-03\n      flavorId: ${flavorId}\n      nodeNum: 2\n      engineId: ${engineId}\n      vpcId: ${vpcId}\n      subnetId: ${subnetId}\n      securityGroupId: ${securityGroup.id}\n      purgeRdsOnDelete: true\n      username: ${username}\n      password: ${password}\n```\n<!--End PulumiCodeChooser -->\n\n\n### Creating A DDM Instance With Custom Time Zone\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst flavorId = config.requireObject<any>(\"flavorId\");\nconst engineId = config.requireObject<any>(\"engineId\");\nconst vpcId = config.requireObject<any>(\"vpcId\");\nconst subnetId = config.requireObject<any>(\"subnetId\");\nconst securityGroupId = config.requireObject<any>(\"securityGroupId\");\nconst instance1 = new opentelekomcloud.DdmInstanceV1(\"instance_1\", {\n    name: \"ddm-instance\",\n    availabilityZones: [\n        \"eu-de-01\",\n        \"eu-de-02\",\n        \"eu-de-03\",\n    ],\n    flavorId: flavorId,\n    nodeNum: 2,\n    engineId: engineId,\n    vpcId: vpcId,\n    subnetId: subnetId,\n    securityGroupId: securityGroup.id,\n    purgeRdsOnDelete: true,\n    timeZone: \"UTC+01:00\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nflavor_id = config.require_object(\"flavorId\")\nengine_id = config.require_object(\"engineId\")\nvpc_id = config.require_object(\"vpcId\")\nsubnet_id = config.require_object(\"subnetId\")\nsecurity_group_id = config.require_object(\"securityGroupId\")\ninstance1 = opentelekomcloud.DdmInstanceV1(\"instance_1\",\n    name=\"ddm-instance\",\n    availability_zones=[\n        \"eu-de-01\",\n        \"eu-de-02\",\n        \"eu-de-03\",\n    ],\n    flavor_id=flavor_id,\n    node_num=2,\n    engine_id=engine_id,\n    vpc_id=vpc_id,\n    subnet_id=subnet_id,\n    security_group_id=security_group[\"id\"],\n    purge_rds_on_delete=True,\n    time_zone=\"UTC+01:00\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var flavorId = config.RequireObject<dynamic>(\"flavorId\");\n    var engineId = config.RequireObject<dynamic>(\"engineId\");\n    var vpcId = config.RequireObject<dynamic>(\"vpcId\");\n    var subnetId = config.RequireObject<dynamic>(\"subnetId\");\n    var securityGroupId = config.RequireObject<dynamic>(\"securityGroupId\");\n    var instance1 = new Opentelekomcloud.DdmInstanceV1(\"instance_1\", new()\n    {\n        Name = \"ddm-instance\",\n        AvailabilityZones = new[]\n        {\n            \"eu-de-01\",\n            \"eu-de-02\",\n            \"eu-de-03\",\n        },\n        FlavorId = flavorId,\n        NodeNum = 2,\n        EngineId = engineId,\n        VpcId = vpcId,\n        SubnetId = subnetId,\n        SecurityGroupId = securityGroup.Id,\n        PurgeRdsOnDelete = true,\n        TimeZone = \"UTC+01:00\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tflavorId := cfg.RequireObject(\"flavorId\")\n\t\tengineId := cfg.RequireObject(\"engineId\")\n\t\tvpcId := cfg.RequireObject(\"vpcId\")\n\t\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\tsecurityGroupId := cfg.RequireObject(\"securityGroupId\")\n\t\t_, err := opentelekomcloud.NewDdmInstanceV1(ctx, \"instance_1\", &opentelekomcloud.DdmInstanceV1Args{\n\t\t\tName: pulumi.String(\"ddm-instance\"),\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"eu-de-01\"),\n\t\t\t\tpulumi.String(\"eu-de-02\"),\n\t\t\t\tpulumi.String(\"eu-de-03\"),\n\t\t\t},\n\t\t\tFlavorId:         pulumi.Any(flavorId),\n\t\t\tNodeNum:          pulumi.Float64(2),\n\t\t\tEngineId:         pulumi.Any(engineId),\n\t\t\tVpcId:            pulumi.Any(vpcId),\n\t\t\tSubnetId:         pulumi.Any(subnetId),\n\t\t\tSecurityGroupId:  pulumi.Any(securityGroup.Id),\n\t\t\tPurgeRdsOnDelete: pulumi.Bool(true),\n\t\t\tTimeZone:         pulumi.String(\"UTC+01:00\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.DdmInstanceV1;\nimport com.pulumi.opentelekomcloud.DdmInstanceV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var flavorId = config.get(\"flavorId\");\n        final var engineId = config.get(\"engineId\");\n        final var vpcId = config.get(\"vpcId\");\n        final var subnetId = config.get(\"subnetId\");\n        final var securityGroupId = config.get(\"securityGroupId\");\n        var instance1 = new DdmInstanceV1(\"instance1\", DdmInstanceV1Args.builder()\n            .name(\"ddm-instance\")\n            .availabilityZones(            \n                \"eu-de-01\",\n                \"eu-de-02\",\n                \"eu-de-03\")\n            .flavorId(flavorId)\n            .nodeNum(2.0)\n            .engineId(engineId)\n            .vpcId(vpcId)\n            .subnetId(subnetId)\n            .securityGroupId(securityGroup.id())\n            .purgeRdsOnDelete(true)\n            .timeZone(\"UTC+01:00\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  flavorId:\n    type: dynamic\n  engineId:\n    type: dynamic\n  vpcId:\n    type: dynamic\n  subnetId:\n    type: dynamic\n  securityGroupId:\n    type: dynamic\nresources:\n  instance1:\n    type: opentelekomcloud:DdmInstanceV1\n    name: instance_1\n    properties:\n      name: ddm-instance\n      availabilityZones:\n        - eu-de-01\n        - eu-de-02\n        - eu-de-03\n      flavorId: ${flavorId}\n      nodeNum: 2\n      engineId: ${engineId}\n      vpcId: ${vpcId}\n      subnetId: ${subnetId}\n      securityGroupId: ${securityGroup.id}\n      purgeRdsOnDelete: true\n      timeZone: UTC+01:00\n```\n<!--End PulumiCodeChooser -->\n\n## Notes\n\nBut due to some attributes missing from the API response, it's required to ignore changes as below:\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst instance1 = new opentelekomcloud.DdmInstanceV1(\"instance_1\", {});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ninstance1 = opentelekomcloud.DdmInstanceV1(\"instance_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var instance1 = new Opentelekomcloud.DdmInstanceV1(\"instance_1\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewDdmInstanceV1(ctx, \"instance_1\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.DdmInstanceV1;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var instance1 = new DdmInstanceV1(\"instance1\");\n\n    }\n}\n```\n```yaml\nresources:\n  instance1:\n    type: opentelekomcloud:DdmInstanceV1\n    name: instance_1\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nDDMv1 Instance can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/ddmInstanceV1:DdmInstanceV1 instance_1 c1851195-cdcb-4d23-96cb-032e6a3ee667\n```\n\n","inputProperties":{"availabilityZones":{"description":"Specifies the list of availability zones.\n","items":{"type":"string"},"type":"array"},"ddmInstanceV1Id":{"type":"string"},"engineId":{"description":"Specifies the Engine ID of the instance.\n","type":"string"},"flavorId":{"description":"Specifies the flavor ID of the instance nodes.\n","type":"string"},"name":{"description":"Specifies the DDM instance name. The DDM instance name of the same\ntype is unique in the same tenant. It can be  4 to 64 characters long. It must start with a letter and it can only contain etters, digits, and hyphens (-).\n","type":"string"},"nodeNum":{"description":"Specifies the disk encryption ID of the instance.\n","type":"number"},"paramGroupId":{"description":"Specifies the parameters group ID.\n","type":"string"},"password":{"description":"Specifies the Administrator password of the DDM instance. it can be 8 to 32 characters long. It must be a combination of uppercase letters, lowercase letters, digits, and the following special characters: `~ ! @ # % ^ * - _ = + ?`. It must be a strong password to improve security and prevent security risks such as brute force cracking.\n","secret":true,"type":"string"},"purgeRdsOnDelete":{"description":"Specifies whether data stored on the associated DB instances is deleted. The value can be: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> (default).\n","type":"boolean"},"securityGroupId":{"description":"Specifies the security group ID of the DDM instance.\n","type":"string"},"subnetId":{"description":"Specifies the subnet Network ID.\n","type":"string"},"timeZone":{"description":"Specifies the timezone. Valid formats are `UTC+12:00`, `UTC+11:00`, ... ,`UTC+01:00`, `UTC`, `UTC-01:00`, ... , `UTC-11:00`, `UTC-12:00`\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDdmInstanceV1Timeouts:DdmInstanceV1Timeouts"},"username":{"description":"Specifies the Administrator username of the DDM instance. It can be 1 to 32 characters long and can contain letters, digits, and underscores (_). It must start with a letter.\n","secret":true,"type":"string"},"vpcId":{"description":"Specifies the VPC ID.\n","type":"string"}},"properties":{"accessIp":{"type":"string"},"accessPort":{"description":"Indicates the DDM access port.\n","type":"string"},"availabilityZone":{"description":"Indicates the availability zone of DDM instance.\n","type":"string"},"availabilityZones":{"description":"Specifies the list of availability zones.\n","items":{"type":"string"},"type":"array"},"createdAt":{"description":"Indicates the creation time.\n","type":"string"},"ddmInstanceV1Id":{"type":"string"},"engineId":{"description":"Specifies the Engine ID of the instance.\n","type":"string"},"flavorId":{"description":"Specifies the flavor ID of the instance nodes.\n","type":"string"},"name":{"description":"Specifies the DDM instance name. The DDM instance name of the same\ntype is unique in the same tenant. It can be  4 to 64 characters long. It must start with a letter and it can only contain etters, digits, and hyphens (-).\n","type":"string"},"nodeNum":{"description":"Specifies the disk encryption ID of the instance.\n","type":"number"},"nodeStatus":{"description":"Indicates the DDM nodes status.\n","type":"string"},"nodes":{"description":"Indicates the instance nodes information. Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDdmInstanceV1Node:DdmInstanceV1Node"},"type":"array"},"paramGroupId":{"description":"Specifies the parameters group ID.\n","type":"string"},"password":{"description":"Specifies the Administrator password of the DDM instance. it can be 8 to 32 characters long. It must be a combination of uppercase letters, lowercase letters, digits, and the following special characters: `~ ! @ # % ^ * - _ = + ?`. It must be a strong password to improve security and prevent security risks such as brute force cracking.\n","secret":true,"type":"string"},"purgeRdsOnDelete":{"description":"Specifies whether data stored on the associated DB instances is deleted. The value can be: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> (default).\n","type":"boolean"},"region":{"description":"The region of the DDM instance.\n","type":"string"},"securityGroupId":{"description":"Specifies the security group ID of the DDM instance.\n","type":"string"},"status":{"description":"Indicates the node status.\n","type":"string"},"subnetId":{"description":"Specifies the subnet Network ID.\n","type":"string"},"timeZone":{"description":"Specifies the timezone. Valid formats are `UTC+12:00`, `UTC+11:00`, ... ,`UTC+01:00`, `UTC`, `UTC-01:00`, ... , `UTC-11:00`, `UTC-12:00`\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDdmInstanceV1Timeouts:DdmInstanceV1Timeouts"},"updatedAt":{"description":"Indicates the update time.\n","type":"string"},"username":{"description":"Specifies the Administrator username of the DDM instance. It can be 1 to 32 characters long and can contain letters, digits, and underscores (_). It must start with a letter.\n","secret":true,"type":"string"},"vpcId":{"description":"Specifies the VPC ID.\n","type":"string"}},"required":["accessIp","accessPort","availabilityZone","availabilityZones","createdAt","ddmInstanceV1Id","engineId","flavorId","name","nodeNum","nodeStatus","nodes","region","securityGroupId","status","subnetId","updatedAt","vpcId"],"requiredInputs":["availabilityZones","engineId","flavorId","nodeNum","securityGroupId","subnetId","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering DdmInstanceV1 resources.\n","properties":{"accessIp":{"type":"string"},"accessPort":{"description":"Indicates the DDM access port.\n","type":"string"},"availabilityZone":{"description":"Indicates the availability zone of DDM instance.\n","type":"string"},"availabilityZones":{"description":"Specifies the list of availability zones.\n","items":{"type":"string"},"type":"array"},"createdAt":{"description":"Indicates the creation time.\n","type":"string"},"ddmInstanceV1Id":{"type":"string"},"engineId":{"description":"Specifies the Engine ID of the instance.\n","type":"string"},"flavorId":{"description":"Specifies the flavor ID of the instance nodes.\n","type":"string"},"name":{"description":"Specifies the DDM instance name. The DDM instance name of the same\ntype is unique in the same tenant. It can be  4 to 64 characters long. It must start with a letter and it can only contain etters, digits, and hyphens (-).\n","type":"string"},"nodeNum":{"description":"Specifies the disk encryption ID of the instance.\n","type":"number"},"nodeStatus":{"description":"Indicates the DDM nodes status.\n","type":"string"},"nodes":{"description":"Indicates the instance nodes information. Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDdmInstanceV1Node:DdmInstanceV1Node"},"type":"array"},"paramGroupId":{"description":"Specifies the parameters group ID.\n","type":"string"},"password":{"description":"Specifies the Administrator password of the DDM instance. it can be 8 to 32 characters long. It must be a combination of uppercase letters, lowercase letters, digits, and the following special characters: `~ ! @ # % ^ * - _ = + ?`. It must be a strong password to improve security and prevent security risks such as brute force cracking.\n","secret":true,"type":"string"},"purgeRdsOnDelete":{"description":"Specifies whether data stored on the associated DB instances is deleted. The value can be: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> (default).\n","type":"boolean"},"region":{"description":"The region of the DDM instance.\n","type":"string"},"securityGroupId":{"description":"Specifies the security group ID of the DDM instance.\n","type":"string"},"status":{"description":"Indicates the node status.\n","type":"string"},"subnetId":{"description":"Specifies the subnet Network ID.\n","type":"string"},"timeZone":{"description":"Specifies the timezone. Valid formats are `UTC+12:00`, `UTC+11:00`, ... ,`UTC+01:00`, `UTC`, `UTC-01:00`, ... , `UTC-11:00`, `UTC-12:00`\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDdmInstanceV1Timeouts:DdmInstanceV1Timeouts"},"updatedAt":{"description":"Indicates the update time.\n","type":"string"},"username":{"description":"Specifies the Administrator username of the DDM instance. It can be 1 to 32 characters long and can contain letters, digits, and underscores (_). It must start with a letter.\n","secret":true,"type":"string"},"vpcId":{"description":"Specifies the VPC ID.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/ddmSchemaV1:DdmSchemaV1":{"description":"Up-to-date reference of API arguments for DDM schema you can get at\n[documentation portal](https://docs.otc.t-systems.com/distributed-database-middleware/api-ref/apis_recommended/schemas/)\n\nManages DDM schema resource within OpenTelekomCloud\n\n## Example Usage\n\n### Creating A Basic DDM Schema\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst username = config.requireObject<any>(\"username\");\nconst password = config.requireObject<any>(\"password\");\nconst schema1 = new opentelekomcloud.DdmSchemaV1(\"schema_1\", {\n    name: \"ddm_schema\",\n    instanceId: \"b4cd6aeb0b7445d3bf271457c6941544in09\",\n    shardMode: \"cluster\",\n    shardNumber: 8,\n    shardUnit: 8,\n    rds: [{\n        id: \"55d93e249b77461b81f990fa805db3f3in01\",\n        adminUsername: username,\n        adminPassword: password,\n    }],\n    purgeRdsOnDelete: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nusername = config.require_object(\"username\")\npassword = config.require_object(\"password\")\nschema1 = opentelekomcloud.DdmSchemaV1(\"schema_1\",\n    name=\"ddm_schema\",\n    instance_id=\"b4cd6aeb0b7445d3bf271457c6941544in09\",\n    shard_mode=\"cluster\",\n    shard_number=8,\n    shard_unit=8,\n    rds=[{\n        \"id\": \"55d93e249b77461b81f990fa805db3f3in01\",\n        \"admin_username\": username,\n        \"admin_password\": password,\n    }],\n    purge_rds_on_delete=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var username = config.RequireObject<dynamic>(\"username\");\n    var password = config.RequireObject<dynamic>(\"password\");\n    var schema1 = new Opentelekomcloud.DdmSchemaV1(\"schema_1\", new()\n    {\n        Name = \"ddm_schema\",\n        InstanceId = \"b4cd6aeb0b7445d3bf271457c6941544in09\",\n        ShardMode = \"cluster\",\n        ShardNumber = 8,\n        ShardUnit = 8,\n        Rds = new[]\n        {\n            new Opentelekomcloud.Inputs.DdmSchemaV1RdArgs\n            {\n                Id = \"55d93e249b77461b81f990fa805db3f3in01\",\n                AdminUsername = username,\n                AdminPassword = password,\n            },\n        },\n        PurgeRdsOnDelete = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tusername := cfg.RequireObject(\"username\")\n\t\tpassword := cfg.RequireObject(\"password\")\n\t\t_, err := opentelekomcloud.NewDdmSchemaV1(ctx, \"schema_1\", &opentelekomcloud.DdmSchemaV1Args{\n\t\t\tName:        pulumi.String(\"ddm_schema\"),\n\t\t\tInstanceId:  pulumi.String(\"b4cd6aeb0b7445d3bf271457c6941544in09\"),\n\t\t\tShardMode:   pulumi.String(\"cluster\"),\n\t\t\tShardNumber: pulumi.Float64(8),\n\t\t\tShardUnit:   pulumi.Float64(8),\n\t\t\tRds: opentelekomcloud.DdmSchemaV1RdArray{\n\t\t\t\t&opentelekomcloud.DdmSchemaV1RdArgs{\n\t\t\t\t\tId:            pulumi.String(\"55d93e249b77461b81f990fa805db3f3in01\"),\n\t\t\t\t\tAdminUsername: pulumi.Any(username),\n\t\t\t\t\tAdminPassword: pulumi.Any(password),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPurgeRdsOnDelete: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.DdmSchemaV1;\nimport com.pulumi.opentelekomcloud.DdmSchemaV1Args;\nimport com.pulumi.opentelekomcloud.inputs.DdmSchemaV1RdArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var username = config.get(\"username\");\n        final var password = config.get(\"password\");\n        var schema1 = new DdmSchemaV1(\"schema1\", DdmSchemaV1Args.builder()\n            .name(\"ddm_schema\")\n            .instanceId(\"b4cd6aeb0b7445d3bf271457c6941544in09\")\n            .shardMode(\"cluster\")\n            .shardNumber(8.0)\n            .shardUnit(8.0)\n            .rds(DdmSchemaV1RdArgs.builder()\n                .id(\"55d93e249b77461b81f990fa805db3f3in01\")\n                .adminUsername(username)\n                .adminPassword(password)\n                .build())\n            .purgeRdsOnDelete(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  username:\n    type: dynamic\n  password:\n    type: dynamic\nresources:\n  schema1:\n    type: opentelekomcloud:DdmSchemaV1\n    name: schema_1\n    properties:\n      name: ddm_schema\n      instanceId: b4cd6aeb0b7445d3bf271457c6941544in09\n      shardMode: cluster\n      shardNumber: 8\n      shardUnit: 8\n      rds:\n        - id: 55d93e249b77461b81f990fa805db3f3in01\n          adminUsername: ${username}\n          adminPassword: ${password}\n      purgeRdsOnDelete: true\n```\n<!--End PulumiCodeChooser -->\n\n## Notes\n\nBut due to some attributes missing from the API response, it's required to ignore changes as below:\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst schema1 = new opentelekomcloud.DdmSchemaV1(\"schema_1\", {});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nschema1 = opentelekomcloud.DdmSchemaV1(\"schema_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var schema1 = new Opentelekomcloud.DdmSchemaV1(\"schema_1\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewDdmSchemaV1(ctx, \"schema_1\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.DdmSchemaV1;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var schema1 = new DdmSchemaV1(\"schema1\");\n\n    }\n}\n```\n```yaml\nresources:\n  schema1:\n    type: opentelekomcloud:DdmSchemaV1\n    name: schema_1\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nDDMv1 Instance can be imported using the DDM instance ID, `instance_id` and DDM schema `name`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/ddmSchemaV1:DdmSchemaV1 schema_1 b4cd6aeb0b7445d3bf271457c6941544in09/ddm_schema\n```\n\n","inputProperties":{"ddmSchemaV1Id":{"description":"(String) ID of the RDS instance where the shard is located.\n","type":"string"},"instanceId":{"description":"Specifies the DDM instance ID.\n","type":"string"},"name":{"description":"Specifies the DDM schema name. The DDM instance name of the same\ntype is unique in the same tenant. It can be  2 to 48 characters long. It must start with a letter and it can only contain etters, digits, and underscores (_).\n","type":"string"},"purgeRdsOnDelete":{"description":"Specifies whether data stored on the associated DB instances is deleted. The value can be: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> (default)\n","type":"boolean"},"rds":{"description":"Specifies the rds instance information. The structure is described below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDdmSchemaV1Rd:DdmSchemaV1Rd"},"type":"array"},"shardMode":{"description":"Specifies the sharding mode of the schema. The values for this can be <span pulumi-lang-nodejs=\"`cluster`\" pulumi-lang-dotnet=\"`Cluster`\" pulumi-lang-go=\"`cluster`\" pulumi-lang-python=\"`cluster`\" pulumi-lang-yaml=\"`cluster`\" pulumi-lang-java=\"`cluster`\">`cluster`</span> or <span pulumi-lang-nodejs=\"`single`\" pulumi-lang-dotnet=\"`Single`\" pulumi-lang-go=\"`single`\" pulumi-lang-python=\"`single`\" pulumi-lang-yaml=\"`single`\" pulumi-lang-java=\"`single`\">`single`</span>. Cluster indicates that the schema is in sharded mode. Single indicates that the schema is in unsharded mode.\n","type":"string"},"shardNumber":{"description":"Specifies the number of shards in the same working mode. If <span pulumi-lang-nodejs=\"`shardUnit`\" pulumi-lang-dotnet=\"`ShardUnit`\" pulumi-lang-go=\"`shardUnit`\" pulumi-lang-python=\"`shard_unit`\" pulumi-lang-yaml=\"`shardUnit`\" pulumi-lang-java=\"`shardUnit`\">`shard_unit`</span> is not empty, the value is the **_product of<span pulumi-lang-nodejs=\" shardUnit \" pulumi-lang-dotnet=\" ShardUnit \" pulumi-lang-go=\" shardUnit \" pulumi-lang-python=\" shard_unit \" pulumi-lang-yaml=\" shardUnit \" pulumi-lang-java=\" shardUnit \"> shard_unit </span>multiplied by the associated RDS instances_**. If<span pulumi-lang-nodejs=\" shardUnit \" pulumi-lang-dotnet=\" ShardUnit \" pulumi-lang-go=\" shardUnit \" pulumi-lang-python=\" shard_unit \" pulumi-lang-yaml=\" shardUnit \" pulumi-lang-java=\" shardUnit \"> shard_unit </span>is left blank, the value must be **_greater than the number of associated RDS instances and less than or equal to the product of the associated RDS instances multiplied by 64_**.\n","type":"number"},"shardUnit":{"description":"Specifies the Number of shards per RDS instance. The value is 1 if the schema is unsharded. The value ranges from 1 to 64 if the schema is sharded.\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDdmSchemaV1Timeouts:DdmSchemaV1Timeouts"}},"properties":{"createdAt":{"description":"(uint64) Indicates the creation time.\n","type":"number"},"dataVips":{"description":"(List) Indicates the IP address and port number for connecting to the schema.\n","items":{"type":"string"},"type":"array"},"databases":{"description":"(List) Indicates the Sharding information of the schema. The structure is described below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDdmSchemaV1Database:DdmSchemaV1Database"},"type":"array"},"ddmSchemaV1Id":{"description":"(String) ID of the RDS instance where the shard is located.\n","type":"string"},"instanceId":{"description":"Specifies the DDM instance ID.\n","type":"string"},"name":{"description":"Specifies the DDM schema name. The DDM instance name of the same\ntype is unique in the same tenant. It can be  2 to 48 characters long. It must start with a letter and it can only contain etters, digits, and underscores (_).\n","type":"string"},"purgeRdsOnDelete":{"description":"Specifies whether data stored on the associated DB instances is deleted. The value can be: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> (default)\n","type":"boolean"},"rds":{"description":"Specifies the rds instance information. The structure is described below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDdmSchemaV1Rd:DdmSchemaV1Rd"},"type":"array"},"region":{"description":"The region of the DDM instance.\n","type":"string"},"shardMode":{"description":"Specifies the sharding mode of the schema. The values for this can be <span pulumi-lang-nodejs=\"`cluster`\" pulumi-lang-dotnet=\"`Cluster`\" pulumi-lang-go=\"`cluster`\" pulumi-lang-python=\"`cluster`\" pulumi-lang-yaml=\"`cluster`\" pulumi-lang-java=\"`cluster`\">`cluster`</span> or <span pulumi-lang-nodejs=\"`single`\" pulumi-lang-dotnet=\"`Single`\" pulumi-lang-go=\"`single`\" pulumi-lang-python=\"`single`\" pulumi-lang-yaml=\"`single`\" pulumi-lang-java=\"`single`\">`single`</span>. Cluster indicates that the schema is in sharded mode. Single indicates that the schema is in unsharded mode.\n","type":"string"},"shardNumber":{"description":"Specifies the number of shards in the same working mode. If <span pulumi-lang-nodejs=\"`shardUnit`\" pulumi-lang-dotnet=\"`ShardUnit`\" pulumi-lang-go=\"`shardUnit`\" pulumi-lang-python=\"`shard_unit`\" pulumi-lang-yaml=\"`shardUnit`\" pulumi-lang-java=\"`shardUnit`\">`shard_unit`</span> is not empty, the value is the **_product of<span pulumi-lang-nodejs=\" shardUnit \" pulumi-lang-dotnet=\" ShardUnit \" pulumi-lang-go=\" shardUnit \" pulumi-lang-python=\" shard_unit \" pulumi-lang-yaml=\" shardUnit \" pulumi-lang-java=\" shardUnit \"> shard_unit </span>multiplied by the associated RDS instances_**. If<span pulumi-lang-nodejs=\" shardUnit \" pulumi-lang-dotnet=\" ShardUnit \" pulumi-lang-go=\" shardUnit \" pulumi-lang-python=\" shard_unit \" pulumi-lang-yaml=\" shardUnit \" pulumi-lang-java=\" shardUnit \"> shard_unit </span>is left blank, the value must be **_greater than the number of associated RDS instances and less than or equal to the product of the associated RDS instances multiplied by 64_**.\n","type":"number"},"shardUnit":{"description":"Specifies the Number of shards per RDS instance. The value is 1 if the schema is unsharded. The value ranges from 1 to 64 if the schema is sharded.\n","type":"number"},"status":{"description":"(String) Indicates the shard status.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDdmSchemaV1Timeouts:DdmSchemaV1Timeouts"},"updatedAt":{"description":"(uint64) Indicates the update time.\n","type":"number"},"usedRds":{"description":"(List) Indicates the associated RDS instances. The structure is described below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDdmSchemaV1UsedRd:DdmSchemaV1UsedRd"},"type":"array"}},"required":["createdAt","dataVips","databases","ddmSchemaV1Id","instanceId","name","rds","region","shardMode","shardNumber","status","updatedAt","usedRds"],"requiredInputs":["instanceId","rds","shardMode","shardNumber"],"stateInputs":{"description":"Input properties used for looking up and filtering DdmSchemaV1 resources.\n","properties":{"createdAt":{"description":"(uint64) Indicates the creation time.\n","type":"number"},"dataVips":{"description":"(List) Indicates the IP address and port number for connecting to the schema.\n","items":{"type":"string"},"type":"array"},"databases":{"description":"(List) Indicates the Sharding information of the schema. The structure is described below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDdmSchemaV1Database:DdmSchemaV1Database"},"type":"array"},"ddmSchemaV1Id":{"description":"(String) ID of the RDS instance where the shard is located.\n","type":"string"},"instanceId":{"description":"Specifies the DDM instance ID.\n","type":"string"},"name":{"description":"Specifies the DDM schema name. The DDM instance name of the same\ntype is unique in the same tenant. It can be  2 to 48 characters long. It must start with a letter and it can only contain etters, digits, and underscores (_).\n","type":"string"},"purgeRdsOnDelete":{"description":"Specifies whether data stored on the associated DB instances is deleted. The value can be: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> (default)\n","type":"boolean"},"rds":{"description":"Specifies the rds instance information. The structure is described below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDdmSchemaV1Rd:DdmSchemaV1Rd"},"type":"array"},"region":{"description":"The region of the DDM instance.\n","type":"string"},"shardMode":{"description":"Specifies the sharding mode of the schema. The values for this can be <span pulumi-lang-nodejs=\"`cluster`\" pulumi-lang-dotnet=\"`Cluster`\" pulumi-lang-go=\"`cluster`\" pulumi-lang-python=\"`cluster`\" pulumi-lang-yaml=\"`cluster`\" pulumi-lang-java=\"`cluster`\">`cluster`</span> or <span pulumi-lang-nodejs=\"`single`\" pulumi-lang-dotnet=\"`Single`\" pulumi-lang-go=\"`single`\" pulumi-lang-python=\"`single`\" pulumi-lang-yaml=\"`single`\" pulumi-lang-java=\"`single`\">`single`</span>. Cluster indicates that the schema is in sharded mode. Single indicates that the schema is in unsharded mode.\n","type":"string"},"shardNumber":{"description":"Specifies the number of shards in the same working mode. If <span pulumi-lang-nodejs=\"`shardUnit`\" pulumi-lang-dotnet=\"`ShardUnit`\" pulumi-lang-go=\"`shardUnit`\" pulumi-lang-python=\"`shard_unit`\" pulumi-lang-yaml=\"`shardUnit`\" pulumi-lang-java=\"`shardUnit`\">`shard_unit`</span> is not empty, the value is the **_product of<span pulumi-lang-nodejs=\" shardUnit \" pulumi-lang-dotnet=\" ShardUnit \" pulumi-lang-go=\" shardUnit \" pulumi-lang-python=\" shard_unit \" pulumi-lang-yaml=\" shardUnit \" pulumi-lang-java=\" shardUnit \"> shard_unit </span>multiplied by the associated RDS instances_**. If<span pulumi-lang-nodejs=\" shardUnit \" pulumi-lang-dotnet=\" ShardUnit \" pulumi-lang-go=\" shardUnit \" pulumi-lang-python=\" shard_unit \" pulumi-lang-yaml=\" shardUnit \" pulumi-lang-java=\" shardUnit \"> shard_unit </span>is left blank, the value must be **_greater than the number of associated RDS instances and less than or equal to the product of the associated RDS instances multiplied by 64_**.\n","type":"number"},"shardUnit":{"description":"Specifies the Number of shards per RDS instance. The value is 1 if the schema is unsharded. The value ranges from 1 to 64 if the schema is sharded.\n","type":"number"},"status":{"description":"(String) Indicates the shard status.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDdmSchemaV1Timeouts:DdmSchemaV1Timeouts"},"updatedAt":{"description":"(uint64) Indicates the update time.\n","type":"number"},"usedRds":{"description":"(List) Indicates the associated RDS instances. The structure is described below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDdmSchemaV1UsedRd:DdmSchemaV1UsedRd"},"type":"array"}},"type":"object"},"type":"object"},"opentelekomcloud:index/ddsBackupV3:DdsBackupV3":{"description":"Up-to-date reference of API arguments for DDS instance you can get at\n[documentation portal](https://docs.otc.t-systems.com/document-database-service/api-ref/apis_v3.0_recommended/backup_and_restoration/index.html)\n\nManages a DDS backup resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst name = config.requireObject<any>(\"name\");\nconst backup = new opentelekomcloud.DdsBackupV3(\"backup\", {\n    instanceId: instanceId,\n    name: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nname = config.require_object(\"name\")\nbackup = opentelekomcloud.DdsBackupV3(\"backup\",\n    instance_id=instance_id,\n    name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var name = config.RequireObject<dynamic>(\"name\");\n    var backup = new Opentelekomcloud.DdsBackupV3(\"backup\", new()\n    {\n        InstanceId = instanceId,\n        Name = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tname := cfg.RequireObject(\"name\")\n\t\t_, err := opentelekomcloud.NewDdsBackupV3(ctx, \"backup\", &opentelekomcloud.DdsBackupV3Args{\n\t\t\tInstanceId: pulumi.Any(instanceId),\n\t\t\tName:       pulumi.Any(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.DdsBackupV3;\nimport com.pulumi.opentelekomcloud.DdsBackupV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var name = config.get(\"name\");\n        var backup = new DdsBackupV3(\"backup\", DdsBackupV3Args.builder()\n            .instanceId(instanceId)\n            .name(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  name:\n    type: dynamic\nresources:\n  backup:\n    type: opentelekomcloud:DdsBackupV3\n    properties:\n      instanceId: ${instanceId}\n      name: ${name}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe DDS backup can be imported using the `instance_id` and the `id` separated by a slash, e.g.:\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/ddsBackupV3:DdsBackupV3 backup <instance_id>/<id>\n```\n\n","inputProperties":{"ddsBackupV3Id":{"description":"The resource ID.\n","type":"string"},"description":{"description":"Specifies the manual backup description.\n","type":"string"},"instanceId":{"description":"Specifies the ID of a DDS instance.\n","type":"string"},"name":{"description":"Specifies the manual backup name.\nThe value must be <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span> characters in length and start with a letter (from A to Z or from a to z).\nIt is case-sensitive and can contain only letters, digits (from 0 to 9), hyphens (-), and underscores (_).\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDdsBackupV3Timeouts:DdsBackupV3Timeouts"}},"properties":{"beginTime":{"description":"Indicates the start time of the backup. The format is yyyy-mm-dd hh:mm:ss. The value is in UTC format.\n","type":"string"},"datastores":{"description":"Indicates the database version.\nThe datastore structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDdsBackupV3Datastore:DdsBackupV3Datastore"},"type":"array"},"ddsBackupV3Id":{"description":"The resource ID.\n","type":"string"},"description":{"description":"Specifies the manual backup description.\n","type":"string"},"endTime":{"description":"Indicates the end time of the backup. The format is yyyy-mm-dd hh:mm:ss. The value is in UTC format.\n","type":"string"},"instanceId":{"description":"Specifies the ID of a DDS instance.\n","type":"string"},"instanceName":{"description":"Indicates the name of a DDS instance.\n","type":"string"},"name":{"description":"Specifies the manual backup name.\nThe value must be <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span> characters in length and start with a letter (from A to Z or from a to z).\nIt is case-sensitive and can contain only letters, digits (from 0 to 9), hyphens (-), and underscores (_).\n","type":"string"},"region":{"description":"Indicates the region in which resource was created.\n","type":"string"},"size":{"description":"Indicates the backup size in KB.\n","type":"number"},"status":{"description":"Indicates the backup status. Valid value:\n+ `BUILDING`: Backup in progress\n+ `COMPLETED`: Backup completed\n+ `FAILED`: Backup failed\n+ `DISABLED`: Backup being deleted\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDdsBackupV3Timeouts:DdsBackupV3Timeouts"},"type":{"description":"Indicates the DB engine.\n","type":"string"}},"required":["beginTime","datastores","ddsBackupV3Id","description","endTime","instanceId","instanceName","name","region","size","status","type"],"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering DdsBackupV3 resources.\n","properties":{"beginTime":{"description":"Indicates the start time of the backup. The format is yyyy-mm-dd hh:mm:ss. The value is in UTC format.\n","type":"string"},"datastores":{"description":"Indicates the database version.\nThe datastore structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDdsBackupV3Datastore:DdsBackupV3Datastore"},"type":"array"},"ddsBackupV3Id":{"description":"The resource ID.\n","type":"string"},"description":{"description":"Specifies the manual backup description.\n","type":"string"},"endTime":{"description":"Indicates the end time of the backup. The format is yyyy-mm-dd hh:mm:ss. The value is in UTC format.\n","type":"string"},"instanceId":{"description":"Specifies the ID of a DDS instance.\n","type":"string"},"instanceName":{"description":"Indicates the name of a DDS instance.\n","type":"string"},"name":{"description":"Specifies the manual backup name.\nThe value must be <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span> characters in length and start with a letter (from A to Z or from a to z).\nIt is case-sensitive and can contain only letters, digits (from 0 to 9), hyphens (-), and underscores (_).\n","type":"string"},"region":{"description":"Indicates the region in which resource was created.\n","type":"string"},"size":{"description":"Indicates the backup size in KB.\n","type":"number"},"status":{"description":"Indicates the backup status. Valid value:\n+ `BUILDING`: Backup in progress\n+ `COMPLETED`: Backup completed\n+ `FAILED`: Backup failed\n+ `DISABLED`: Backup being deleted\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDdsBackupV3Timeouts:DdsBackupV3Timeouts"},"type":{"description":"Indicates the DB engine.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/ddsInstanceV3:DdsInstanceV3":{"description":"Up-to-date reference of API arguments for DDS instance you can get at\n[documentation portal](https://docs.otc.t-systems.com/document-database-service/api-ref/apis_v3.0_recommended/db_instance_management)\n\nManages DDS instance resource within OpenTelekomCloud\n\n## Example Usage\n\n### Creating A Replica Set\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst availabilityZone = config.requireObject<any>(\"availabilityZone\");\nconst vpcId = config.requireObject<any>(\"vpcId\");\nconst subnetId = config.requireObject<any>(\"subnetId\");\nconst securityGroupId = config.requireObject<any>(\"securityGroupId\");\nconst instance = new opentelekomcloud.DdsInstanceV3(\"instance\", {\n    name: \"dds-instance\",\n    datastore: {\n        type: \"DDS-Community\",\n        version: \"3.4\",\n        storageEngine: \"wiredTiger\",\n    },\n    maintainBegin: \"02:00\",\n    maintainEnd: \"03:00\",\n    availabilityZone: availabilityZone,\n    vpcId: vpcId,\n    subnetId: subnetId,\n    securityGroupId: securityGroupId,\n    password: \"5ecuredPa55w0rd@\",\n    mode: \"ReplicaSet\",\n    flavors: [{\n        type: \"replica\",\n        num: 1,\n        storage: \"ULTRAHIGH\",\n        size: 30,\n        specCode: \"dds.mongodb.s2.medium.4.repset\",\n    }],\n    tags: {\n        foo: \"bar\",\n        new_test: \"new_test2\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\navailability_zone = config.require_object(\"availabilityZone\")\nvpc_id = config.require_object(\"vpcId\")\nsubnet_id = config.require_object(\"subnetId\")\nsecurity_group_id = config.require_object(\"securityGroupId\")\ninstance = opentelekomcloud.DdsInstanceV3(\"instance\",\n    name=\"dds-instance\",\n    datastore={\n        \"type\": \"DDS-Community\",\n        \"version\": \"3.4\",\n        \"storage_engine\": \"wiredTiger\",\n    },\n    maintain_begin=\"02:00\",\n    maintain_end=\"03:00\",\n    availability_zone=availability_zone,\n    vpc_id=vpc_id,\n    subnet_id=subnet_id,\n    security_group_id=security_group_id,\n    password=\"5ecuredPa55w0rd@\",\n    mode=\"ReplicaSet\",\n    flavors=[{\n        \"type\": \"replica\",\n        \"num\": 1,\n        \"storage\": \"ULTRAHIGH\",\n        \"size\": 30,\n        \"spec_code\": \"dds.mongodb.s2.medium.4.repset\",\n    }],\n    tags={\n        \"foo\": \"bar\",\n        \"new_test\": \"new_test2\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var availabilityZone = config.RequireObject<dynamic>(\"availabilityZone\");\n    var vpcId = config.RequireObject<dynamic>(\"vpcId\");\n    var subnetId = config.RequireObject<dynamic>(\"subnetId\");\n    var securityGroupId = config.RequireObject<dynamic>(\"securityGroupId\");\n    var instance = new Opentelekomcloud.DdsInstanceV3(\"instance\", new()\n    {\n        Name = \"dds-instance\",\n        Datastore = new Opentelekomcloud.Inputs.DdsInstanceV3DatastoreArgs\n        {\n            Type = \"DDS-Community\",\n            Version = \"3.4\",\n            StorageEngine = \"wiredTiger\",\n        },\n        MaintainBegin = \"02:00\",\n        MaintainEnd = \"03:00\",\n        AvailabilityZone = availabilityZone,\n        VpcId = vpcId,\n        SubnetId = subnetId,\n        SecurityGroupId = securityGroupId,\n        Password = \"5ecuredPa55w0rd@\",\n        Mode = \"ReplicaSet\",\n        Flavors = new[]\n        {\n            new Opentelekomcloud.Inputs.DdsInstanceV3FlavorArgs\n            {\n                Type = \"replica\",\n                Num = 1,\n                Storage = \"ULTRAHIGH\",\n                Size = 30,\n                SpecCode = \"dds.mongodb.s2.medium.4.repset\",\n            },\n        },\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"new_test\", \"new_test2\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tavailabilityZone := cfg.RequireObject(\"availabilityZone\")\n\t\tvpcId := cfg.RequireObject(\"vpcId\")\n\t\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\tsecurityGroupId := cfg.RequireObject(\"securityGroupId\")\n\t\t_, err := opentelekomcloud.NewDdsInstanceV3(ctx, \"instance\", &opentelekomcloud.DdsInstanceV3Args{\n\t\t\tName: pulumi.String(\"dds-instance\"),\n\t\t\tDatastore: &opentelekomcloud.DdsInstanceV3DatastoreArgs{\n\t\t\t\tType:          pulumi.String(\"DDS-Community\"),\n\t\t\t\tVersion:       pulumi.String(\"3.4\"),\n\t\t\t\tStorageEngine: pulumi.String(\"wiredTiger\"),\n\t\t\t},\n\t\t\tMaintainBegin:    pulumi.String(\"02:00\"),\n\t\t\tMaintainEnd:      pulumi.String(\"03:00\"),\n\t\t\tAvailabilityZone: pulumi.Any(availabilityZone),\n\t\t\tVpcId:            pulumi.Any(vpcId),\n\t\t\tSubnetId:         pulumi.Any(subnetId),\n\t\t\tSecurityGroupId:  pulumi.Any(securityGroupId),\n\t\t\tPassword:         pulumi.String(\"5ecuredPa55w0rd@\"),\n\t\t\tMode:             pulumi.String(\"ReplicaSet\"),\n\t\t\tFlavors: opentelekomcloud.DdsInstanceV3FlavorArray{\n\t\t\t\t&opentelekomcloud.DdsInstanceV3FlavorArgs{\n\t\t\t\t\tType:     pulumi.String(\"replica\"),\n\t\t\t\t\tNum:      pulumi.Float64(1),\n\t\t\t\t\tStorage:  pulumi.String(\"ULTRAHIGH\"),\n\t\t\t\t\tSize:     pulumi.Float64(30),\n\t\t\t\t\tSpecCode: pulumi.String(\"dds.mongodb.s2.medium.4.repset\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\":      pulumi.String(\"bar\"),\n\t\t\t\t\"new_test\": pulumi.String(\"new_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.opentelekomcloud.DdsInstanceV3;\nimport com.pulumi.opentelekomcloud.DdsInstanceV3Args;\nimport com.pulumi.opentelekomcloud.inputs.DdsInstanceV3DatastoreArgs;\nimport com.pulumi.opentelekomcloud.inputs.DdsInstanceV3FlavorArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] 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\");\n        final var vpcId = config.get(\"vpcId\");\n        final var subnetId = config.get(\"subnetId\");\n        final var securityGroupId = config.get(\"securityGroupId\");\n        var instance = new DdsInstanceV3(\"instance\", DdsInstanceV3Args.builder()\n            .name(\"dds-instance\")\n            .datastore(DdsInstanceV3DatastoreArgs.builder()\n                .type(\"DDS-Community\")\n                .version(\"3.4\")\n                .storageEngine(\"wiredTiger\")\n                .build())\n            .maintainBegin(\"02:00\")\n            .maintainEnd(\"03:00\")\n            .availabilityZone(availabilityZone)\n            .vpcId(vpcId)\n            .subnetId(subnetId)\n            .securityGroupId(securityGroupId)\n            .password(\"5ecuredPa55w0rd@\")\n            .mode(\"ReplicaSet\")\n            .flavors(DdsInstanceV3FlavorArgs.builder()\n                .type(\"replica\")\n                .num(1.0)\n                .storage(\"ULTRAHIGH\")\n                .size(30.0)\n                .specCode(\"dds.mongodb.s2.medium.4.repset\")\n                .build())\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"new_test\", \"new_test2\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  availabilityZone:\n    type: dynamic\n  vpcId:\n    type: dynamic\n  subnetId:\n    type: dynamic\n  securityGroupId:\n    type: dynamic\nresources:\n  instance:\n    type: opentelekomcloud:DdsInstanceV3\n    properties:\n      name: dds-instance\n      datastore:\n        type: DDS-Community\n        version: '3.4'\n        storageEngine: wiredTiger\n      maintainBegin: 02:00\n      maintainEnd: 03:00\n      availabilityZone: ${availabilityZone}\n      vpcId: ${vpcId}\n      subnetId: ${subnetId}\n      securityGroupId: ${securityGroupId}\n      password: 5ecuredPa55w0rd@\n      mode: ReplicaSet\n      flavors:\n        - type: replica\n          num: 1\n          storage: ULTRAHIGH\n          size: 30\n          specCode: dds.mongodb.s2.medium.4.repset\n      tags:\n        foo: bar\n        new_test: new_test2\n```\n<!--End PulumiCodeChooser -->\n\n\n### Creating A Cluster Community Edition\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst availabilityZone = config.requireObject<any>(\"availabilityZone\");\nconst vpcId = config.requireObject<any>(\"vpcId\");\nconst subnetId = config.requireObject<any>(\"subnetId\");\nconst securityGroupId = config.requireObject<any>(\"securityGroupId\");\nconst instance = new opentelekomcloud.DdsInstanceV3(\"instance\", {\n    name: \"dds-instance\",\n    datastore: {\n        type: \"DDS-Community\",\n        version: \"3.4\",\n        storageEngine: \"wiredTiger\",\n    },\n    availabilityZone: availabilityZone,\n    vpcId: vpcId,\n    subnetId: subnetId,\n    securityGroupId: securityGroupId,\n    password: \"5ecuredPa55w0rd2@\",\n    mode: \"Sharding\",\n    flavors: [\n        {\n            type: \"mongos\",\n            num: 2,\n            specCode: \"dds.mongodb.s2.medium.4.mongos\",\n        },\n        {\n            type: \"shard\",\n            num: 2,\n            storage: \"ULTRAHIGH\",\n            size: 20,\n            specCode: \"dds.mongodb.s2.medium.4.shard\",\n        },\n        {\n            type: \"config\",\n            num: 1,\n            storage: \"ULTRAHIGH\",\n            size: 20,\n            specCode: \"dds.mongodb.s2.large.2.config\",\n        },\n    ],\n    backupStrategy: {\n        startTime: \"08:00-09:00\",\n        keepDays: 8,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\navailability_zone = config.require_object(\"availabilityZone\")\nvpc_id = config.require_object(\"vpcId\")\nsubnet_id = config.require_object(\"subnetId\")\nsecurity_group_id = config.require_object(\"securityGroupId\")\ninstance = opentelekomcloud.DdsInstanceV3(\"instance\",\n    name=\"dds-instance\",\n    datastore={\n        \"type\": \"DDS-Community\",\n        \"version\": \"3.4\",\n        \"storage_engine\": \"wiredTiger\",\n    },\n    availability_zone=availability_zone,\n    vpc_id=vpc_id,\n    subnet_id=subnet_id,\n    security_group_id=security_group_id,\n    password=\"5ecuredPa55w0rd2@\",\n    mode=\"Sharding\",\n    flavors=[\n        {\n            \"type\": \"mongos\",\n            \"num\": 2,\n            \"spec_code\": \"dds.mongodb.s2.medium.4.mongos\",\n        },\n        {\n            \"type\": \"shard\",\n            \"num\": 2,\n            \"storage\": \"ULTRAHIGH\",\n            \"size\": 20,\n            \"spec_code\": \"dds.mongodb.s2.medium.4.shard\",\n        },\n        {\n            \"type\": \"config\",\n            \"num\": 1,\n            \"storage\": \"ULTRAHIGH\",\n            \"size\": 20,\n            \"spec_code\": \"dds.mongodb.s2.large.2.config\",\n        },\n    ],\n    backup_strategy={\n        \"start_time\": \"08:00-09:00\",\n        \"keep_days\": 8,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var availabilityZone = config.RequireObject<dynamic>(\"availabilityZone\");\n    var vpcId = config.RequireObject<dynamic>(\"vpcId\");\n    var subnetId = config.RequireObject<dynamic>(\"subnetId\");\n    var securityGroupId = config.RequireObject<dynamic>(\"securityGroupId\");\n    var instance = new Opentelekomcloud.DdsInstanceV3(\"instance\", new()\n    {\n        Name = \"dds-instance\",\n        Datastore = new Opentelekomcloud.Inputs.DdsInstanceV3DatastoreArgs\n        {\n            Type = \"DDS-Community\",\n            Version = \"3.4\",\n            StorageEngine = \"wiredTiger\",\n        },\n        AvailabilityZone = availabilityZone,\n        VpcId = vpcId,\n        SubnetId = subnetId,\n        SecurityGroupId = securityGroupId,\n        Password = \"5ecuredPa55w0rd2@\",\n        Mode = \"Sharding\",\n        Flavors = new[]\n        {\n            new Opentelekomcloud.Inputs.DdsInstanceV3FlavorArgs\n            {\n                Type = \"mongos\",\n                Num = 2,\n                SpecCode = \"dds.mongodb.s2.medium.4.mongos\",\n            },\n            new Opentelekomcloud.Inputs.DdsInstanceV3FlavorArgs\n            {\n                Type = \"shard\",\n                Num = 2,\n                Storage = \"ULTRAHIGH\",\n                Size = 20,\n                SpecCode = \"dds.mongodb.s2.medium.4.shard\",\n            },\n            new Opentelekomcloud.Inputs.DdsInstanceV3FlavorArgs\n            {\n                Type = \"config\",\n                Num = 1,\n                Storage = \"ULTRAHIGH\",\n                Size = 20,\n                SpecCode = \"dds.mongodb.s2.large.2.config\",\n            },\n        },\n        BackupStrategy = new Opentelekomcloud.Inputs.DdsInstanceV3BackupStrategyArgs\n        {\n            StartTime = \"08:00-09:00\",\n            KeepDays = 8,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tavailabilityZone := cfg.RequireObject(\"availabilityZone\")\n\t\tvpcId := cfg.RequireObject(\"vpcId\")\n\t\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\tsecurityGroupId := cfg.RequireObject(\"securityGroupId\")\n\t\t_, err := opentelekomcloud.NewDdsInstanceV3(ctx, \"instance\", &opentelekomcloud.DdsInstanceV3Args{\n\t\t\tName: pulumi.String(\"dds-instance\"),\n\t\t\tDatastore: &opentelekomcloud.DdsInstanceV3DatastoreArgs{\n\t\t\t\tType:          pulumi.String(\"DDS-Community\"),\n\t\t\t\tVersion:       pulumi.String(\"3.4\"),\n\t\t\t\tStorageEngine: pulumi.String(\"wiredTiger\"),\n\t\t\t},\n\t\t\tAvailabilityZone: pulumi.Any(availabilityZone),\n\t\t\tVpcId:            pulumi.Any(vpcId),\n\t\t\tSubnetId:         pulumi.Any(subnetId),\n\t\t\tSecurityGroupId:  pulumi.Any(securityGroupId),\n\t\t\tPassword:         pulumi.String(\"5ecuredPa55w0rd2@\"),\n\t\t\tMode:             pulumi.String(\"Sharding\"),\n\t\t\tFlavors: opentelekomcloud.DdsInstanceV3FlavorArray{\n\t\t\t\t&opentelekomcloud.DdsInstanceV3FlavorArgs{\n\t\t\t\t\tType:     pulumi.String(\"mongos\"),\n\t\t\t\t\tNum:      pulumi.Float64(2),\n\t\t\t\t\tSpecCode: pulumi.String(\"dds.mongodb.s2.medium.4.mongos\"),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.DdsInstanceV3FlavorArgs{\n\t\t\t\t\tType:     pulumi.String(\"shard\"),\n\t\t\t\t\tNum:      pulumi.Float64(2),\n\t\t\t\t\tStorage:  pulumi.String(\"ULTRAHIGH\"),\n\t\t\t\t\tSize:     pulumi.Float64(20),\n\t\t\t\t\tSpecCode: pulumi.String(\"dds.mongodb.s2.medium.4.shard\"),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.DdsInstanceV3FlavorArgs{\n\t\t\t\t\tType:     pulumi.String(\"config\"),\n\t\t\t\t\tNum:      pulumi.Float64(1),\n\t\t\t\t\tStorage:  pulumi.String(\"ULTRAHIGH\"),\n\t\t\t\t\tSize:     pulumi.Float64(20),\n\t\t\t\t\tSpecCode: pulumi.String(\"dds.mongodb.s2.large.2.config\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackupStrategy: &opentelekomcloud.DdsInstanceV3BackupStrategyArgs{\n\t\t\t\tStartTime: pulumi.String(\"08:00-09:00\"),\n\t\t\t\tKeepDays:  pulumi.Float64(8),\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.opentelekomcloud.DdsInstanceV3;\nimport com.pulumi.opentelekomcloud.DdsInstanceV3Args;\nimport com.pulumi.opentelekomcloud.inputs.DdsInstanceV3DatastoreArgs;\nimport com.pulumi.opentelekomcloud.inputs.DdsInstanceV3FlavorArgs;\nimport com.pulumi.opentelekomcloud.inputs.DdsInstanceV3BackupStrategyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] 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\");\n        final var vpcId = config.get(\"vpcId\");\n        final var subnetId = config.get(\"subnetId\");\n        final var securityGroupId = config.get(\"securityGroupId\");\n        var instance = new DdsInstanceV3(\"instance\", DdsInstanceV3Args.builder()\n            .name(\"dds-instance\")\n            .datastore(DdsInstanceV3DatastoreArgs.builder()\n                .type(\"DDS-Community\")\n                .version(\"3.4\")\n                .storageEngine(\"wiredTiger\")\n                .build())\n            .availabilityZone(availabilityZone)\n            .vpcId(vpcId)\n            .subnetId(subnetId)\n            .securityGroupId(securityGroupId)\n            .password(\"5ecuredPa55w0rd2@\")\n            .mode(\"Sharding\")\n            .flavors(            \n                DdsInstanceV3FlavorArgs.builder()\n                    .type(\"mongos\")\n                    .num(2.0)\n                    .specCode(\"dds.mongodb.s2.medium.4.mongos\")\n                    .build(),\n                DdsInstanceV3FlavorArgs.builder()\n                    .type(\"shard\")\n                    .num(2.0)\n                    .storage(\"ULTRAHIGH\")\n                    .size(20.0)\n                    .specCode(\"dds.mongodb.s2.medium.4.shard\")\n                    .build(),\n                DdsInstanceV3FlavorArgs.builder()\n                    .type(\"config\")\n                    .num(1.0)\n                    .storage(\"ULTRAHIGH\")\n                    .size(20.0)\n                    .specCode(\"dds.mongodb.s2.large.2.config\")\n                    .build())\n            .backupStrategy(DdsInstanceV3BackupStrategyArgs.builder()\n                .startTime(\"08:00-09:00\")\n                .keepDays(8.0)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  availabilityZone:\n    type: dynamic\n  vpcId:\n    type: dynamic\n  subnetId:\n    type: dynamic\n  securityGroupId:\n    type: dynamic\nresources:\n  instance:\n    type: opentelekomcloud:DdsInstanceV3\n    properties:\n      name: dds-instance\n      datastore:\n        type: DDS-Community\n        version: '3.4'\n        storageEngine: wiredTiger\n      availabilityZone: ${availabilityZone}\n      vpcId: ${vpcId}\n      subnetId: ${subnetId}\n      securityGroupId: ${securityGroupId}\n      password: 5ecuredPa55w0rd2@\n      mode: Sharding\n      flavors:\n        - type: mongos\n          num: 2\n          specCode: dds.mongodb.s2.medium.4.mongos\n        - type: shard\n          num: 2\n          storage: ULTRAHIGH\n          size: 20\n          specCode: dds.mongodb.s2.medium.4.shard\n        - type: config\n          num: 1\n          storage: ULTRAHIGH\n          size: 20\n          specCode: dds.mongodb.s2.large.2.config\n      backupStrategy:\n        startTime: 08:00-09:00\n        keepDays: '8'\n```\n<!--End PulumiCodeChooser -->\n\n\n### Creating A Single Node Instance\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst availabilityZone = config.requireObject<any>(\"availabilityZone\");\nconst vpcId = config.requireObject<any>(\"vpcId\");\nconst subnetId = config.requireObject<any>(\"subnetId\");\nconst securityGroupId = config.requireObject<any>(\"securityGroupId\");\nconst instance = new opentelekomcloud.DdsInstanceV3(\"instance\", {\n    name: \"dds-instance\",\n    datastore: {\n        type: \"DDS-Community\",\n        version: \"3.4\",\n        storageEngine: \"wiredTiger\",\n    },\n    availabilityZone: availabilityZone,\n    vpcId: vpcId,\n    subnetId: subnetId,\n    securityGroupId: securityGroupId,\n    password: \"5ecuredPa55w0rd@\",\n    mode: \"Single\",\n    flavors: [{\n        type: \"single\",\n        num: 1,\n        storage: \"ULTRAHIGH\",\n        size: 30,\n        specCode: \"dds.mongodb.s2.medium.4.single\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\navailability_zone = config.require_object(\"availabilityZone\")\nvpc_id = config.require_object(\"vpcId\")\nsubnet_id = config.require_object(\"subnetId\")\nsecurity_group_id = config.require_object(\"securityGroupId\")\ninstance = opentelekomcloud.DdsInstanceV3(\"instance\",\n    name=\"dds-instance\",\n    datastore={\n        \"type\": \"DDS-Community\",\n        \"version\": \"3.4\",\n        \"storage_engine\": \"wiredTiger\",\n    },\n    availability_zone=availability_zone,\n    vpc_id=vpc_id,\n    subnet_id=subnet_id,\n    security_group_id=security_group_id,\n    password=\"5ecuredPa55w0rd@\",\n    mode=\"Single\",\n    flavors=[{\n        \"type\": \"single\",\n        \"num\": 1,\n        \"storage\": \"ULTRAHIGH\",\n        \"size\": 30,\n        \"spec_code\": \"dds.mongodb.s2.medium.4.single\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var availabilityZone = config.RequireObject<dynamic>(\"availabilityZone\");\n    var vpcId = config.RequireObject<dynamic>(\"vpcId\");\n    var subnetId = config.RequireObject<dynamic>(\"subnetId\");\n    var securityGroupId = config.RequireObject<dynamic>(\"securityGroupId\");\n    var instance = new Opentelekomcloud.DdsInstanceV3(\"instance\", new()\n    {\n        Name = \"dds-instance\",\n        Datastore = new Opentelekomcloud.Inputs.DdsInstanceV3DatastoreArgs\n        {\n            Type = \"DDS-Community\",\n            Version = \"3.4\",\n            StorageEngine = \"wiredTiger\",\n        },\n        AvailabilityZone = availabilityZone,\n        VpcId = vpcId,\n        SubnetId = subnetId,\n        SecurityGroupId = securityGroupId,\n        Password = \"5ecuredPa55w0rd@\",\n        Mode = \"Single\",\n        Flavors = new[]\n        {\n            new Opentelekomcloud.Inputs.DdsInstanceV3FlavorArgs\n            {\n                Type = \"single\",\n                Num = 1,\n                Storage = \"ULTRAHIGH\",\n                Size = 30,\n                SpecCode = \"dds.mongodb.s2.medium.4.single\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tavailabilityZone := cfg.RequireObject(\"availabilityZone\")\n\t\tvpcId := cfg.RequireObject(\"vpcId\")\n\t\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\tsecurityGroupId := cfg.RequireObject(\"securityGroupId\")\n\t\t_, err := opentelekomcloud.NewDdsInstanceV3(ctx, \"instance\", &opentelekomcloud.DdsInstanceV3Args{\n\t\t\tName: pulumi.String(\"dds-instance\"),\n\t\t\tDatastore: &opentelekomcloud.DdsInstanceV3DatastoreArgs{\n\t\t\t\tType:          pulumi.String(\"DDS-Community\"),\n\t\t\t\tVersion:       pulumi.String(\"3.4\"),\n\t\t\t\tStorageEngine: pulumi.String(\"wiredTiger\"),\n\t\t\t},\n\t\t\tAvailabilityZone: pulumi.Any(availabilityZone),\n\t\t\tVpcId:            pulumi.Any(vpcId),\n\t\t\tSubnetId:         pulumi.Any(subnetId),\n\t\t\tSecurityGroupId:  pulumi.Any(securityGroupId),\n\t\t\tPassword:         pulumi.String(\"5ecuredPa55w0rd@\"),\n\t\t\tMode:             pulumi.String(\"Single\"),\n\t\t\tFlavors: opentelekomcloud.DdsInstanceV3FlavorArray{\n\t\t\t\t&opentelekomcloud.DdsInstanceV3FlavorArgs{\n\t\t\t\t\tType:     pulumi.String(\"single\"),\n\t\t\t\t\tNum:      pulumi.Float64(1),\n\t\t\t\t\tStorage:  pulumi.String(\"ULTRAHIGH\"),\n\t\t\t\t\tSize:     pulumi.Float64(30),\n\t\t\t\t\tSpecCode: pulumi.String(\"dds.mongodb.s2.medium.4.single\"),\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.opentelekomcloud.DdsInstanceV3;\nimport com.pulumi.opentelekomcloud.DdsInstanceV3Args;\nimport com.pulumi.opentelekomcloud.inputs.DdsInstanceV3DatastoreArgs;\nimport com.pulumi.opentelekomcloud.inputs.DdsInstanceV3FlavorArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] 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\");\n        final var vpcId = config.get(\"vpcId\");\n        final var subnetId = config.get(\"subnetId\");\n        final var securityGroupId = config.get(\"securityGroupId\");\n        var instance = new DdsInstanceV3(\"instance\", DdsInstanceV3Args.builder()\n            .name(\"dds-instance\")\n            .datastore(DdsInstanceV3DatastoreArgs.builder()\n                .type(\"DDS-Community\")\n                .version(\"3.4\")\n                .storageEngine(\"wiredTiger\")\n                .build())\n            .availabilityZone(availabilityZone)\n            .vpcId(vpcId)\n            .subnetId(subnetId)\n            .securityGroupId(securityGroupId)\n            .password(\"5ecuredPa55w0rd@\")\n            .mode(\"Single\")\n            .flavors(DdsInstanceV3FlavorArgs.builder()\n                .type(\"single\")\n                .num(1.0)\n                .storage(\"ULTRAHIGH\")\n                .size(30.0)\n                .specCode(\"dds.mongodb.s2.medium.4.single\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  availabilityZone:\n    type: dynamic\n  vpcId:\n    type: dynamic\n  subnetId:\n    type: dynamic\n  securityGroupId:\n    type: dynamic\nresources:\n  instance:\n    type: opentelekomcloud:DdsInstanceV3\n    properties:\n      name: dds-instance\n      datastore:\n        type: DDS-Community\n        version: '3.4'\n        storageEngine: wiredTiger\n      availabilityZone: ${availabilityZone}\n      vpcId: ${vpcId}\n      subnetId: ${subnetId}\n      securityGroupId: ${securityGroupId}\n      password: 5ecuredPa55w0rd@\n      mode: Single\n      flavors:\n        - type: single\n          num: 1\n          storage: ULTRAHIGH\n          size: 30\n          specCode: dds.mongodb.s2.medium.4.single\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nDDSv3 Instance can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/ddsInstanceV3:DdsInstanceV3 instance_1 c1851195-cdcb-4d23-96cb-032e6a3ee667\n```\n\nNote that the imported state may not be identical to your resource definition, due to some attributes missing from the\n\nAPI response or in a different data structures. The missing attributes include: `flavor`, `password` and `availability_zone`.\n\nIt is generally recommended running `pulumi preview` after importing an instance.\n\nYou can then decide if changes should be applied to the instance, or the resource definition should be updated to\n\nalign with the instance. Also, you can ignore changes as below.\n\nhcl\n\nresource \"opentelekomcloud_dds_instance_v3\" \"instance_1\" {\n\n  lifecycle {\n\n    ignore_changes = [\n\n      flavor, password, availability_zone,\n\n    ]\n\n  }\n\n}\n\n","inputProperties":{"availabilityZone":{"description":"Specifies the ID of the availability zone.\n","type":"string"},"backupStrategy":{"$ref":"#/types/opentelekomcloud:index%2FDdsInstanceV3BackupStrategy:DdsInstanceV3BackupStrategy","description":"Specifies the advanced backup policy. The structure is\ndescribed below.\n"},"datastore":{"$ref":"#/types/opentelekomcloud:index%2FDdsInstanceV3Datastore:DdsInstanceV3Datastore","description":"Specifies database information. The structure is described\nbelow.\n"},"ddsInstanceV3Id":{"description":"Indicates the node ID.\n","type":"string"},"diskEncryptionId":{"description":"Specifies the disk encryption ID of the instance.\n","type":"string"},"flavors":{"description":"Specifies the flavor information. The structure is described below.\nChanging this creates a new instance.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDdsInstanceV3Flavor:DdsInstanceV3Flavor"},"type":"array"},"maintainBegin":{"description":"Specifies maintenance window start time. The value must be a valid value in the \"HH:MM\" format.\nThe current time is the UTC time. The value cannot be the same as the maintenance end time.\nGap between <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> and <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be at least 1h.\n","type":"string"},"maintainEnd":{"description":"Specifies maintenance window end time. The value must be a valid value in the \"HH:MM\" format.\nThe current time is the UTC time. The value cannot be the same as the maintenance start time.\nGap between <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> and <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be at least 1h.\n","type":"string"},"mode":{"description":"Specifies the mode of the database instance.\n","type":"string"},"name":{"description":"Specifies the DB instance name. The DB instance name of the same\ntype is unique in the same tenant.\n","type":"string"},"password":{"description":"Specifies the Administrator password of the database instance.\n","secret":true,"type":"string"},"port":{"description":"Specifies the database access port. The valid values are range from <span pulumi-lang-nodejs=\"`2100`\" pulumi-lang-dotnet=\"`2100`\" pulumi-lang-go=\"`2100`\" pulumi-lang-python=\"`2100`\" pulumi-lang-yaml=\"`2100`\" pulumi-lang-java=\"`2100`\">`2100`</span> to <span pulumi-lang-nodejs=\"`9500`\" pulumi-lang-dotnet=\"`9500`\" pulumi-lang-go=\"`9500`\" pulumi-lang-python=\"`9500`\" pulumi-lang-yaml=\"`9500`\" pulumi-lang-java=\"`9500`\">`9500`</span> and\n<span pulumi-lang-nodejs=\"`27017`\" pulumi-lang-dotnet=\"`27017`\" pulumi-lang-go=\"`27017`\" pulumi-lang-python=\"`27017`\" pulumi-lang-yaml=\"`27017`\" pulumi-lang-java=\"`27017`\">`27017`</span>, <span pulumi-lang-nodejs=\"`27018`\" pulumi-lang-dotnet=\"`27018`\" pulumi-lang-go=\"`27018`\" pulumi-lang-python=\"`27018`\" pulumi-lang-yaml=\"`27018`\" pulumi-lang-java=\"`27018`\">`27018`</span>, <span pulumi-lang-nodejs=\"`27019`\" pulumi-lang-dotnet=\"`27019`\" pulumi-lang-go=\"`27019`\" pulumi-lang-python=\"`27019`\" pulumi-lang-yaml=\"`27019`\" pulumi-lang-java=\"`27019`\">`27019`</span>. Defaults to <span pulumi-lang-nodejs=\"`8635`\" pulumi-lang-dotnet=\"`8635`\" pulumi-lang-go=\"`8635`\" pulumi-lang-python=\"`8635`\" pulumi-lang-yaml=\"`8635`\" pulumi-lang-java=\"`8635`\">`8635`</span>.\n","type":"number"},"region":{"description":"Specifies the region of the DDS instance.\n","type":"string"},"securityGroupId":{"description":"Specifies the security group ID of the DDS instance.\n","type":"string"},"ssl":{"description":"Specifies whether to enable or disable SSL. Defaults to true.\n> The instance will be restarted in the background when switching SSL. Please operate with caution.\n","type":"boolean"},"subnetId":{"description":"Specifies the subnet Network ID.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the volume.\nChanging this updates the existing volume tags.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDdsInstanceV3Timeouts:DdsInstanceV3Timeouts"},"vpcId":{"description":"Specifies the VPC ID.\n","type":"string"}},"properties":{"availabilityZone":{"description":"Specifies the ID of the availability zone.\n","type":"string"},"backupStrategy":{"$ref":"#/types/opentelekomcloud:index%2FDdsInstanceV3BackupStrategy:DdsInstanceV3BackupStrategy","description":"Specifies the advanced backup policy. The structure is\ndescribed below.\n"},"createdAt":{"description":"Indicates the creation time.\n","type":"string"},"datastore":{"$ref":"#/types/opentelekomcloud:index%2FDdsInstanceV3Datastore:DdsInstanceV3Datastore","description":"Specifies database information. The structure is described\nbelow.\n"},"dbUsername":{"description":"Indicates the DB Administator name.\n","type":"string"},"ddsInstanceV3Id":{"description":"Indicates the node ID.\n","type":"string"},"diskEncryptionId":{"description":"Specifies the disk encryption ID of the instance.\n","type":"string"},"flavors":{"description":"Specifies the flavor information. The structure is described below.\nChanging this creates a new instance.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDdsInstanceV3Flavor:DdsInstanceV3Flavor"},"type":"array"},"maintainBegin":{"description":"Specifies maintenance window start time. The value must be a valid value in the \"HH:MM\" format.\nThe current time is the UTC time. The value cannot be the same as the maintenance end time.\nGap between <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> and <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be at least 1h.\n","type":"string"},"maintainEnd":{"description":"Specifies maintenance window end time. The value must be a valid value in the \"HH:MM\" format.\nThe current time is the UTC time. The value cannot be the same as the maintenance start time.\nGap between <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> and <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be at least 1h.\n","type":"string"},"mode":{"description":"Specifies the mode of the database instance.\n","type":"string"},"name":{"description":"Specifies the DB instance name. The DB instance name of the same\ntype is unique in the same tenant.\n","type":"string"},"nodes":{"description":"Indicates the instance nodes information. Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDdsInstanceV3Node:DdsInstanceV3Node"},"type":"array"},"password":{"description":"Specifies the Administrator password of the database instance.\n","secret":true,"type":"string"},"payMode":{"description":"Indicates the billing mode. <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>: indicates the pay-per-use billing mode.\n","type":"string"},"port":{"description":"Specifies the database access port. The valid values are range from <span pulumi-lang-nodejs=\"`2100`\" pulumi-lang-dotnet=\"`2100`\" pulumi-lang-go=\"`2100`\" pulumi-lang-python=\"`2100`\" pulumi-lang-yaml=\"`2100`\" pulumi-lang-java=\"`2100`\">`2100`</span> to <span pulumi-lang-nodejs=\"`9500`\" pulumi-lang-dotnet=\"`9500`\" pulumi-lang-go=\"`9500`\" pulumi-lang-python=\"`9500`\" pulumi-lang-yaml=\"`9500`\" pulumi-lang-java=\"`9500`\">`9500`</span> and\n<span pulumi-lang-nodejs=\"`27017`\" pulumi-lang-dotnet=\"`27017`\" pulumi-lang-go=\"`27017`\" pulumi-lang-python=\"`27017`\" pulumi-lang-yaml=\"`27017`\" pulumi-lang-java=\"`27017`\">`27017`</span>, <span pulumi-lang-nodejs=\"`27018`\" pulumi-lang-dotnet=\"`27018`\" pulumi-lang-go=\"`27018`\" pulumi-lang-python=\"`27018`\" pulumi-lang-yaml=\"`27018`\" pulumi-lang-java=\"`27018`\">`27018`</span>, <span pulumi-lang-nodejs=\"`27019`\" pulumi-lang-dotnet=\"`27019`\" pulumi-lang-go=\"`27019`\" pulumi-lang-python=\"`27019`\" pulumi-lang-yaml=\"`27019`\" pulumi-lang-java=\"`27019`\">`27019`</span>. Defaults to <span pulumi-lang-nodejs=\"`8635`\" pulumi-lang-dotnet=\"`8635`\" pulumi-lang-go=\"`8635`\" pulumi-lang-python=\"`8635`\" pulumi-lang-yaml=\"`8635`\" pulumi-lang-java=\"`8635`\">`8635`</span>.\n","type":"number"},"region":{"description":"Specifies the region of the DDS instance.\n","type":"string"},"securityGroupId":{"description":"Specifies the security group ID of the DDS instance.\n","type":"string"},"ssl":{"description":"Specifies whether to enable or disable SSL. Defaults to true.\n> The instance will be restarted in the background when switching SSL. Please operate with caution.\n","type":"boolean"},"status":{"description":"Indicates the node status.\n","type":"string"},"subnetId":{"description":"Specifies the subnet Network ID.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the volume.\nChanging this updates the existing volume tags.\n","type":"object"},"timeZone":{"description":"Indicates the time zone.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDdsInstanceV3Timeouts:DdsInstanceV3Timeouts"},"updatedAt":{"description":"Indicates the update time.\n","type":"string"},"vpcId":{"description":"Specifies the VPC ID.\n","type":"string"}},"required":["availabilityZone","createdAt","datastore","dbUsername","ddsInstanceV3Id","flavors","maintainBegin","maintainEnd","mode","name","nodes","password","payMode","port","region","securityGroupId","status","subnetId","timeZone","updatedAt","vpcId"],"requiredInputs":["availabilityZone","datastore","flavors","mode","password","securityGroupId","subnetId","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering DdsInstanceV3 resources.\n","properties":{"availabilityZone":{"description":"Specifies the ID of the availability zone.\n","type":"string"},"backupStrategy":{"$ref":"#/types/opentelekomcloud:index%2FDdsInstanceV3BackupStrategy:DdsInstanceV3BackupStrategy","description":"Specifies the advanced backup policy. The structure is\ndescribed below.\n"},"createdAt":{"description":"Indicates the creation time.\n","type":"string"},"datastore":{"$ref":"#/types/opentelekomcloud:index%2FDdsInstanceV3Datastore:DdsInstanceV3Datastore","description":"Specifies database information. The structure is described\nbelow.\n"},"dbUsername":{"description":"Indicates the DB Administator name.\n","type":"string"},"ddsInstanceV3Id":{"description":"Indicates the node ID.\n","type":"string"},"diskEncryptionId":{"description":"Specifies the disk encryption ID of the instance.\n","type":"string"},"flavors":{"description":"Specifies the flavor information. The structure is described below.\nChanging this creates a new instance.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDdsInstanceV3Flavor:DdsInstanceV3Flavor"},"type":"array"},"maintainBegin":{"description":"Specifies maintenance window start time. The value must be a valid value in the \"HH:MM\" format.\nThe current time is the UTC time. The value cannot be the same as the maintenance end time.\nGap between <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> and <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be at least 1h.\n","type":"string"},"maintainEnd":{"description":"Specifies maintenance window end time. The value must be a valid value in the \"HH:MM\" format.\nThe current time is the UTC time. The value cannot be the same as the maintenance start time.\nGap between <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> and <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be at least 1h.\n","type":"string"},"mode":{"description":"Specifies the mode of the database instance.\n","type":"string"},"name":{"description":"Specifies the DB instance name. The DB instance name of the same\ntype is unique in the same tenant.\n","type":"string"},"nodes":{"description":"Indicates the instance nodes information. Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDdsInstanceV3Node:DdsInstanceV3Node"},"type":"array"},"password":{"description":"Specifies the Administrator password of the database instance.\n","secret":true,"type":"string"},"payMode":{"description":"Indicates the billing mode. <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>: indicates the pay-per-use billing mode.\n","type":"string"},"port":{"description":"Specifies the database access port. The valid values are range from <span pulumi-lang-nodejs=\"`2100`\" pulumi-lang-dotnet=\"`2100`\" pulumi-lang-go=\"`2100`\" pulumi-lang-python=\"`2100`\" pulumi-lang-yaml=\"`2100`\" pulumi-lang-java=\"`2100`\">`2100`</span> to <span pulumi-lang-nodejs=\"`9500`\" pulumi-lang-dotnet=\"`9500`\" pulumi-lang-go=\"`9500`\" pulumi-lang-python=\"`9500`\" pulumi-lang-yaml=\"`9500`\" pulumi-lang-java=\"`9500`\">`9500`</span> and\n<span pulumi-lang-nodejs=\"`27017`\" pulumi-lang-dotnet=\"`27017`\" pulumi-lang-go=\"`27017`\" pulumi-lang-python=\"`27017`\" pulumi-lang-yaml=\"`27017`\" pulumi-lang-java=\"`27017`\">`27017`</span>, <span pulumi-lang-nodejs=\"`27018`\" pulumi-lang-dotnet=\"`27018`\" pulumi-lang-go=\"`27018`\" pulumi-lang-python=\"`27018`\" pulumi-lang-yaml=\"`27018`\" pulumi-lang-java=\"`27018`\">`27018`</span>, <span pulumi-lang-nodejs=\"`27019`\" pulumi-lang-dotnet=\"`27019`\" pulumi-lang-go=\"`27019`\" pulumi-lang-python=\"`27019`\" pulumi-lang-yaml=\"`27019`\" pulumi-lang-java=\"`27019`\">`27019`</span>. Defaults to <span pulumi-lang-nodejs=\"`8635`\" pulumi-lang-dotnet=\"`8635`\" pulumi-lang-go=\"`8635`\" pulumi-lang-python=\"`8635`\" pulumi-lang-yaml=\"`8635`\" pulumi-lang-java=\"`8635`\">`8635`</span>.\n","type":"number"},"region":{"description":"Specifies the region of the DDS instance.\n","type":"string"},"securityGroupId":{"description":"Specifies the security group ID of the DDS instance.\n","type":"string"},"ssl":{"description":"Specifies whether to enable or disable SSL. Defaults to true.\n> The instance will be restarted in the background when switching SSL. Please operate with caution.\n","type":"boolean"},"status":{"description":"Indicates the node status.\n","type":"string"},"subnetId":{"description":"Specifies the subnet Network ID.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the volume.\nChanging this updates the existing volume tags.\n","type":"object"},"timeZone":{"description":"Indicates the time zone.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDdsInstanceV3Timeouts:DdsInstanceV3Timeouts"},"updatedAt":{"description":"Indicates the update time.\n","type":"string"},"vpcId":{"description":"Specifies the VPC ID.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/ddsLtsLogV3:DdsLtsLogV3":{"description":"Manages a DDS LTS log resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst ltsGroupId = config.requireObject<any>(\"ltsGroupId\");\nconst ltsStreamId = config.requireObject<any>(\"ltsStreamId\");\nconst log = new opentelekomcloud.DdsLtsLogV3(\"log\", {\n    instanceId: instanceId,\n    logType: \"audit_log\",\n    ltsGroupId: ltsGroupId,\n    ltsStreamId: ltsStreamId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nlts_group_id = config.require_object(\"ltsGroupId\")\nlts_stream_id = config.require_object(\"ltsStreamId\")\nlog = opentelekomcloud.DdsLtsLogV3(\"log\",\n    instance_id=instance_id,\n    log_type=\"audit_log\",\n    lts_group_id=lts_group_id,\n    lts_stream_id=lts_stream_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var ltsGroupId = config.RequireObject<dynamic>(\"ltsGroupId\");\n    var ltsStreamId = config.RequireObject<dynamic>(\"ltsStreamId\");\n    var log = new Opentelekomcloud.DdsLtsLogV3(\"log\", new()\n    {\n        InstanceId = instanceId,\n        LogType = \"audit_log\",\n        LtsGroupId = ltsGroupId,\n        LtsStreamId = ltsStreamId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tltsGroupId := cfg.RequireObject(\"ltsGroupId\")\n\t\tltsStreamId := cfg.RequireObject(\"ltsStreamId\")\n\t\t_, err := opentelekomcloud.NewDdsLtsLogV3(ctx, \"log\", &opentelekomcloud.DdsLtsLogV3Args{\n\t\t\tInstanceId:  pulumi.Any(instanceId),\n\t\t\tLogType:     pulumi.String(\"audit_log\"),\n\t\t\tLtsGroupId:  pulumi.Any(ltsGroupId),\n\t\t\tLtsStreamId: pulumi.Any(ltsStreamId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.DdsLtsLogV3;\nimport com.pulumi.opentelekomcloud.DdsLtsLogV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var ltsGroupId = config.get(\"ltsGroupId\");\n        final var ltsStreamId = config.get(\"ltsStreamId\");\n        var log = new DdsLtsLogV3(\"log\", DdsLtsLogV3Args.builder()\n            .instanceId(instanceId)\n            .logType(\"audit_log\")\n            .ltsGroupId(ltsGroupId)\n            .ltsStreamId(ltsStreamId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  ltsGroupId:\n    type: dynamic\n  ltsStreamId:\n    type: dynamic\nresources:\n  log:\n    type: opentelekomcloud:DdsLtsLogV3\n    properties:\n      instanceId: ${instanceId}\n      logType: audit_log\n      ltsGroupId: ${ltsGroupId}\n      ltsStreamId: ${ltsStreamId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe DDS LTS log config can be imported using DDS instance ID, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/ddsLtsLogV3:DdsLtsLogV3 log <instance_id>\n```\n\n","inputProperties":{"ddsLtsLogV3Id":{"description":"The resource ID. The value is DDS instance ID.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the DDS instance.\n\nChanging this creates a new resource.\n","type":"string"},"logType":{"description":"Specifies the type of the LTS log. The value can be <span pulumi-lang-nodejs=\"`auditLog`\" pulumi-lang-dotnet=\"`AuditLog`\" pulumi-lang-go=\"`auditLog`\" pulumi-lang-python=\"`audit_log`\" pulumi-lang-yaml=\"`auditLog`\" pulumi-lang-java=\"`auditLog`\">`audit_log`</span>.\n\nChanging this creates a new resource.\n","type":"string"},"ltsGroupId":{"description":"Specifies the ID of the LTS log group.\n","type":"string"},"ltsStreamId":{"description":"Specifies the ID of the LTS log stream.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDdsLtsLogV3Timeouts:DdsLtsLogV3Timeouts"}},"properties":{"ddsLtsLogV3Id":{"description":"The resource ID. The value is DDS instance ID.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the DDS instance.\n\nChanging this creates a new resource.\n","type":"string"},"logType":{"description":"Specifies the type of the LTS log. The value can be <span pulumi-lang-nodejs=\"`auditLog`\" pulumi-lang-dotnet=\"`AuditLog`\" pulumi-lang-go=\"`auditLog`\" pulumi-lang-python=\"`audit_log`\" pulumi-lang-yaml=\"`auditLog`\" pulumi-lang-java=\"`auditLog`\">`audit_log`</span>.\n\nChanging this creates a new resource.\n","type":"string"},"ltsGroupId":{"description":"Specifies the ID of the LTS log group.\n","type":"string"},"ltsStreamId":{"description":"Specifies the ID of the LTS log stream.\n","type":"string"},"region":{"description":"The region in which created the LTS log resource.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDdsLtsLogV3Timeouts:DdsLtsLogV3Timeouts"}},"required":["ddsLtsLogV3Id","instanceId","logType","ltsGroupId","ltsStreamId","region"],"requiredInputs":["instanceId","logType","ltsGroupId","ltsStreamId"],"stateInputs":{"description":"Input properties used for looking up and filtering DdsLtsLogV3 resources.\n","properties":{"ddsLtsLogV3Id":{"description":"The resource ID. The value is DDS instance ID.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the DDS instance.\n\nChanging this creates a new resource.\n","type":"string"},"logType":{"description":"Specifies the type of the LTS log. The value can be <span pulumi-lang-nodejs=\"`auditLog`\" pulumi-lang-dotnet=\"`AuditLog`\" pulumi-lang-go=\"`auditLog`\" pulumi-lang-python=\"`audit_log`\" pulumi-lang-yaml=\"`auditLog`\" pulumi-lang-java=\"`auditLog`\">`audit_log`</span>.\n\nChanging this creates a new resource.\n","type":"string"},"ltsGroupId":{"description":"Specifies the ID of the LTS log group.\n","type":"string"},"ltsStreamId":{"description":"Specifies the ID of the LTS log stream.\n","type":"string"},"region":{"description":"The region in which created the LTS log resource.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDdsLtsLogV3Timeouts:DdsLtsLogV3Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/dehHostV1:DehHostV1":{"description":"Up-to-date reference of API arguments for DEH host you can get at\n[documentation portal](https://docs.otc.t-systems.com/dedicated-host/api-ref/api)\n\nAllocates a Dedicated Host to a tenant and set minimum required parameters for this Dedicated Host.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst dehHost = new opentelekomcloud.DehHostV1(\"deh_host\", {\n    name: \"high_performance_deh\",\n    autoPlacement: \"on\",\n    availabilityZone: \"eu-de-02\",\n    hostType: \"h1\",\n    tags: {\n        muh: \"kuh\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ndeh_host = opentelekomcloud.DehHostV1(\"deh_host\",\n    name=\"high_performance_deh\",\n    auto_placement=\"on\",\n    availability_zone=\"eu-de-02\",\n    host_type=\"h1\",\n    tags={\n        \"muh\": \"kuh\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var dehHost = new Opentelekomcloud.DehHostV1(\"deh_host\", new()\n    {\n        Name = \"high_performance_deh\",\n        AutoPlacement = \"on\",\n        AvailabilityZone = \"eu-de-02\",\n        HostType = \"h1\",\n        Tags = \n        {\n            { \"muh\", \"kuh\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewDehHostV1(ctx, \"deh_host\", &opentelekomcloud.DehHostV1Args{\n\t\t\tName:             pulumi.String(\"high_performance_deh\"),\n\t\t\tAutoPlacement:    pulumi.String(\"on\"),\n\t\t\tAvailabilityZone: pulumi.String(\"eu-de-02\"),\n\t\t\tHostType:         pulumi.String(\"h1\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"muh\": pulumi.String(\"kuh\"),\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.opentelekomcloud.DehHostV1;\nimport com.pulumi.opentelekomcloud.DehHostV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var dehHost = new DehHostV1(\"dehHost\", DehHostV1Args.builder()\n            .name(\"high_performance_deh\")\n            .autoPlacement(\"on\")\n            .availabilityZone(\"eu-de-02\")\n            .hostType(\"h1\")\n            .tags(Map.of(\"muh\", \"kuh\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  dehHost:\n    type: opentelekomcloud:DehHostV1\n    name: deh_host\n    properties:\n      name: high_performance_deh\n      autoPlacement: on\n      availabilityZone: eu-de-02\n      hostType: h1\n      tags:\n        muh: kuh\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nDeH can be imported using the `dedicated_host_id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/dehHostV1:DehHostV1 deh_host 4779ab1c-7c1a-44b1-a02e-93dfc361b32d\n```\n\n","inputProperties":{"autoPlacement":{"description":"Allows a instance to be automatically placed onto the available Dedicated Hosts. The default value is <span pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\">`on`</span>.\n","type":"string"},"availabilityZone":{"description":"The Availability Zone to which the Dedicated Host belongs.\n","type":"string"},"availableInstanceCapacities":{"description":"The VM flavors placed on the Dedicated Host.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDehHostV1AvailableInstanceCapacity:DehHostV1AvailableInstanceCapacity"},"type":"array"},"availableMemory":{"description":"The size of available memory for the Dedicated Host.\n","type":"number"},"availableVcpus":{"description":"The number of available vCPUs for the Dedicated Host.\n","type":"number"},"cores":{"description":"The number of host physical cores.\n","type":"number"},"dehHostV1Id":{"type":"string"},"hostType":{"description":"The Dedicated Host type.\nExpected values are:\n* in `eu-de`: <span pulumi-lang-nodejs=\"`c4`\" pulumi-lang-dotnet=\"`C4`\" pulumi-lang-go=\"`c4`\" pulumi-lang-python=\"`c4`\" pulumi-lang-yaml=\"`c4`\" pulumi-lang-java=\"`c4`\">`c4`</span>, `s2-medium`, <span pulumi-lang-nodejs=\"`m3`\" pulumi-lang-dotnet=\"`M3`\" pulumi-lang-go=\"`m3`\" pulumi-lang-python=\"`m3`\" pulumi-lang-yaml=\"`m3`\" pulumi-lang-java=\"`m3`\">`m3`</span>, <span pulumi-lang-nodejs=\"`c3`\" pulumi-lang-dotnet=\"`C3`\" pulumi-lang-go=\"`c3`\" pulumi-lang-python=\"`c3`\" pulumi-lang-yaml=\"`c3`\" pulumi-lang-java=\"`c3`\">`c3`</span> and <span pulumi-lang-nodejs=\"`s2`\" pulumi-lang-dotnet=\"`S2`\" pulumi-lang-go=\"`s2`\" pulumi-lang-python=\"`s2`\" pulumi-lang-yaml=\"`s2`\" pulumi-lang-java=\"`s2`\">`s2`</span>.\n* in `eu-nl`: <span pulumi-lang-nodejs=\"`i3Pro`\" pulumi-lang-dotnet=\"`I3Pro`\" pulumi-lang-go=\"`i3Pro`\" pulumi-lang-python=\"`i3_pro`\" pulumi-lang-yaml=\"`i3Pro`\" pulumi-lang-java=\"`i3Pro`\">`i3_pro`</span>, <span pulumi-lang-nodejs=\"`i3`\" pulumi-lang-dotnet=\"`I3`\" pulumi-lang-go=\"`i3`\" pulumi-lang-python=\"`i3`\" pulumi-lang-yaml=\"`i3`\" pulumi-lang-java=\"`i3`\">`i3`</span>, <span pulumi-lang-nodejs=\"`m4`\" pulumi-lang-dotnet=\"`M4`\" pulumi-lang-go=\"`m4`\" pulumi-lang-python=\"`m4`\" pulumi-lang-yaml=\"`m4`\" pulumi-lang-java=\"`m4`\">`m4`</span>, <span pulumi-lang-nodejs=\"`s3`\" pulumi-lang-dotnet=\"`S3`\" pulumi-lang-go=\"`s3`\" pulumi-lang-python=\"`s3`\" pulumi-lang-yaml=\"`s3`\" pulumi-lang-java=\"`s3`\">`s3`</span> and <span pulumi-lang-nodejs=\"`c4`\" pulumi-lang-dotnet=\"`C4`\" pulumi-lang-go=\"`c4`\" pulumi-lang-python=\"`c4`\" pulumi-lang-yaml=\"`c4`\" pulumi-lang-java=\"`c4`\">`c4`</span>.\n* in `eu-ch2`: <span pulumi-lang-nodejs=\"`s3`\" pulumi-lang-dotnet=\"`S3`\" pulumi-lang-go=\"`s3`\" pulumi-lang-python=\"`s3`\" pulumi-lang-yaml=\"`s3`\" pulumi-lang-java=\"`s3`\">`s3`</span>.\n","type":"string"},"hostTypeName":{"description":"The name of the Dedicated Host type.\n","type":"string"},"instanceTotal":{"description":"The number of the placed VMs.\n","type":"number"},"instanceUuids":{"description":"The VMs started on the Dedicated Host.\n","items":{"type":"string"},"type":"array"},"memory":{"description":"The size of host physical memory (MB).\n","type":"number"},"name":{"description":"The name of the Dedicated Host.\n","type":"string"},"region":{"type":"string"},"sockets":{"description":"The number of host physical sockets.\n","type":"number"},"status":{"description":"Specifies the Dedicated Host status.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with Host.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDehHostV1Timeouts:DehHostV1Timeouts"},"vcpus":{"description":"The number of host vCPUs.\n","type":"number"}},"properties":{"autoPlacement":{"description":"Allows a instance to be automatically placed onto the available Dedicated Hosts. The default value is <span pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\">`on`</span>.\n","type":"string"},"availabilityZone":{"description":"The Availability Zone to which the Dedicated Host belongs.\n","type":"string"},"availableInstanceCapacities":{"description":"The VM flavors placed on the Dedicated Host.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDehHostV1AvailableInstanceCapacity:DehHostV1AvailableInstanceCapacity"},"type":"array"},"availableMemory":{"description":"The size of available memory for the Dedicated Host.\n","type":"number"},"availableVcpus":{"description":"The number of available vCPUs for the Dedicated Host.\n","type":"number"},"cores":{"description":"The number of host physical cores.\n","type":"number"},"dehHostV1Id":{"type":"string"},"hostType":{"description":"The Dedicated Host type.\nExpected values are:\n* in `eu-de`: <span pulumi-lang-nodejs=\"`c4`\" pulumi-lang-dotnet=\"`C4`\" pulumi-lang-go=\"`c4`\" pulumi-lang-python=\"`c4`\" pulumi-lang-yaml=\"`c4`\" pulumi-lang-java=\"`c4`\">`c4`</span>, `s2-medium`, <span pulumi-lang-nodejs=\"`m3`\" pulumi-lang-dotnet=\"`M3`\" pulumi-lang-go=\"`m3`\" pulumi-lang-python=\"`m3`\" pulumi-lang-yaml=\"`m3`\" pulumi-lang-java=\"`m3`\">`m3`</span>, <span pulumi-lang-nodejs=\"`c3`\" pulumi-lang-dotnet=\"`C3`\" pulumi-lang-go=\"`c3`\" pulumi-lang-python=\"`c3`\" pulumi-lang-yaml=\"`c3`\" pulumi-lang-java=\"`c3`\">`c3`</span> and <span pulumi-lang-nodejs=\"`s2`\" pulumi-lang-dotnet=\"`S2`\" pulumi-lang-go=\"`s2`\" pulumi-lang-python=\"`s2`\" pulumi-lang-yaml=\"`s2`\" pulumi-lang-java=\"`s2`\">`s2`</span>.\n* in `eu-nl`: <span pulumi-lang-nodejs=\"`i3Pro`\" pulumi-lang-dotnet=\"`I3Pro`\" pulumi-lang-go=\"`i3Pro`\" pulumi-lang-python=\"`i3_pro`\" pulumi-lang-yaml=\"`i3Pro`\" pulumi-lang-java=\"`i3Pro`\">`i3_pro`</span>, <span pulumi-lang-nodejs=\"`i3`\" pulumi-lang-dotnet=\"`I3`\" pulumi-lang-go=\"`i3`\" pulumi-lang-python=\"`i3`\" pulumi-lang-yaml=\"`i3`\" pulumi-lang-java=\"`i3`\">`i3`</span>, <span pulumi-lang-nodejs=\"`m4`\" pulumi-lang-dotnet=\"`M4`\" pulumi-lang-go=\"`m4`\" pulumi-lang-python=\"`m4`\" pulumi-lang-yaml=\"`m4`\" pulumi-lang-java=\"`m4`\">`m4`</span>, <span pulumi-lang-nodejs=\"`s3`\" pulumi-lang-dotnet=\"`S3`\" pulumi-lang-go=\"`s3`\" pulumi-lang-python=\"`s3`\" pulumi-lang-yaml=\"`s3`\" pulumi-lang-java=\"`s3`\">`s3`</span> and <span pulumi-lang-nodejs=\"`c4`\" pulumi-lang-dotnet=\"`C4`\" pulumi-lang-go=\"`c4`\" pulumi-lang-python=\"`c4`\" pulumi-lang-yaml=\"`c4`\" pulumi-lang-java=\"`c4`\">`c4`</span>.\n* in `eu-ch2`: <span pulumi-lang-nodejs=\"`s3`\" pulumi-lang-dotnet=\"`S3`\" pulumi-lang-go=\"`s3`\" pulumi-lang-python=\"`s3`\" pulumi-lang-yaml=\"`s3`\" pulumi-lang-java=\"`s3`\">`s3`</span>.\n","type":"string"},"hostTypeName":{"description":"The name of the Dedicated Host type.\n","type":"string"},"instanceTotal":{"description":"The number of the placed VMs.\n","type":"number"},"instanceUuids":{"description":"The VMs started on the Dedicated Host.\n","items":{"type":"string"},"type":"array"},"memory":{"description":"The size of host physical memory (MB).\n","type":"number"},"name":{"description":"The name of the Dedicated Host.\n","type":"string"},"region":{"type":"string"},"sockets":{"description":"The number of host physical sockets.\n","type":"number"},"status":{"description":"Specifies the Dedicated Host status.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with Host.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDehHostV1Timeouts:DehHostV1Timeouts"},"vcpus":{"description":"The number of host vCPUs.\n","type":"number"}},"required":["availabilityZone","availableMemory","availableVcpus","cores","dehHostV1Id","hostType","hostTypeName","instanceTotal","instanceUuids","memory","name","region","sockets","status","vcpus"],"requiredInputs":["availabilityZone","hostType"],"stateInputs":{"description":"Input properties used for looking up and filtering DehHostV1 resources.\n","properties":{"autoPlacement":{"description":"Allows a instance to be automatically placed onto the available Dedicated Hosts. The default value is <span pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\">`on`</span>.\n","type":"string"},"availabilityZone":{"description":"The Availability Zone to which the Dedicated Host belongs.\n","type":"string"},"availableInstanceCapacities":{"description":"The VM flavors placed on the Dedicated Host.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDehHostV1AvailableInstanceCapacity:DehHostV1AvailableInstanceCapacity"},"type":"array"},"availableMemory":{"description":"The size of available memory for the Dedicated Host.\n","type":"number"},"availableVcpus":{"description":"The number of available vCPUs for the Dedicated Host.\n","type":"number"},"cores":{"description":"The number of host physical cores.\n","type":"number"},"dehHostV1Id":{"type":"string"},"hostType":{"description":"The Dedicated Host type.\nExpected values are:\n* in `eu-de`: <span pulumi-lang-nodejs=\"`c4`\" pulumi-lang-dotnet=\"`C4`\" pulumi-lang-go=\"`c4`\" pulumi-lang-python=\"`c4`\" pulumi-lang-yaml=\"`c4`\" pulumi-lang-java=\"`c4`\">`c4`</span>, `s2-medium`, <span pulumi-lang-nodejs=\"`m3`\" pulumi-lang-dotnet=\"`M3`\" pulumi-lang-go=\"`m3`\" pulumi-lang-python=\"`m3`\" pulumi-lang-yaml=\"`m3`\" pulumi-lang-java=\"`m3`\">`m3`</span>, <span pulumi-lang-nodejs=\"`c3`\" pulumi-lang-dotnet=\"`C3`\" pulumi-lang-go=\"`c3`\" pulumi-lang-python=\"`c3`\" pulumi-lang-yaml=\"`c3`\" pulumi-lang-java=\"`c3`\">`c3`</span> and <span pulumi-lang-nodejs=\"`s2`\" pulumi-lang-dotnet=\"`S2`\" pulumi-lang-go=\"`s2`\" pulumi-lang-python=\"`s2`\" pulumi-lang-yaml=\"`s2`\" pulumi-lang-java=\"`s2`\">`s2`</span>.\n* in `eu-nl`: <span pulumi-lang-nodejs=\"`i3Pro`\" pulumi-lang-dotnet=\"`I3Pro`\" pulumi-lang-go=\"`i3Pro`\" pulumi-lang-python=\"`i3_pro`\" pulumi-lang-yaml=\"`i3Pro`\" pulumi-lang-java=\"`i3Pro`\">`i3_pro`</span>, <span pulumi-lang-nodejs=\"`i3`\" pulumi-lang-dotnet=\"`I3`\" pulumi-lang-go=\"`i3`\" pulumi-lang-python=\"`i3`\" pulumi-lang-yaml=\"`i3`\" pulumi-lang-java=\"`i3`\">`i3`</span>, <span pulumi-lang-nodejs=\"`m4`\" pulumi-lang-dotnet=\"`M4`\" pulumi-lang-go=\"`m4`\" pulumi-lang-python=\"`m4`\" pulumi-lang-yaml=\"`m4`\" pulumi-lang-java=\"`m4`\">`m4`</span>, <span pulumi-lang-nodejs=\"`s3`\" pulumi-lang-dotnet=\"`S3`\" pulumi-lang-go=\"`s3`\" pulumi-lang-python=\"`s3`\" pulumi-lang-yaml=\"`s3`\" pulumi-lang-java=\"`s3`\">`s3`</span> and <span pulumi-lang-nodejs=\"`c4`\" pulumi-lang-dotnet=\"`C4`\" pulumi-lang-go=\"`c4`\" pulumi-lang-python=\"`c4`\" pulumi-lang-yaml=\"`c4`\" pulumi-lang-java=\"`c4`\">`c4`</span>.\n* in `eu-ch2`: <span pulumi-lang-nodejs=\"`s3`\" pulumi-lang-dotnet=\"`S3`\" pulumi-lang-go=\"`s3`\" pulumi-lang-python=\"`s3`\" pulumi-lang-yaml=\"`s3`\" pulumi-lang-java=\"`s3`\">`s3`</span>.\n","type":"string"},"hostTypeName":{"description":"The name of the Dedicated Host type.\n","type":"string"},"instanceTotal":{"description":"The number of the placed VMs.\n","type":"number"},"instanceUuids":{"description":"The VMs started on the Dedicated Host.\n","items":{"type":"string"},"type":"array"},"memory":{"description":"The size of host physical memory (MB).\n","type":"number"},"name":{"description":"The name of the Dedicated Host.\n","type":"string"},"region":{"type":"string"},"sockets":{"description":"The number of host physical sockets.\n","type":"number"},"status":{"description":"Specifies the Dedicated Host status.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with Host.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDehHostV1Timeouts:DehHostV1Timeouts"},"vcpus":{"description":"The number of host vCPUs.\n","type":"number"}},"type":"object"},"type":"object"},"opentelekomcloud:index/directConnectV2:DirectConnectV2":{"description":"Up-to-date reference of API arguments for Direct Connect (DCaaS) you can get at\n[documentation portal](https://docs.otc.t-systems.com/direct-connect/api-ref/apis/connection/creating_a_connection.html)\n\n## Example usage\n\n-----------------\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst directConnect = new opentelekomcloud.DirectConnectV2(\"direct_connect\", {\n    name: \"direct_connect\",\n    bandwidth: 100,\n    location: \"location\",\n    providerName: \"provider_name\",\n    portType: \"port_type\",\n    adminStateUp: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ndirect_connect = opentelekomcloud.DirectConnectV2(\"direct_connect\",\n    name=\"direct_connect\",\n    bandwidth=100,\n    location=\"location\",\n    provider_name=\"provider_name\",\n    port_type=\"port_type\",\n    admin_state_up=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var directConnect = new Opentelekomcloud.DirectConnectV2(\"direct_connect\", new()\n    {\n        Name = \"direct_connect\",\n        Bandwidth = 100,\n        Location = \"location\",\n        ProviderName = \"provider_name\",\n        PortType = \"port_type\",\n        AdminStateUp = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewDirectConnectV2(ctx, \"direct_connect\", &opentelekomcloud.DirectConnectV2Args{\n\t\t\tName:         pulumi.String(\"direct_connect\"),\n\t\t\tBandwidth:    pulumi.Float64(100),\n\t\t\tLocation:     pulumi.String(\"location\"),\n\t\t\tProviderName: pulumi.String(\"provider_name\"),\n\t\t\tPortType:     pulumi.String(\"port_type\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.DirectConnectV2;\nimport com.pulumi.opentelekomcloud.DirectConnectV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var directConnect = new DirectConnectV2(\"directConnect\", DirectConnectV2Args.builder()\n            .name(\"direct_connect\")\n            .bandwidth(100.0)\n            .location(\"location\")\n            .providerName(\"provider_name\")\n            .portType(\"port_type\")\n            .adminStateUp(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  directConnect:\n    type: opentelekomcloud:DirectConnectV2\n    name: direct_connect\n    properties:\n      name: direct_connect\n      bandwidth: 100\n      location: location\n      providerName: provider_name\n      portType: port_type\n      adminStateUp: true\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"adminStateUp":{"type":"boolean"},"bandwidth":{"type":"number"},"chargeMode":{"type":"string"},"description":{"type":"string"},"deviceId":{"type":"string"},"hostingId":{"type":"string"},"interfaceName":{"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"orderId":{"type":"string"},"peerLocation":{"type":"string"},"portType":{"type":"string"},"productId":{"type":"string"},"providerName":{"type":"string"},"providerStatus":{"type":"string"},"redundantId":{"type":"string"},"status":{"type":"string"},"tenantId":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDirectConnectV2Timeouts:DirectConnectV2Timeouts"},"type":{"type":"string"},"vlan":{"type":"number"}},"properties":{"adminStateUp":{"type":"boolean"},"applicant":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"applyTime":{"description":"(String) - Specifies the time when the connection was requested.\n","type":"string"},"bandwidth":{"type":"number"},"buildingLineProductId":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"cableLabel":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"chargeMode":{"type":"string"},"createTime":{"description":"(String) - Specifies the time when the connection is created.\n","type":"string"},"deleteTime":{"description":"(String) - Specifies the time when the connection was deleted.\n","type":"string"},"description":{"type":"string"},"deviceId":{"type":"string"},"email":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"hostingId":{"type":"string"},"interfaceName":{"type":"string"},"lagId":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"lastOnestopProductId":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"location":{"type":"string"},"mobile":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"name":{"type":"string"},"onestopProductId":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"orderId":{"type":"string"},"peerLocation":{"type":"string"},"peerPortType":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"peerProvider":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"periodNum":{"description":"(Number) - This is a reserved field, which is not used currently.\n","type":"number"},"periodType":{"description":"(Number) - This is a reserved field, which is not used currently.\n","type":"number"},"portType":{"type":"string"},"productId":{"type":"string"},"providerName":{"type":"string"},"providerStatus":{"type":"string"},"reason":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"redundantId":{"type":"string"},"regionId":{"description":"(String) - Specifies the region ID.\n","type":"string"},"serviceKey":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"specCode":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"status":{"type":"string"},"tenantId":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDirectConnectV2Timeouts:DirectConnectV2Timeouts"},"type":{"type":"string"},"vgwType":{"description":"(String) - Specifies the type of the gateway. Currently, only the default type is supported.\n","type":"string"},"vlan":{"type":"number"}},"required":["adminStateUp","applicant","applyTime","bandwidth","buildingLineProductId","cableLabel","chargeMode","createTime","deleteTime","description","deviceId","email","hostingId","interfaceName","lagId","lastOnestopProductId","location","mobile","name","onestopProductId","orderId","peerLocation","peerPortType","peerProvider","periodNum","periodType","portType","productId","providerName","providerStatus","reason","redundantId","regionId","serviceKey","specCode","status","tenantId","type","vgwType","vlan"],"requiredInputs":["providerName"],"stateInputs":{"description":"Input properties used for looking up and filtering DirectConnectV2 resources.\n","properties":{"adminStateUp":{"type":"boolean"},"applicant":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"applyTime":{"description":"(String) - Specifies the time when the connection was requested.\n","type":"string"},"bandwidth":{"type":"number"},"buildingLineProductId":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"cableLabel":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"chargeMode":{"type":"string"},"createTime":{"description":"(String) - Specifies the time when the connection is created.\n","type":"string"},"deleteTime":{"description":"(String) - Specifies the time when the connection was deleted.\n","type":"string"},"description":{"type":"string"},"deviceId":{"type":"string"},"email":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"hostingId":{"type":"string"},"interfaceName":{"type":"string"},"lagId":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"lastOnestopProductId":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"location":{"type":"string"},"mobile":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"name":{"type":"string"},"onestopProductId":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"orderId":{"type":"string"},"peerLocation":{"type":"string"},"peerPortType":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"peerProvider":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"periodNum":{"description":"(Number) - This is a reserved field, which is not used currently.\n","type":"number"},"periodType":{"description":"(Number) - This is a reserved field, which is not used currently.\n","type":"number"},"portType":{"type":"string"},"productId":{"type":"string"},"providerName":{"type":"string"},"providerStatus":{"type":"string"},"reason":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"redundantId":{"type":"string"},"regionId":{"description":"(String) - Specifies the region ID.\n","type":"string"},"serviceKey":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"specCode":{"description":"(String) - This is a reserved field, which is not used currently.\n","type":"string"},"status":{"type":"string"},"tenantId":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDirectConnectV2Timeouts:DirectConnectV2Timeouts"},"type":{"type":"string"},"vgwType":{"description":"(String) - Specifies the type of the gateway. Currently, only the default type is supported.\n","type":"string"},"vlan":{"type":"number"}},"type":"object"},"type":"object"},"opentelekomcloud:index/dmsConsumerGroupV2:DmsConsumerGroupV2":{"description":"Up-to-date reference of API arguments for DMS instance management you can get at\n[documentation portal](https://docs.otc.t-systems.com/distributed-message-service/api-ref/apis_v2_recommended/instance_management/index.html)\n\nManage DMS consumer group v2 resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst group1 = new opentelekomcloud.DmsConsumerGroupV2(\"group_1\", {\n    instanceId: instanceId,\n    groupName: \"dms_consumer_group\",\n    description: \"Sample consumer group\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ngroup1 = opentelekomcloud.DmsConsumerGroupV2(\"group_1\",\n    instance_id=instance_id,\n    group_name=\"dms_consumer_group\",\n    description=\"Sample consumer group\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var group1 = new Opentelekomcloud.DmsConsumerGroupV2(\"group_1\", new()\n    {\n        InstanceId = instanceId,\n        GroupName = \"dms_consumer_group\",\n        Description = \"Sample consumer group\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\t_, err := opentelekomcloud.NewDmsConsumerGroupV2(ctx, \"group_1\", &opentelekomcloud.DmsConsumerGroupV2Args{\n\t\t\tInstanceId:  pulumi.Any(instanceId),\n\t\t\tGroupName:   pulumi.String(\"dms_consumer_group\"),\n\t\t\tDescription: pulumi.String(\"Sample consumer group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.DmsConsumerGroupV2;\nimport com.pulumi.opentelekomcloud.DmsConsumerGroupV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        var group1 = new DmsConsumerGroupV2(\"group1\", DmsConsumerGroupV2Args.builder()\n            .instanceId(instanceId)\n            .groupName(\"dms_consumer_group\")\n            .description(\"Sample consumer group\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\nresources:\n  group1:\n    type: opentelekomcloud:DmsConsumerGroupV2\n    name: group_1\n    properties:\n      instanceId: ${instanceId}\n      groupName: dms_consumer_group\n      description: Sample consumer group\n```\n<!--End PulumiCodeChooser -->\n\n## Notes\n\nBut due to some attributes missing from the API response, it's required to ignore changes as below:\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst group1 = new opentelekomcloud.DmsConsumerGroupV2(\"group_1\", {});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ngroup1 = opentelekomcloud.DmsConsumerGroupV2(\"group_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var group1 = new Opentelekomcloud.DmsConsumerGroupV2(\"group_1\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewDmsConsumerGroupV2(ctx, \"group_1\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.DmsConsumerGroupV2;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var group1 = new DmsConsumerGroupV2(\"group1\");\n\n    }\n}\n```\n```yaml\nresources:\n  group1:\n    type: opentelekomcloud:DmsConsumerGroupV2\n    name: group_1\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nDMS consumer groups can be imported using their `group_name` and related `instance_id`, separated by a slash, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/dmsConsumerGroupV2:DmsConsumerGroupV2 test_group <instance_id>/<group_name>\n```\n\n","inputProperties":{"description":{"description":"Specifies any description for the DMS consumer group.\n\nChanging this parameter will create a new resource.\n","type":"string"},"dmsConsumerGroupV2Id":{"type":"string"},"groupName":{"description":"Specifies the name of the DMS consumer group.\n\nChanging this parameter will create a new resource.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the DMS instance.\n\nChanging this parameter will create a new resource.\n","type":"string"}},"properties":{"assignmentStrategy":{"description":"Indicates the partition assignment policy.\n","type":"string"},"coordinatorId":{"description":"Indicates the coordinator ID.\n","type":"number"},"description":{"description":"Specifies any description for the DMS consumer group.\n\nChanging this parameter will create a new resource.\n","type":"string"},"dmsConsumerGroupV2Id":{"type":"string"},"groupMessageOffsets":{"description":"Indicates the consumer offset. The structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDmsConsumerGroupV2GroupMessageOffset:DmsConsumerGroupV2GroupMessageOffset"},"type":"array"},"groupName":{"description":"Specifies the name of the DMS consumer group.\n\nChanging this parameter will create a new resource.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the DMS instance.\n\nChanging this parameter will create a new resource.\n","type":"string"},"members":{"description":"Indicates the consumer list. The structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDmsConsumerGroupV2Member:DmsConsumerGroupV2Member"},"type":"array"},"region":{"type":"string"},"state":{"description":"Indicates the Consumer group status. The value can be: \n* Dead: The consumer group has no members and no metadata.\n* Empty: The consumer group has metadata but has no members.\n* PreparingRebalance: The consumer group is to be rebalanced.\n* CompletingRebalance: All members have jointed the group.\n* Stable: Members in the consumer group can consume messages normally.\n","type":"string"}},"required":["assignmentStrategy","coordinatorId","dmsConsumerGroupV2Id","groupMessageOffsets","groupName","instanceId","members","region","state"],"requiredInputs":["groupName","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering DmsConsumerGroupV2 resources.\n","properties":{"assignmentStrategy":{"description":"Indicates the partition assignment policy.\n","type":"string"},"coordinatorId":{"description":"Indicates the coordinator ID.\n","type":"number"},"description":{"description":"Specifies any description for the DMS consumer group.\n\nChanging this parameter will create a new resource.\n","type":"string"},"dmsConsumerGroupV2Id":{"type":"string"},"groupMessageOffsets":{"description":"Indicates the consumer offset. The structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDmsConsumerGroupV2GroupMessageOffset:DmsConsumerGroupV2GroupMessageOffset"},"type":"array"},"groupName":{"description":"Specifies the name of the DMS consumer group.\n\nChanging this parameter will create a new resource.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the DMS instance.\n\nChanging this parameter will create a new resource.\n","type":"string"},"members":{"description":"Indicates the consumer list. The structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDmsConsumerGroupV2Member:DmsConsumerGroupV2Member"},"type":"array"},"region":{"type":"string"},"state":{"description":"Indicates the Consumer group status. The value can be: \n* Dead: The consumer group has no members and no metadata.\n* Empty: The consumer group has metadata but has no members.\n* PreparingRebalance: The consumer group is to be rebalanced.\n* CompletingRebalance: All members have jointed the group.\n* Stable: Members in the consumer group can consume messages normally.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/dmsDedicatedInstanceV2:DmsDedicatedInstanceV2":{"description":"Up-to-date reference of API arguments for DMS instance you can get at\n[documentation portal](https://docs.otc.t-systems.com/distributed-message-service/api-ref/apis_v2_recommended/lifecycle_management)\n\nManages a DMS instance in the OpenTelekomCloud DMS Service (Kafka Premium/Platinum).\n## Example Usage\n\n### Create a cluster Kafka instance\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst vpcId = config.requireObject<any>(\"vpcId\");\nconst subnetId = config.requireObject<any>(\"subnetId\");\nconst securityGroupId = config.requireObject<any>(\"securityGroupId\");\nconst accessPassword = config.requireObject<any>(\"accessPassword\");\nconst flavorId = config.get(\"flavorId\") || \"c6.2u4g.cluster\";\nconst storageSpecCode = config.get(\"storageSpecCode\") || \"dms.physical.storage.ultra.v2\";\nconst test = opentelekomcloud.getDmsFlavorV2({\n    type: \"cluster\",\n    flavorId: flavorId,\n    storageSpecCode: storageSpecCode,\n});\nconst testDmsDedicatedInstanceV2 = new opentelekomcloud.DmsDedicatedInstanceV2(\"test\", {\n    name: \"kafka_test\",\n    vpcId: vpcId,\n    networkId: subnetId,\n    securityGroupId: securityGroupId,\n    flavorId: test.then(test => test.flavorId),\n    storageSpecCode: test.then(test => test.flavors?.[0]?.ios?.[0]?.storageSpecCode),\n    availableZones: [az1.id],\n    engineVersion: \"2.7\",\n    storageSpace: 600,\n    brokerNum: 3,\n    sslEnable: true,\n    accessUser: \"user\",\n    password: accessPassword,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nvpc_id = config.require_object(\"vpcId\")\nsubnet_id = config.require_object(\"subnetId\")\nsecurity_group_id = config.require_object(\"securityGroupId\")\naccess_password = config.require_object(\"accessPassword\")\nflavor_id = config.get(\"flavorId\")\nif flavor_id is None:\n    flavor_id = \"c6.2u4g.cluster\"\nstorage_spec_code = config.get(\"storageSpecCode\")\nif storage_spec_code is None:\n    storage_spec_code = \"dms.physical.storage.ultra.v2\"\ntest = opentelekomcloud.get_dms_flavor_v2(type=\"cluster\",\n    flavor_id=flavor_id,\n    storage_spec_code=storage_spec_code)\ntest_dms_dedicated_instance_v2 = opentelekomcloud.DmsDedicatedInstanceV2(\"test\",\n    name=\"kafka_test\",\n    vpc_id=vpc_id,\n    network_id=subnet_id,\n    security_group_id=security_group_id,\n    flavor_id=test.flavor_id,\n    storage_spec_code=test.flavors[0].ios[0].storage_spec_code,\n    available_zones=[az1[\"id\"]],\n    engine_version=\"2.7\",\n    storage_space=600,\n    broker_num=3,\n    ssl_enable=True,\n    access_user=\"user\",\n    password=access_password)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var vpcId = config.RequireObject<dynamic>(\"vpcId\");\n    var subnetId = config.RequireObject<dynamic>(\"subnetId\");\n    var securityGroupId = config.RequireObject<dynamic>(\"securityGroupId\");\n    var accessPassword = config.RequireObject<dynamic>(\"accessPassword\");\n    var flavorId = config.Get(\"flavorId\") ?? \"c6.2u4g.cluster\";\n    var storageSpecCode = config.Get(\"storageSpecCode\") ?? \"dms.physical.storage.ultra.v2\";\n    var test = Opentelekomcloud.GetDmsFlavorV2.Invoke(new()\n    {\n        Type = \"cluster\",\n        FlavorId = flavorId,\n        StorageSpecCode = storageSpecCode,\n    });\n\n    var testDmsDedicatedInstanceV2 = new Opentelekomcloud.DmsDedicatedInstanceV2(\"test\", new()\n    {\n        Name = \"kafka_test\",\n        VpcId = vpcId,\n        NetworkId = subnetId,\n        SecurityGroupId = securityGroupId,\n        FlavorId = test.Apply(getDmsFlavorV2Result => getDmsFlavorV2Result.FlavorId),\n        StorageSpecCode = test.Apply(getDmsFlavorV2Result => getDmsFlavorV2Result.Flavors[0]?.Ios[0]?.StorageSpecCode),\n        AvailableZones = new[]\n        {\n            az1.Id,\n        },\n        EngineVersion = \"2.7\",\n        StorageSpace = 600,\n        BrokerNum = 3,\n        SslEnable = true,\n        AccessUser = \"user\",\n        Password = accessPassword,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tvpcId := cfg.RequireObject(\"vpcId\")\n\t\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\tsecurityGroupId := cfg.RequireObject(\"securityGroupId\")\n\t\taccessPassword := cfg.RequireObject(\"accessPassword\")\n\t\tflavorId := \"c6.2u4g.cluster\"\n\t\tif param := cfg.Get(\"flavorId\"); param != \"\" {\n\t\t\tflavorId = param\n\t\t}\n\t\tstorageSpecCode := \"dms.physical.storage.ultra.v2\"\n\t\tif param := cfg.Get(\"storageSpecCode\"); param != \"\" {\n\t\t\tstorageSpecCode = param\n\t\t}\n\t\ttest, err := opentelekomcloud.GetDmsFlavorV2(ctx, &opentelekomcloud.GetDmsFlavorV2Args{\n\t\t\tType:            pulumi.StringRef(\"cluster\"),\n\t\t\tFlavorId:        pulumi.StringRef(flavorId),\n\t\t\tStorageSpecCode: pulumi.StringRef(storageSpecCode),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewDmsDedicatedInstanceV2(ctx, \"test\", &opentelekomcloud.DmsDedicatedInstanceV2Args{\n\t\t\tName:            pulumi.String(\"kafka_test\"),\n\t\t\tVpcId:           pulumi.Any(vpcId),\n\t\t\tNetworkId:       pulumi.Any(subnetId),\n\t\t\tSecurityGroupId: pulumi.Any(securityGroupId),\n\t\t\tFlavorId:        pulumi.String(test.FlavorId),\n\t\t\tStorageSpecCode: pulumi.String(test.Flavors[0].Ios[0].StorageSpecCode),\n\t\t\tAvailableZones: pulumi.StringArray{\n\t\t\t\taz1.Id,\n\t\t\t},\n\t\t\tEngineVersion: pulumi.String(\"2.7\"),\n\t\t\tStorageSpace:  pulumi.Float64(600),\n\t\t\tBrokerNum:     pulumi.Float64(3),\n\t\t\tSslEnable:     pulumi.Bool(true),\n\t\t\tAccessUser:    pulumi.String(\"user\"),\n\t\t\tPassword:      pulumi.Any(accessPassword),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDmsFlavorV2Args;\nimport com.pulumi.opentelekomcloud.DmsDedicatedInstanceV2;\nimport com.pulumi.opentelekomcloud.DmsDedicatedInstanceV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var vpcId = config.get(\"vpcId\");\n        final var subnetId = config.get(\"subnetId\");\n        final var securityGroupId = config.get(\"securityGroupId\");\n        final var accessPassword = config.get(\"accessPassword\");\n        final var flavorId = config.get(\"flavorId\").orElse(\"c6.2u4g.cluster\");\n        final var storageSpecCode = config.get(\"storageSpecCode\").orElse(\"dms.physical.storage.ultra.v2\");\n        final var test = OpentelekomcloudFunctions.getDmsFlavorV2(GetDmsFlavorV2Args.builder()\n            .type(\"cluster\")\n            .flavorId(flavorId)\n            .storageSpecCode(storageSpecCode)\n            .build());\n\n        var testDmsDedicatedInstanceV2 = new DmsDedicatedInstanceV2(\"testDmsDedicatedInstanceV2\", DmsDedicatedInstanceV2Args.builder()\n            .name(\"kafka_test\")\n            .vpcId(vpcId)\n            .networkId(subnetId)\n            .securityGroupId(securityGroupId)\n            .flavorId(test.flavorId())\n            .storageSpecCode(test.flavors()[0].ios()[0].storageSpecCode())\n            .availableZones(az1.id())\n            .engineVersion(\"2.7\")\n            .storageSpace(600.0)\n            .brokerNum(3.0)\n            .sslEnable(true)\n            .accessUser(\"user\")\n            .password(accessPassword)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  vpcId:\n    type: dynamic\n  subnetId:\n    type: dynamic\n  securityGroupId:\n    type: dynamic\n  accessPassword:\n    type: dynamic\n  flavorId:\n    type: string\n    default: c6.2u4g.cluster\n  storageSpecCode:\n    type: string\n    default: dms.physical.storage.ultra.v2\nresources:\n  testDmsDedicatedInstanceV2:\n    type: opentelekomcloud:DmsDedicatedInstanceV2\n    name: test\n    properties:\n      name: kafka_test\n      vpcId: ${vpcId}\n      networkId: ${subnetId}\n      securityGroupId: ${securityGroupId}\n      flavorId: ${test.flavorId}\n      storageSpecCode: ${test.flavors[0].ios[0].storageSpecCode}\n      availableZones:\n        - ${az1.id}\n      engineVersion: '2.7'\n      storageSpace: 600\n      brokerNum: 3\n      sslEnable: true\n      accessUser: user\n      password: ${accessPassword}\nvariables:\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getDmsFlavorV2\n      arguments:\n        type: cluster\n        flavorId: ${flavorId}\n        storageSpecCode: ${storageSpecCode}\n```\n<!--End PulumiCodeChooser -->\n\n### Create a single-node Kafka instance with floating ip\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst vpcId = config.requireObject<any>(\"vpcId\");\nconst subnetId = config.requireObject<any>(\"subnetId\");\nconst securityGroupId = config.requireObject<any>(\"securityGroupId\");\nconst accessPassword = config.requireObject<any>(\"accessPassword\");\nconst az1 = opentelekomcloud.getDmsAzV1({});\nconst test = opentelekomcloud.getDmsFlavorV2({\n    type: \"single\",\n    flavorId: \"s6.2u4g.single.small\",\n});\nconst flavor = test.then(test => test.flavors?.[0]);\nconst fip1 = new opentelekomcloud.NetworkingFloatingipV2(\"fip_1\", {});\nconst instance1 = new opentelekomcloud.DmsDedicatedInstanceV2(\"instance_1\", {\n    name: \"kafka-single-node\",\n    vpcId: vpcIp,\n    networkId: subnetId,\n    securityGroupId: securityGroupId,\n    flavorId: flavor.then(flavor => flavor?.id),\n    storageSpecCode: flavor.then(flavor => flavor?.ios?.[0]?.storageSpecCode),\n    availableZones: [az1.then(az1 => az1.id)],\n    engineVersion: \"2.7\",\n    storageSpace: 300,\n    brokerNum: 1,\n    sslEnable: true,\n    accessUser: \"user\",\n    password: accessPassword,\n    maintainBegin: \"02:00\",\n    maintainEnd: \"06:00\",\n    retentionPolicy: \"time_base\",\n    enablePublicip: true,\n    publicipIds: [fip1.networkingFloatingipV2Id],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nvpc_id = config.require_object(\"vpcId\")\nsubnet_id = config.require_object(\"subnetId\")\nsecurity_group_id = config.require_object(\"securityGroupId\")\naccess_password = config.require_object(\"accessPassword\")\naz1 = opentelekomcloud.get_dms_az_v1()\ntest = opentelekomcloud.get_dms_flavor_v2(type=\"single\",\n    flavor_id=\"s6.2u4g.single.small\")\nflavor = test.flavors[0]\nfip1 = opentelekomcloud.NetworkingFloatingipV2(\"fip_1\")\ninstance1 = opentelekomcloud.DmsDedicatedInstanceV2(\"instance_1\",\n    name=\"kafka-single-node\",\n    vpc_id=vpc_ip,\n    network_id=subnet_id,\n    security_group_id=security_group_id,\n    flavor_id=flavor.id,\n    storage_spec_code=flavor.ios[0].storage_spec_code,\n    available_zones=[az1.id],\n    engine_version=\"2.7\",\n    storage_space=300,\n    broker_num=1,\n    ssl_enable=True,\n    access_user=\"user\",\n    password=access_password,\n    maintain_begin=\"02:00\",\n    maintain_end=\"06:00\",\n    retention_policy=\"time_base\",\n    enable_publicip=True,\n    publicip_ids=[fip1.networking_floatingip_v2_id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var vpcId = config.RequireObject<dynamic>(\"vpcId\");\n    var subnetId = config.RequireObject<dynamic>(\"subnetId\");\n    var securityGroupId = config.RequireObject<dynamic>(\"securityGroupId\");\n    var accessPassword = config.RequireObject<dynamic>(\"accessPassword\");\n    var az1 = Opentelekomcloud.GetDmsAzV1.Invoke();\n\n    var test = Opentelekomcloud.GetDmsFlavorV2.Invoke(new()\n    {\n        Type = \"single\",\n        FlavorId = \"s6.2u4g.single.small\",\n    });\n\n    var flavor = test.Apply(getDmsFlavorV2Result => getDmsFlavorV2Result.Flavors[0]);\n\n    var fip1 = new Opentelekomcloud.NetworkingFloatingipV2(\"fip_1\");\n\n    var instance1 = new Opentelekomcloud.DmsDedicatedInstanceV2(\"instance_1\", new()\n    {\n        Name = \"kafka-single-node\",\n        VpcId = vpcIp,\n        NetworkId = subnetId,\n        SecurityGroupId = securityGroupId,\n        FlavorId = flavor.Apply(flavor => flavor?.Id),\n        StorageSpecCode = flavor.Apply(flavor => flavor?.Ios[0]?.StorageSpecCode),\n        AvailableZones = new[]\n        {\n            az1.Apply(getDmsAzV1Result => getDmsAzV1Result.Id),\n        },\n        EngineVersion = \"2.7\",\n        StorageSpace = 300,\n        BrokerNum = 1,\n        SslEnable = true,\n        AccessUser = \"user\",\n        Password = accessPassword,\n        MaintainBegin = \"02:00\",\n        MaintainEnd = \"06:00\",\n        RetentionPolicy = \"time_base\",\n        EnablePublicip = true,\n        PublicipIds = new[]\n        {\n            fip1.NetworkingFloatingipV2Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tvpcId := cfg.RequireObject(\"vpcId\")\n\t\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\tsecurityGroupId := cfg.RequireObject(\"securityGroupId\")\n\t\taccessPassword := cfg.RequireObject(\"accessPassword\")\n\t\taz1, err := opentelekomcloud.GetDmsAzV1(ctx, &opentelekomcloud.GetDmsAzV1Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest, err := opentelekomcloud.GetDmsFlavorV2(ctx, &opentelekomcloud.GetDmsFlavorV2Args{\n\t\t\tType:     pulumi.StringRef(\"single\"),\n\t\t\tFlavorId: pulumi.StringRef(\"s6.2u4g.single.small\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tflavor := test.Flavors[0]\n\t\tfip1, err := opentelekomcloud.NewNetworkingFloatingipV2(ctx, \"fip_1\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewDmsDedicatedInstanceV2(ctx, \"instance_1\", &opentelekomcloud.DmsDedicatedInstanceV2Args{\n\t\t\tName:            pulumi.String(\"kafka-single-node\"),\n\t\t\tVpcId:           pulumi.Any(vpcIp),\n\t\t\tNetworkId:       pulumi.Any(subnetId),\n\t\t\tSecurityGroupId: pulumi.Any(securityGroupId),\n\t\t\tFlavorId:        pulumi.String(flavor.Id),\n\t\t\tStorageSpecCode: pulumi.String(flavor.Ios[0].StorageSpecCode),\n\t\t\tAvailableZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(az1.Id),\n\t\t\t},\n\t\t\tEngineVersion:   pulumi.String(\"2.7\"),\n\t\t\tStorageSpace:    pulumi.Float64(300),\n\t\t\tBrokerNum:       pulumi.Float64(1),\n\t\t\tSslEnable:       pulumi.Bool(true),\n\t\t\tAccessUser:      pulumi.String(\"user\"),\n\t\t\tPassword:        pulumi.Any(accessPassword),\n\t\t\tMaintainBegin:   pulumi.String(\"02:00\"),\n\t\t\tMaintainEnd:     pulumi.String(\"06:00\"),\n\t\t\tRetentionPolicy: pulumi.String(\"time_base\"),\n\t\t\tEnablePublicip:  pulumi.Bool(true),\n\t\t\tPublicipIds: pulumi.StringArray{\n\t\t\t\tfip1.NetworkingFloatingipV2Id,\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.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDmsAzV1Args;\nimport com.pulumi.opentelekomcloud.inputs.GetDmsFlavorV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingFloatingipV2;\nimport com.pulumi.opentelekomcloud.DmsDedicatedInstanceV2;\nimport com.pulumi.opentelekomcloud.DmsDedicatedInstanceV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var vpcId = config.get(\"vpcId\");\n        final var subnetId = config.get(\"subnetId\");\n        final var securityGroupId = config.get(\"securityGroupId\");\n        final var accessPassword = config.get(\"accessPassword\");\n        final var az1 = OpentelekomcloudFunctions.getDmsAzV1(GetDmsAzV1Args.builder()\n            .build());\n\n        final var test = OpentelekomcloudFunctions.getDmsFlavorV2(GetDmsFlavorV2Args.builder()\n            .type(\"single\")\n            .flavorId(\"s6.2u4g.single.small\")\n            .build());\n\n        final var flavor = test.flavors()[0];\n\n        var fip1 = new NetworkingFloatingipV2(\"fip1\");\n\n        var instance1 = new DmsDedicatedInstanceV2(\"instance1\", DmsDedicatedInstanceV2Args.builder()\n            .name(\"kafka-single-node\")\n            .vpcId(vpcIp)\n            .networkId(subnetId)\n            .securityGroupId(securityGroupId)\n            .flavorId(flavor.id())\n            .storageSpecCode(flavor.ios()[0].storageSpecCode())\n            .availableZones(az1.id())\n            .engineVersion(\"2.7\")\n            .storageSpace(300.0)\n            .brokerNum(1.0)\n            .sslEnable(true)\n            .accessUser(\"user\")\n            .password(accessPassword)\n            .maintainBegin(\"02:00\")\n            .maintainEnd(\"06:00\")\n            .retentionPolicy(\"time_base\")\n            .enablePublicip(true)\n            .publicipIds(fip1.networkingFloatingipV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  vpcId:\n    type: dynamic\n  subnetId:\n    type: dynamic\n  securityGroupId:\n    type: dynamic\n  accessPassword:\n    type: dynamic\nresources:\n  fip1:\n    type: opentelekomcloud:NetworkingFloatingipV2\n    name: fip_1\n  instance1:\n    type: opentelekomcloud:DmsDedicatedInstanceV2\n    name: instance_1\n    properties:\n      name: kafka-single-node\n      vpcId: ${vpcIp}\n      networkId: ${subnetId}\n      securityGroupId: ${securityGroupId}\n      flavorId: ${flavor.id}\n      storageSpecCode: ${flavor.ios[0].storageSpecCode}\n      availableZones:\n        - ${az1.id}\n      engineVersion: '2.7'\n      storageSpace: 300\n      brokerNum: 1\n      sslEnable: true\n      accessUser: user\n      password: ${accessPassword}\n      maintainBegin: 02:00\n      maintainEnd: 06:00\n      retentionPolicy: time_base\n      enablePublicip: true\n      publicipIds:\n        - ${fip1.networkingFloatingipV2Id}\nvariables:\n  az1:\n    fn::invoke:\n      function: opentelekomcloud:getDmsAzV1\n      arguments: {}\n  test:\n    fn::invoke:\n      function: opentelekomcloud:getDmsFlavorV2\n      arguments:\n        type: single\n        flavorId: s6.2u4g.single.small\n  flavor: ${test.flavors[0]}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nDMS Kafka instance can be imported using the instance id, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/dmsDedicatedInstanceV2:DmsDedicatedInstanceV2  opentelekomcloud_dms_dedicated_instance_v2.instance_1 8d3c7938-dc47-4937-a30f-c80de381c5e3\n```\n\nNote that the imported state may not be identical to your resource definition, due to some attributes missing from the\n\nAPI response, security or some other reason. The missing attributes include:\n\n`password`, `manager_password`, `public_ip_ids`, `security_protocol`, `enabled_mechanisms` and `arch_type`.\n\nIt is generally recommended running `pulumi preview` after importing\n\na DMS Kafka instance. You can then decide if changes should be applied to the instance, or the resource definition\n\nshould be updated to align with the instance. Also, you can ignore changes as below.\n\nhcl\n\nresource \"opentelekomcloud_dms_dedicated_instance_v2\" \"instance_1\" {\n\n  lifecycle {\n\n    ignore_changes = [\n\n      \"password\",\n\n      \"used_storage_space\",\n\n      \"cross_vpc_accesses\",\n\n      \"publicip_id\",\n\n    ]\n\n  }\n\n}\n\n","inputProperties":{"accessUser":{"description":"Specifies the username of SASL_SSL user. A username consists of 4\nto 64 characters and supports only letters, digits, and hyphens (-). Changing this creates a new instance resource.\n","type":"string"},"archType":{"description":"Specifies the CPU architecture. Valid value is **X86**.\nChanging this creates a new instance resource.\n","type":"string"},"availableZones":{"description":"Indicates the ID of an AZ. The parameter value can not be\nleft blank or an empty array. For details, see section\n[Querying AZ Information](https://docs.otc.t-systems.com/distributed-message-service/api-ref/apis_v2_recommended/other_apis/listing_az_information.html#listavailablezones).\n","items":{"type":"string"},"type":"array"},"brokerNum":{"description":"Specifies the broker numbers.\n","type":"number"},"crossVpcAccesses":{"description":"Specifies the cross-VPC access information.\nThe object structure is documented below.\n\n<a name=<span pulumi-lang-nodejs=\"\"dmsCrossVpcAccesses\"\" pulumi-lang-dotnet=\"\"DmsCrossVpcAccesses\"\" pulumi-lang-go=\"\"dmsCrossVpcAccesses\"\" pulumi-lang-python=\"\"dms_cross_vpc_accesses\"\" pulumi-lang-yaml=\"\"dmsCrossVpcAccesses\"\" pulumi-lang-java=\"\"dmsCrossVpcAccesses\"\">\"dms_cross_vpc_accesses\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`crossVpcAccesses`\" pulumi-lang-dotnet=\"`CrossVpcAccesses`\" pulumi-lang-go=\"`crossVpcAccesses`\" pulumi-lang-python=\"`cross_vpc_accesses`\" pulumi-lang-yaml=\"`crossVpcAccesses`\" pulumi-lang-java=\"`crossVpcAccesses`\">`cross_vpc_accesses`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDmsDedicatedInstanceV2CrossVpcAccess:DmsDedicatedInstanceV2CrossVpcAccess"},"type":"array"},"description":{"description":"Specifies the description of the DMS Kafka instance. It is a character string\ncontaining not more than 1,024 characters.\n","type":"string"},"diskEncryptedEnable":{"description":"Indicates whether to enable disk encryption.\n","type":"boolean"},"diskEncryptedKey":{"description":"Disk encryption key. If disk encryption is not enabled, this parameter is left blank.\n","type":"string"},"dmsDedicatedInstanceV2Id":{"description":"Specifies a resource ID in UUID format.\n","type":"string"},"enablePublicip":{"description":"A list of IDs of the EIP bound to the instance.\nThis parameter is mandatory if <span pulumi-lang-nodejs=\"`enablePublicip`\" pulumi-lang-dotnet=\"`EnablePublicip`\" pulumi-lang-go=\"`enablePublicip`\" pulumi-lang-python=\"`enable_publicip`\" pulumi-lang-yaml=\"`enablePublicip`\" pulumi-lang-java=\"`enablePublicip`\">`enable_publicip`</span> is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"enabledMechanisms":{"description":"Specifies the authentication mechanisms to use after SASL is\nenabled. Value options:\n+ **PLAIN**: Simple username and password verification.\n+ **SCRAM-SHA-512**: User credential verification, which is more secure than **PLAIN**.\n\nDefaults to [**PLAIN**]. Changing this creates a new instance resource.\n","items":{"type":"string"},"type":"array"},"engineVersion":{"description":"Specifies the version of the Kafka engine,\nsuch as 2.3.0, 2.7 or other supported versions. Changing this creates a new instance resource.\n","type":"string"},"flavorId":{"description":"Specifies the Kafka [flavor ID](https://docs.otc.t-systems.com/distributed-message-service/api-ref/apis_v2_recommended/other_apis/querying_product_specifications_list.html#listengineproducts,\ne.g. **c6.2u4g.cluster**.\n","type":"string"},"ipv6Enable":{"description":"Specifies whether to enable IPv6. Defaults to **false**.\nChanging this creates a new instance resource.\n","type":"boolean"},"maintainBegin":{"description":"Specifies the time at which a maintenance time window starts. Format: HH:mm. The\nstart time and end time of a maintenance time window must indicate the time segment of a supported maintenance time\nwindow. The start time must be set to 22:00, 02:00, 06:00, 10:00, 14:00, or 18:00. Parameters <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span>\nand <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be set in pairs. If parameter <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> is left blank, parameter <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> is also\nblank. In this case, the system automatically allocates the default start time 02:00.\n","type":"string"},"maintainEnd":{"description":"Specifies the time at which a maintenance time window ends. Format: HH:mm. The\nstart time and end time of a maintenance time window must indicate the time segment of a supported maintenance time\nwindow. The end time is four hours later than the start time. For example, if the start time is 22:00, the end time is\n02:00. Parameters <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span>\nand <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be set in pairs. If parameter <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> is left blank, parameter\n<span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> is also blank. In this case, the system automatically allocates the default end time 06:00.\n","type":"string"},"name":{"description":"Specifies the name of the DMS Kafka instance. An instance name starts with a letter,\nconsists of 4 to 64 characters, and supports only letters, digits, hyphens (-) and underscores (_).\n","type":"string"},"networkId":{"description":"Specifies the ID of a subnet. Changing this creates a new instance\nresource.\n","type":"string"},"newTenantIps":{"description":"Specifies the IPv4 private IP addresses for the new brokers.\n\n> The number of specified IP addresses must be less than or equal to the number of new brokers.\n","items":{"type":"string"},"type":"array"},"password":{"description":"Specifies the password of SASL_SSL user. A password must meet the following\ncomplexity requirements: Must be 8 to 32 characters long. Must contain at least 2 of the following character types:\nlowercase letters, uppercase letters, digits, and special characters (`~!@#$%^&*()-_=+\\\\|[{}]:'\",<.>/?).\n\n> **NOTE:** <span pulumi-lang-nodejs=\"`accessUser`\" pulumi-lang-dotnet=\"`AccessUser`\" pulumi-lang-go=\"`accessUser`\" pulumi-lang-python=\"`access_user`\" pulumi-lang-yaml=\"`accessUser`\" pulumi-lang-java=\"`accessUser`\">`access_user`</span> and <span pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\">`password`</span> is mandatory and available when <span pulumi-lang-nodejs=\"`sslEnable`\" pulumi-lang-dotnet=\"`SslEnable`\" pulumi-lang-go=\"`sslEnable`\" pulumi-lang-python=\"`ssl_enable`\" pulumi-lang-yaml=\"`sslEnable`\" pulumi-lang-java=\"`sslEnable`\">`ssl_enable`</span> is **true**.\n","secret":true,"type":"string"},"publicipIds":{"items":{"type":"string"},"type":"array"},"retentionPolicy":{"description":"Specifies the action to be taken when the memory usage reaches the disk\ncapacity threshold. The valid values are as follows:\n+ **time_base**: Automatically delete the earliest messages.\n+ **produce_reject**: Stop producing new messages.\n","type":"string"},"securityGroupId":{"description":"Specifies the ID of a security group.\n","type":"string"},"securityProtocol":{"description":"Specifies the protocol to use after SASL is enabled. Value options:\n+ **SASL_SSL**: Data is encrypted with SSL certificates for high-security transmission.\n+ **SASL_PLAINTEXT**: Data is transmitted in plaintext with username and password authentication. This protocol only\nuses the SCRAM-SHA-512 mechanism and delivers high performance.\n\nDefaults to **SASL_SSL**. Changing this creates a new instance resource.\n","type":"string"},"sslEnable":{"description":"Specifies whether the Kafka SASL_SSL is enabled.\nChanging this creates a new resource.\n","type":"boolean"},"storageSpace":{"description":"Specifies the message storage capacity, the unit is GB.\nThe storage spaces corresponding to the product IDs are as follows:\n+ **c6.2u4g.cluster** (100MB bandwidth): <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span> to `300,000` GB\n+ **c6.4u8g.cluster** (300MB bandwidth): <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span> to `600,000` GB\n+ **c6.8u16g.cluster** (600MB bandwidth): <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span> to `900,000` GB\n+ **c6.12u12g.cluster**: <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span> to `900,000` GB\n+ **c6.16u32g.cluster** (1,200MB bandwidth): <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span> to `900,000` GB\n","type":"number"},"storageSpecCode":{"description":"Specifies the storage I/O specification.\nThe valid values are as follows:\n+ **dms.physical.storage.high.v2**: Type of the disk that uses high I/O.\n+ **dms.physical.storage.ultra.v2**: Type of the disk that uses ultra-high I/O.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The key/value pairs to associate with the DMS Kafka instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDmsDedicatedInstanceV2Timeouts:DmsDedicatedInstanceV2Timeouts"},"vpcId":{"description":"Specifies the ID of a VPC. Changing this creates a new instance resource.\n","type":"string"}},"properties":{"accessUser":{"description":"Specifies the username of SASL_SSL user. A username consists of 4\nto 64 characters and supports only letters, digits, and hyphens (-). Changing this creates a new instance resource.\n","type":"string"},"archType":{"description":"Specifies the CPU architecture. Valid value is **X86**.\nChanging this creates a new instance resource.\n","type":"string"},"availableZones":{"description":"Indicates the ID of an AZ. The parameter value can not be\nleft blank or an empty array. For details, see section\n[Querying AZ Information](https://docs.otc.t-systems.com/distributed-message-service/api-ref/apis_v2_recommended/other_apis/listing_az_information.html#listavailablezones).\n","items":{"type":"string"},"type":"array"},"bandwidth":{"type":"string"},"brokerNum":{"description":"Specifies the broker numbers.\n","type":"number"},"certReplaced":{"description":"Indicates whether the certificate can be replaced.\n","type":"boolean"},"connectAddress":{"description":"Indicates the IP address of the DMS Kafka instance.\n","type":"string"},"connectorNodeNum":{"description":"Indicates the number of connector node.\n","type":"number"},"createdAt":{"description":"Indicates the create time.\n","type":"string"},"crossVpcAccesses":{"description":"Specifies the cross-VPC access information.\nThe object structure is documented below.\n\n<a name=<span pulumi-lang-nodejs=\"\"dmsCrossVpcAccesses\"\" pulumi-lang-dotnet=\"\"DmsCrossVpcAccesses\"\" pulumi-lang-go=\"\"dmsCrossVpcAccesses\"\" pulumi-lang-python=\"\"dms_cross_vpc_accesses\"\" pulumi-lang-yaml=\"\"dmsCrossVpcAccesses\"\" pulumi-lang-java=\"\"dmsCrossVpcAccesses\"\">\"dms_cross_vpc_accesses\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`crossVpcAccesses`\" pulumi-lang-dotnet=\"`CrossVpcAccesses`\" pulumi-lang-go=\"`crossVpcAccesses`\" pulumi-lang-python=\"`cross_vpc_accesses`\" pulumi-lang-yaml=\"`crossVpcAccesses`\" pulumi-lang-java=\"`crossVpcAccesses`\">`cross_vpc_accesses`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDmsDedicatedInstanceV2CrossVpcAccess:DmsDedicatedInstanceV2CrossVpcAccess"},"type":"array"},"description":{"description":"Specifies the description of the DMS Kafka instance. It is a character string\ncontaining not more than 1,024 characters.\n","type":"string"},"diskEncryptedEnable":{"description":"Indicates whether to enable disk encryption.\n","type":"boolean"},"diskEncryptedKey":{"description":"Disk encryption key. If disk encryption is not enabled, this parameter is left blank.\n","type":"string"},"dmsDedicatedInstanceV2Id":{"description":"Specifies a resource ID in UUID format.\n","type":"string"},"dumping":{"description":"Whether message dumping(smart connect) is enabled.\n","type":"boolean"},"enablePublicip":{"description":"A list of IDs of the EIP bound to the instance.\nThis parameter is mandatory if <span pulumi-lang-nodejs=\"`enablePublicip`\" pulumi-lang-dotnet=\"`EnablePublicip`\" pulumi-lang-go=\"`enablePublicip`\" pulumi-lang-python=\"`enable_publicip`\" pulumi-lang-yaml=\"`enablePublicip`\" pulumi-lang-java=\"`enablePublicip`\">`enable_publicip`</span> is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"enabledMechanisms":{"description":"Specifies the authentication mechanisms to use after SASL is\nenabled. Value options:\n+ **PLAIN**: Simple username and password verification.\n+ **SCRAM-SHA-512**: User credential verification, which is more secure than **PLAIN**.\n\nDefaults to [**PLAIN**]. Changing this creates a new instance resource.\n","items":{"type":"string"},"type":"array"},"engine":{"description":"Indicates the message engine.\n","type":"string"},"engineVersion":{"description":"Specifies the version of the Kafka engine,\nsuch as 2.3.0, 2.7 or other supported versions. Changing this creates a new instance resource.\n","type":"string"},"flavorId":{"description":"Specifies the Kafka [flavor ID](https://docs.otc.t-systems.com/distributed-message-service/api-ref/apis_v2_recommended/other_apis/querying_product_specifications_list.html#listengineproducts,\ne.g. **c6.2u4g.cluster**.\n","type":"string"},"ipv6Enable":{"description":"Specifies whether to enable IPv6. Defaults to **false**.\nChanging this creates a new instance resource.\n","type":"boolean"},"maintainBegin":{"description":"Specifies the time at which a maintenance time window starts. Format: HH:mm. The\nstart time and end time of a maintenance time window must indicate the time segment of a supported maintenance time\nwindow. The start time must be set to 22:00, 02:00, 06:00, 10:00, 14:00, or 18:00. Parameters <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span>\nand <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be set in pairs. If parameter <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> is left blank, parameter <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> is also\nblank. In this case, the system automatically allocates the default start time 02:00.\n","type":"string"},"maintainEnd":{"description":"Specifies the time at which a maintenance time window ends. Format: HH:mm. The\nstart time and end time of a maintenance time window must indicate the time segment of a supported maintenance time\nwindow. The end time is four hours later than the start time. For example, if the start time is 22:00, the end time is\n02:00. Parameters <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span>\nand <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be set in pairs. If parameter <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> is left blank, parameter\n<span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> is also blank. In this case, the system automatically allocates the default end time 06:00.\n","type":"string"},"name":{"description":"Specifies the name of the DMS Kafka instance. An instance name starts with a letter,\nconsists of 4 to 64 characters, and supports only letters, digits, hyphens (-) and underscores (_).\n","type":"string"},"networkId":{"description":"Specifies the ID of a subnet. Changing this creates a new instance\nresource.\n","type":"string"},"newTenantIps":{"description":"Specifies the IPv4 private IP addresses for the new brokers.\n\n> The number of specified IP addresses must be less than or equal to the number of new brokers.\n","items":{"type":"string"},"type":"array"},"nodeNum":{"description":"Indicates the node quantity.\n","type":"number"},"partitionNum":{"description":"Indicates the number of partitions in Kafka instance.\n","type":"number"},"password":{"description":"Specifies the password of SASL_SSL user. A password must meet the following\ncomplexity requirements: Must be 8 to 32 characters long. Must contain at least 2 of the following character types:\nlowercase letters, uppercase letters, digits, and special characters (`~!@#$%^&*()-_=+\\\\|[{}]:'\",<.>/?).\n\n> **NOTE:** <span pulumi-lang-nodejs=\"`accessUser`\" pulumi-lang-dotnet=\"`AccessUser`\" pulumi-lang-go=\"`accessUser`\" pulumi-lang-python=\"`access_user`\" pulumi-lang-yaml=\"`accessUser`\" pulumi-lang-java=\"`accessUser`\">`access_user`</span> and <span pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\">`password`</span> is mandatory and available when <span pulumi-lang-nodejs=\"`sslEnable`\" pulumi-lang-dotnet=\"`SslEnable`\" pulumi-lang-go=\"`sslEnable`\" pulumi-lang-python=\"`ssl_enable`\" pulumi-lang-yaml=\"`sslEnable`\" pulumi-lang-java=\"`sslEnable`\">`ssl_enable`</span> is **true**.\n","secret":true,"type":"string"},"podConnectAddress":{"description":"Indicates the connection address on the tenant side.\n","type":"string"},"port":{"description":"The port number.\n","type":"number"},"publicBandwidth":{"description":"Indicates the public network access bandwidth.\n","type":"number"},"publicIpAddress":{"description":"Indicates the public IP addresses list of the instance.\n","type":"string"},"publicipIds":{"items":{"type":"string"},"type":"array"},"region":{"description":"The region in which DMS Kafka instance is created.\n","type":"string"},"resourceSpecCode":{"description":"Indicates a resource specifications identifier.\n","type":"string"},"retentionPolicy":{"description":"Specifies the action to be taken when the memory usage reaches the disk\ncapacity threshold. The valid values are as follows:\n+ **time_base**: Automatically delete the earliest messages.\n+ **produce_reject**: Stop producing new messages.\n","type":"string"},"securityGroupId":{"description":"Specifies the ID of a security group.\n","type":"string"},"securityProtocol":{"description":"Specifies the protocol to use after SASL is enabled. Value options:\n+ **SASL_SSL**: Data is encrypted with SSL certificates for high-security transmission.\n+ **SASL_PLAINTEXT**: Data is transmitted in plaintext with username and password authentication. This protocol only\nuses the SCRAM-SHA-512 mechanism and delivers high performance.\n\nDefaults to **SASL_SSL**. Changing this creates a new instance resource.\n","type":"string"},"sslEnable":{"description":"Specifies whether the Kafka SASL_SSL is enabled.\nChanging this creates a new resource.\n","type":"boolean"},"sslTwoWayEnable":{"description":"Indicates whether to enable two-way authentication.\n","type":"boolean"},"status":{"description":"Indicates the status of the DMS Kafka instance.\n","type":"string"},"storageResourceId":{"description":"Indicates the storage resource ID.\n","type":"string"},"storageSpace":{"description":"Specifies the message storage capacity, the unit is GB.\nThe storage spaces corresponding to the product IDs are as follows:\n+ **c6.2u4g.cluster** (100MB bandwidth): <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span> to `300,000` GB\n+ **c6.4u8g.cluster** (300MB bandwidth): <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span> to `600,000` GB\n+ **c6.8u16g.cluster** (600MB bandwidth): <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span> to `900,000` GB\n+ **c6.12u12g.cluster**: <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span> to `900,000` GB\n+ **c6.16u32g.cluster** (1,200MB bandwidth): <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span> to `900,000` GB\n","type":"number"},"storageSpecCode":{"description":"Specifies the storage I/O specification.\nThe valid values are as follows:\n+ **dms.physical.storage.high.v2**: Type of the disk that uses high I/O.\n+ **dms.physical.storage.ultra.v2**: Type of the disk that uses ultra-high I/O.\n","type":"string"},"storageType":{"description":"Indicates the storage type.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The key/value pairs to associate with the DMS Kafka instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDmsDedicatedInstanceV2Timeouts:DmsDedicatedInstanceV2Timeouts"},"type":{"description":"Indicates the DMS Kafka instance type.\n","type":"string"},"usedStorageSpace":{"description":"Indicates the used message storage space. Unit: GB\n","type":"number"},"userId":{"description":"Indicates the ID of the user who created the DMS Kafka instance\n","type":"string"},"userName":{"description":"Indicates the name of the user who created the DMS Kafka instance\n","type":"string"},"vpcId":{"description":"Specifies the ID of a VPC. Changing this creates a new instance resource.\n","type":"string"}},"required":["availableZones","bandwidth","brokerNum","certReplaced","connectAddress","connectorNodeNum","createdAt","diskEncryptedEnable","diskEncryptedKey","dmsDedicatedInstanceV2Id","dumping","enablePublicip","engine","engineVersion","flavorId","ipv6Enable","maintainBegin","maintainEnd","name","networkId","nodeNum","partitionNum","podConnectAddress","port","publicBandwidth","publicIpAddress","region","resourceSpecCode","retentionPolicy","securityGroupId","sslEnable","sslTwoWayEnable","status","storageResourceId","storageSpace","storageSpecCode","storageType","type","usedStorageSpace","userId","userName","vpcId"],"requiredInputs":["brokerNum","engineVersion","flavorId","networkId","securityGroupId","storageSpace","storageSpecCode","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering DmsDedicatedInstanceV2 resources.\n","properties":{"accessUser":{"description":"Specifies the username of SASL_SSL user. A username consists of 4\nto 64 characters and supports only letters, digits, and hyphens (-). Changing this creates a new instance resource.\n","type":"string"},"archType":{"description":"Specifies the CPU architecture. Valid value is **X86**.\nChanging this creates a new instance resource.\n","type":"string"},"availableZones":{"description":"Indicates the ID of an AZ. The parameter value can not be\nleft blank or an empty array. For details, see section\n[Querying AZ Information](https://docs.otc.t-systems.com/distributed-message-service/api-ref/apis_v2_recommended/other_apis/listing_az_information.html#listavailablezones).\n","items":{"type":"string"},"type":"array"},"bandwidth":{"type":"string"},"brokerNum":{"description":"Specifies the broker numbers.\n","type":"number"},"certReplaced":{"description":"Indicates whether the certificate can be replaced.\n","type":"boolean"},"connectAddress":{"description":"Indicates the IP address of the DMS Kafka instance.\n","type":"string"},"connectorNodeNum":{"description":"Indicates the number of connector node.\n","type":"number"},"createdAt":{"description":"Indicates the create time.\n","type":"string"},"crossVpcAccesses":{"description":"Specifies the cross-VPC access information.\nThe object structure is documented below.\n\n<a name=<span pulumi-lang-nodejs=\"\"dmsCrossVpcAccesses\"\" pulumi-lang-dotnet=\"\"DmsCrossVpcAccesses\"\" pulumi-lang-go=\"\"dmsCrossVpcAccesses\"\" pulumi-lang-python=\"\"dms_cross_vpc_accesses\"\" pulumi-lang-yaml=\"\"dmsCrossVpcAccesses\"\" pulumi-lang-java=\"\"dmsCrossVpcAccesses\"\">\"dms_cross_vpc_accesses\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`crossVpcAccesses`\" pulumi-lang-dotnet=\"`CrossVpcAccesses`\" pulumi-lang-go=\"`crossVpcAccesses`\" pulumi-lang-python=\"`cross_vpc_accesses`\" pulumi-lang-yaml=\"`crossVpcAccesses`\" pulumi-lang-java=\"`crossVpcAccesses`\">`cross_vpc_accesses`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDmsDedicatedInstanceV2CrossVpcAccess:DmsDedicatedInstanceV2CrossVpcAccess"},"type":"array"},"description":{"description":"Specifies the description of the DMS Kafka instance. It is a character string\ncontaining not more than 1,024 characters.\n","type":"string"},"diskEncryptedEnable":{"description":"Indicates whether to enable disk encryption.\n","type":"boolean"},"diskEncryptedKey":{"description":"Disk encryption key. If disk encryption is not enabled, this parameter is left blank.\n","type":"string"},"dmsDedicatedInstanceV2Id":{"description":"Specifies a resource ID in UUID format.\n","type":"string"},"dumping":{"description":"Whether message dumping(smart connect) is enabled.\n","type":"boolean"},"enablePublicip":{"description":"A list of IDs of the EIP bound to the instance.\nThis parameter is mandatory if <span pulumi-lang-nodejs=\"`enablePublicip`\" pulumi-lang-dotnet=\"`EnablePublicip`\" pulumi-lang-go=\"`enablePublicip`\" pulumi-lang-python=\"`enable_publicip`\" pulumi-lang-yaml=\"`enablePublicip`\" pulumi-lang-java=\"`enablePublicip`\">`enable_publicip`</span> is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"enabledMechanisms":{"description":"Specifies the authentication mechanisms to use after SASL is\nenabled. Value options:\n+ **PLAIN**: Simple username and password verification.\n+ **SCRAM-SHA-512**: User credential verification, which is more secure than **PLAIN**.\n\nDefaults to [**PLAIN**]. Changing this creates a new instance resource.\n","items":{"type":"string"},"type":"array"},"engine":{"description":"Indicates the message engine.\n","type":"string"},"engineVersion":{"description":"Specifies the version of the Kafka engine,\nsuch as 2.3.0, 2.7 or other supported versions. Changing this creates a new instance resource.\n","type":"string"},"flavorId":{"description":"Specifies the Kafka [flavor ID](https://docs.otc.t-systems.com/distributed-message-service/api-ref/apis_v2_recommended/other_apis/querying_product_specifications_list.html#listengineproducts,\ne.g. **c6.2u4g.cluster**.\n","type":"string"},"ipv6Enable":{"description":"Specifies whether to enable IPv6. Defaults to **false**.\nChanging this creates a new instance resource.\n","type":"boolean"},"maintainBegin":{"description":"Specifies the time at which a maintenance time window starts. Format: HH:mm. The\nstart time and end time of a maintenance time window must indicate the time segment of a supported maintenance time\nwindow. The start time must be set to 22:00, 02:00, 06:00, 10:00, 14:00, or 18:00. Parameters <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span>\nand <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be set in pairs. If parameter <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> is left blank, parameter <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> is also\nblank. In this case, the system automatically allocates the default start time 02:00.\n","type":"string"},"maintainEnd":{"description":"Specifies the time at which a maintenance time window ends. Format: HH:mm. The\nstart time and end time of a maintenance time window must indicate the time segment of a supported maintenance time\nwindow. The end time is four hours later than the start time. For example, if the start time is 22:00, the end time is\n02:00. Parameters <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span>\nand <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be set in pairs. If parameter <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> is left blank, parameter\n<span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> is also blank. In this case, the system automatically allocates the default end time 06:00.\n","type":"string"},"name":{"description":"Specifies the name of the DMS Kafka instance. An instance name starts with a letter,\nconsists of 4 to 64 characters, and supports only letters, digits, hyphens (-) and underscores (_).\n","type":"string"},"networkId":{"description":"Specifies the ID of a subnet. Changing this creates a new instance\nresource.\n","type":"string"},"newTenantIps":{"description":"Specifies the IPv4 private IP addresses for the new brokers.\n\n> The number of specified IP addresses must be less than or equal to the number of new brokers.\n","items":{"type":"string"},"type":"array"},"nodeNum":{"description":"Indicates the node quantity.\n","type":"number"},"partitionNum":{"description":"Indicates the number of partitions in Kafka instance.\n","type":"number"},"password":{"description":"Specifies the password of SASL_SSL user. A password must meet the following\ncomplexity requirements: Must be 8 to 32 characters long. Must contain at least 2 of the following character types:\nlowercase letters, uppercase letters, digits, and special characters (`~!@#$%^&*()-_=+\\\\|[{}]:'\",<.>/?).\n\n> **NOTE:** <span pulumi-lang-nodejs=\"`accessUser`\" pulumi-lang-dotnet=\"`AccessUser`\" pulumi-lang-go=\"`accessUser`\" pulumi-lang-python=\"`access_user`\" pulumi-lang-yaml=\"`accessUser`\" pulumi-lang-java=\"`accessUser`\">`access_user`</span> and <span pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\">`password`</span> is mandatory and available when <span pulumi-lang-nodejs=\"`sslEnable`\" pulumi-lang-dotnet=\"`SslEnable`\" pulumi-lang-go=\"`sslEnable`\" pulumi-lang-python=\"`ssl_enable`\" pulumi-lang-yaml=\"`sslEnable`\" pulumi-lang-java=\"`sslEnable`\">`ssl_enable`</span> is **true**.\n","secret":true,"type":"string"},"podConnectAddress":{"description":"Indicates the connection address on the tenant side.\n","type":"string"},"port":{"description":"The port number.\n","type":"number"},"publicBandwidth":{"description":"Indicates the public network access bandwidth.\n","type":"number"},"publicIpAddress":{"description":"Indicates the public IP addresses list of the instance.\n","type":"string"},"publicipIds":{"items":{"type":"string"},"type":"array"},"region":{"description":"The region in which DMS Kafka instance is created.\n","type":"string"},"resourceSpecCode":{"description":"Indicates a resource specifications identifier.\n","type":"string"},"retentionPolicy":{"description":"Specifies the action to be taken when the memory usage reaches the disk\ncapacity threshold. The valid values are as follows:\n+ **time_base**: Automatically delete the earliest messages.\n+ **produce_reject**: Stop producing new messages.\n","type":"string"},"securityGroupId":{"description":"Specifies the ID of a security group.\n","type":"string"},"securityProtocol":{"description":"Specifies the protocol to use after SASL is enabled. Value options:\n+ **SASL_SSL**: Data is encrypted with SSL certificates for high-security transmission.\n+ **SASL_PLAINTEXT**: Data is transmitted in plaintext with username and password authentication. This protocol only\nuses the SCRAM-SHA-512 mechanism and delivers high performance.\n\nDefaults to **SASL_SSL**. Changing this creates a new instance resource.\n","type":"string"},"sslEnable":{"description":"Specifies whether the Kafka SASL_SSL is enabled.\nChanging this creates a new resource.\n","type":"boolean"},"sslTwoWayEnable":{"description":"Indicates whether to enable two-way authentication.\n","type":"boolean"},"status":{"description":"Indicates the status of the DMS Kafka instance.\n","type":"string"},"storageResourceId":{"description":"Indicates the storage resource ID.\n","type":"string"},"storageSpace":{"description":"Specifies the message storage capacity, the unit is GB.\nThe storage spaces corresponding to the product IDs are as follows:\n+ **c6.2u4g.cluster** (100MB bandwidth): <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span> to `300,000` GB\n+ **c6.4u8g.cluster** (300MB bandwidth): <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span> to `600,000` GB\n+ **c6.8u16g.cluster** (600MB bandwidth): <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span> to `900,000` GB\n+ **c6.12u12g.cluster**: <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span> to `900,000` GB\n+ **c6.16u32g.cluster** (1,200MB bandwidth): <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span> to `900,000` GB\n","type":"number"},"storageSpecCode":{"description":"Specifies the storage I/O specification.\nThe valid values are as follows:\n+ **dms.physical.storage.high.v2**: Type of the disk that uses high I/O.\n+ **dms.physical.storage.ultra.v2**: Type of the disk that uses ultra-high I/O.\n","type":"string"},"storageType":{"description":"Indicates the storage type.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The key/value pairs to associate with the DMS Kafka instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDmsDedicatedInstanceV2Timeouts:DmsDedicatedInstanceV2Timeouts"},"type":{"description":"Indicates the DMS Kafka instance type.\n","type":"string"},"usedStorageSpace":{"description":"Indicates the used message storage space. Unit: GB\n","type":"number"},"userId":{"description":"Indicates the ID of the user who created the DMS Kafka instance\n","type":"string"},"userName":{"description":"Indicates the name of the user who created the DMS Kafka instance\n","type":"string"},"vpcId":{"description":"Specifies the ID of a VPC. Changing this creates a new instance resource.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/dmsInstanceV1:DmsInstanceV1":{"description":"Up-to-date reference of API arguments for DMS instance you can get at\n[documentation portal](https://docs.otc.t-systems.com/distributed-message-service/api-ref/out-of-date_apis/api_v1/apis_for_managing_instances)\n\nManages a DMS instance in the OpenTelekomCloud DMS Service (Kafka Premium/Platinum).\n\n## Example Usage\n\n### Automatically detect the correct network\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst secgroup1 = new opentelekomcloud.NetworkingSecgroupV2(\"secgroup_1\", {\n    name: \"secgroup_1\",\n    description: \"secgroup_1\",\n});\nconst az1 = opentelekomcloud.getDmsAzV1({\n    name: \"eu-de-01\",\n});\nconst product1 = opentelekomcloud.getDmsProductV1({\n    engine: \"kafka\",\n    version: \"2.3.0\",\n    instanceType: \"cluster\",\n    partitionNum: \"300\",\n    storage: \"600\",\n    storageSpecCode: \"dms.physical.storage.high\",\n});\nconst instance1 = new opentelekomcloud.DmsInstanceV1(\"instance_1\", {\n    name: \"kafka-test\",\n    engine: \"kafka\",\n    productId: product1.then(product1 => product1.id),\n    engineVersion: product1.then(product1 => product1.version),\n    specification: product1.then(product1 => product1.bandwidth),\n    partitionNum: product1.then(product1 => product1.partitionNum),\n    storageSpecCode: product1.then(product1 => product1.storageSpecCode),\n    storageSpace: product1.then(product1 => product1.storage),\n    availableZones: [az1.then(az1 => az1.id)],\n    securityGroupId: secgroup1.networkingSecgroupV2Id,\n    vpcId: vpcId,\n    subnetId: subnetId,\n    accessUser: accessUser,\n    password: password,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nsecgroup1 = opentelekomcloud.NetworkingSecgroupV2(\"secgroup_1\",\n    name=\"secgroup_1\",\n    description=\"secgroup_1\")\naz1 = opentelekomcloud.get_dms_az_v1(name=\"eu-de-01\")\nproduct1 = opentelekomcloud.get_dms_product_v1(engine=\"kafka\",\n    version=\"2.3.0\",\n    instance_type=\"cluster\",\n    partition_num=\"300\",\n    storage=\"600\",\n    storage_spec_code=\"dms.physical.storage.high\")\ninstance1 = opentelekomcloud.DmsInstanceV1(\"instance_1\",\n    name=\"kafka-test\",\n    engine=\"kafka\",\n    product_id=product1.id,\n    engine_version=product1.version,\n    specification=product1.bandwidth,\n    partition_num=product1.partition_num,\n    storage_spec_code=product1.storage_spec_code,\n    storage_space=product1.storage,\n    available_zones=[az1.id],\n    security_group_id=secgroup1.networking_secgroup_v2_id,\n    vpc_id=vpc_id,\n    subnet_id=subnet_id,\n    access_user=access_user,\n    password=password)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var secgroup1 = new Opentelekomcloud.NetworkingSecgroupV2(\"secgroup_1\", new()\n    {\n        Name = \"secgroup_1\",\n        Description = \"secgroup_1\",\n    });\n\n    var az1 = Opentelekomcloud.GetDmsAzV1.Invoke(new()\n    {\n        Name = \"eu-de-01\",\n    });\n\n    var product1 = Opentelekomcloud.GetDmsProductV1.Invoke(new()\n    {\n        Engine = \"kafka\",\n        Version = \"2.3.0\",\n        InstanceType = \"cluster\",\n        PartitionNum = \"300\",\n        Storage = \"600\",\n        StorageSpecCode = \"dms.physical.storage.high\",\n    });\n\n    var instance1 = new Opentelekomcloud.DmsInstanceV1(\"instance_1\", new()\n    {\n        Name = \"kafka-test\",\n        Engine = \"kafka\",\n        ProductId = product1.Apply(getDmsProductV1Result => getDmsProductV1Result.Id),\n        EngineVersion = product1.Apply(getDmsProductV1Result => getDmsProductV1Result.Version),\n        Specification = product1.Apply(getDmsProductV1Result => getDmsProductV1Result.Bandwidth),\n        PartitionNum = product1.Apply(getDmsProductV1Result => getDmsProductV1Result.PartitionNum),\n        StorageSpecCode = product1.Apply(getDmsProductV1Result => getDmsProductV1Result.StorageSpecCode),\n        StorageSpace = product1.Apply(getDmsProductV1Result => getDmsProductV1Result.Storage),\n        AvailableZones = new[]\n        {\n            az1.Apply(getDmsAzV1Result => getDmsAzV1Result.Id),\n        },\n        SecurityGroupId = secgroup1.NetworkingSecgroupV2Id,\n        VpcId = vpcId,\n        SubnetId = subnetId,\n        AccessUser = accessUser,\n        Password = password,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsecgroup1, err := opentelekomcloud.NewNetworkingSecgroupV2(ctx, \"secgroup_1\", &opentelekomcloud.NetworkingSecgroupV2Args{\n\t\t\tName:        pulumi.String(\"secgroup_1\"),\n\t\t\tDescription: pulumi.String(\"secgroup_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\taz1, err := opentelekomcloud.GetDmsAzV1(ctx, &opentelekomcloud.GetDmsAzV1Args{\n\t\t\tName: pulumi.StringRef(\"eu-de-01\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproduct1, err := opentelekomcloud.GetDmsProductV1(ctx, &opentelekomcloud.GetDmsProductV1Args{\n\t\t\tEngine:          \"kafka\",\n\t\t\tVersion:         pulumi.StringRef(\"2.3.0\"),\n\t\t\tInstanceType:    \"cluster\",\n\t\t\tPartitionNum:    pulumi.StringRef(\"300\"),\n\t\t\tStorage:         pulumi.StringRef(\"600\"),\n\t\t\tStorageSpecCode: pulumi.StringRef(\"dms.physical.storage.high\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewDmsInstanceV1(ctx, \"instance_1\", &opentelekomcloud.DmsInstanceV1Args{\n\t\t\tName:            pulumi.String(\"kafka-test\"),\n\t\t\tEngine:          pulumi.String(\"kafka\"),\n\t\t\tProductId:       pulumi.String(product1.Id),\n\t\t\tEngineVersion:   pulumi.String(product1.Version),\n\t\t\tSpecification:   pulumi.String(product1.Bandwidth),\n\t\t\tPartitionNum:    pulumi.String(product1.PartitionNum),\n\t\t\tStorageSpecCode: pulumi.String(product1.StorageSpecCode),\n\t\t\tStorageSpace:    pulumi.String(product1.Storage),\n\t\t\tAvailableZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(az1.Id),\n\t\t\t},\n\t\t\tSecurityGroupId: secgroup1.NetworkingSecgroupV2Id,\n\t\t\tVpcId:           pulumi.Any(vpcId),\n\t\t\tSubnetId:        pulumi.Any(subnetId),\n\t\t\tAccessUser:      pulumi.Any(accessUser),\n\t\t\tPassword:        pulumi.Any(password),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.NetworkingSecgroupV2;\nimport com.pulumi.opentelekomcloud.NetworkingSecgroupV2Args;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDmsAzV1Args;\nimport com.pulumi.opentelekomcloud.inputs.GetDmsProductV1Args;\nimport com.pulumi.opentelekomcloud.DmsInstanceV1;\nimport com.pulumi.opentelekomcloud.DmsInstanceV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var secgroup1 = new NetworkingSecgroupV2(\"secgroup1\", NetworkingSecgroupV2Args.builder()\n            .name(\"secgroup_1\")\n            .description(\"secgroup_1\")\n            .build());\n\n        final var az1 = OpentelekomcloudFunctions.getDmsAzV1(GetDmsAzV1Args.builder()\n            .name(\"eu-de-01\")\n            .build());\n\n        final var product1 = OpentelekomcloudFunctions.getDmsProductV1(GetDmsProductV1Args.builder()\n            .engine(\"kafka\")\n            .version(\"2.3.0\")\n            .instanceType(\"cluster\")\n            .partitionNum(\"300\")\n            .storage(\"600\")\n            .storageSpecCode(\"dms.physical.storage.high\")\n            .build());\n\n        var instance1 = new DmsInstanceV1(\"instance1\", DmsInstanceV1Args.builder()\n            .name(\"kafka-test\")\n            .engine(\"kafka\")\n            .productId(product1.id())\n            .engineVersion(product1.version())\n            .specification(product1.bandwidth())\n            .partitionNum(product1.partitionNum())\n            .storageSpecCode(product1.storageSpecCode())\n            .storageSpace(product1.storage())\n            .availableZones(az1.id())\n            .securityGroupId(secgroup1.networkingSecgroupV2Id())\n            .vpcId(vpcId)\n            .subnetId(subnetId)\n            .accessUser(accessUser)\n            .password(password)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  secgroup1:\n    type: opentelekomcloud:NetworkingSecgroupV2\n    name: secgroup_1\n    properties:\n      name: secgroup_1\n      description: secgroup_1\n  instance1:\n    type: opentelekomcloud:DmsInstanceV1\n    name: instance_1\n    properties:\n      name: kafka-test\n      engine: kafka\n      productId: ${product1.id}\n      engineVersion: ${product1.version}\n      specification: ${product1.bandwidth}\n      partitionNum: ${product1.partitionNum}\n      storageSpecCode: ${product1.storageSpecCode}\n      storageSpace: ${product1.storage}\n      availableZones:\n        - ${az1.id}\n      securityGroupId: ${secgroup1.networkingSecgroupV2Id}\n      vpcId: ${vpcId}\n      subnetId: ${subnetId}\n      accessUser: ${accessUser}\n      password: ${password}\nvariables:\n  az1:\n    fn::invoke:\n      function: opentelekomcloud:getDmsAzV1\n      arguments:\n        name: eu-de-01\n  product1:\n    fn::invoke:\n      function: opentelekomcloud:getDmsProductV1\n      arguments:\n        engine: kafka\n        version: 2.3.0\n        instanceType: cluster\n        partitionNum: 300\n        storage: 600\n        storageSpecCode: dms.physical.storage.high\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"accessUser":{"description":"Indicates a username. A username consists of 4 to 64 characters\nand supports only letters, digits, and hyphens (-).\n","type":"string"},"availableZones":{"description":"Indicates the ID of an AZ. The parameter value can not be\nleft blank or an empty array. For details, see section\n[Querying AZ Information](https://docs.otc.t-systems.com/en-us/api/dms/dms-api-180514008.html).\n","items":{"type":"string"},"type":"array"},"description":{"description":"Indicates the description of an instance. It is a character\nstring containing not more than 1024 characters.\n","type":"string"},"dmsInstanceV1Id":{"type":"string"},"engine":{"description":"Indicates a message engine. Only <span pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\">`kafka`</span> is supported now.\n","type":"string"},"engineVersion":{"description":"Indicates the version of a message engine.\nOnly `2.3.0` is supported now.\n","type":"string"},"maintainBegin":{"description":"Indicates the time at which a maintenance time window starts.\nFormat: `HH:mm`.\n* The start time and end time of a maintenance time window must indicate the time segment of\na supported maintenance time window.\n* The start time must be set to `22:00`, `02:00`, `06:00`, `10:00`, `14:00`, or `18:00`.\n* Parameters <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> and <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be set in pairs. If parameter <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span>\nis left blank, parameter <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> is also blank. In this case, the system automatically\nallocates the default start time `02:00`.\n","type":"string"},"maintainEnd":{"description":"Indicates the time at which a maintenance time window ends.\nFormat: `HH:mm`.\n* The start time and end time of a maintenance time window must indicate the time segment of\na supported maintenance time window.\n* The end time is four hours later than the start time. For example, if the start time is `22:00`,\nthe end time is `02:00`.\n* Parameters <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> and <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be set in pairs. If parameter <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> is left\nblank, parameter <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> is also blank. In this case, the system automatically allocates\nthe default end time `06:00`.\n","type":"string"},"name":{"description":"Indicates the name of an instance. An instance name starts with a letter,\nconsists of 4 to 64 characters, and supports only letters, digits, and hyphens (-).\n","type":"string"},"partitionNum":{"description":"This parameter is mandatory when a <span pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\">`kafka`</span> instance is created.\nIndicates the maximum number of topics in a Kafka instance.\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `100MB`: <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span>\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `300MB`: <span pulumi-lang-nodejs=\"`900`\" pulumi-lang-dotnet=\"`900`\" pulumi-lang-go=\"`900`\" pulumi-lang-python=\"`900`\" pulumi-lang-yaml=\"`900`\" pulumi-lang-java=\"`900`\">`900`</span>\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `600MB`: <span pulumi-lang-nodejs=\"`1800`\" pulumi-lang-dotnet=\"`1800`\" pulumi-lang-go=\"`1800`\" pulumi-lang-python=\"`1800`\" pulumi-lang-yaml=\"`1800`\" pulumi-lang-java=\"`1800`\">`1800`</span>\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `1200MB`: <span pulumi-lang-nodejs=\"`1800`\" pulumi-lang-dotnet=\"`1800`\" pulumi-lang-go=\"`1800`\" pulumi-lang-python=\"`1800`\" pulumi-lang-yaml=\"`1800`\" pulumi-lang-java=\"`1800`\">`1800`</span>\n","type":"number"},"password":{"description":"Indicates the password of an instance. An instance password\nmust meet the following complexity requirements: Must be 8 to 32 characters long.\nMust contain at least 2 of the following character types: lowercase letters, uppercase\nletters, digits, and special characters (`~!@#$%^&*()-_=+\\|[{}]:'\",<.>/?`).\n","secret":true,"type":"string"},"productId":{"description":"Indicates a product ID.\n","type":"string"},"retentionPolicy":{"description":"Indicates the action to be taken when the memory usage reaches\nthe disk capacity threshold. The possible values are:\n","type":"string"},"securityGroupId":{"description":"Indicates the ID of a security group.\n","type":"string"},"specification":{"description":"This parameter is mandatory if the engine is <span pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\">`kafka`</span>.\nIndicates the baseline bandwidth of a Kafka instance, that is, the maximum amount\nof data transferred per unit time. Unit: `byte/s`. Options: `100MB`, `300MB`,\n`600MB`, `1200MB`.\n","type":"string"},"storageSpace":{"description":"Indicates the message storage space. Value range:\n* Kafka instance with <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> being `100MB`: <span pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\">`600`</span>–<span pulumi-lang-nodejs=\"`90000`\" pulumi-lang-dotnet=\"`90000`\" pulumi-lang-go=\"`90000`\" pulumi-lang-python=\"`90000`\" pulumi-lang-yaml=\"`90000`\" pulumi-lang-java=\"`90000`\">`90000`</span> GB\n* Kafka instance with <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> being `300MB`: <span pulumi-lang-nodejs=\"`1200`\" pulumi-lang-dotnet=\"`1200`\" pulumi-lang-go=\"`1200`\" pulumi-lang-python=\"`1200`\" pulumi-lang-yaml=\"`1200`\" pulumi-lang-java=\"`1200`\">`1200`</span>–<span pulumi-lang-nodejs=\"`90000`\" pulumi-lang-dotnet=\"`90000`\" pulumi-lang-go=\"`90000`\" pulumi-lang-python=\"`90000`\" pulumi-lang-yaml=\"`90000`\" pulumi-lang-java=\"`90000`\">`90000`</span> GB\n* Kafka instance with <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> being `600MB`: <span pulumi-lang-nodejs=\"`2400`\" pulumi-lang-dotnet=\"`2400`\" pulumi-lang-go=\"`2400`\" pulumi-lang-python=\"`2400`\" pulumi-lang-yaml=\"`2400`\" pulumi-lang-java=\"`2400`\">`2400`</span>–<span pulumi-lang-nodejs=\"`90000`\" pulumi-lang-dotnet=\"`90000`\" pulumi-lang-go=\"`90000`\" pulumi-lang-python=\"`90000`\" pulumi-lang-yaml=\"`90000`\" pulumi-lang-java=\"`90000`\">`90000`</span> GB\n* Kafka instance with <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> being `1200MB`: <span pulumi-lang-nodejs=\"`4800`\" pulumi-lang-dotnet=\"`4800`\" pulumi-lang-go=\"`4800`\" pulumi-lang-python=\"`4800`\" pulumi-lang-yaml=\"`4800`\" pulumi-lang-java=\"`4800`\">`4800`</span>–<span pulumi-lang-nodejs=\"`90000`\" pulumi-lang-dotnet=\"`90000`\" pulumi-lang-go=\"`90000`\" pulumi-lang-python=\"`90000`\" pulumi-lang-yaml=\"`90000`\" pulumi-lang-java=\"`90000`\">`90000`</span> GB\n","type":"number"},"storageSpecCode":{"description":"Indicates the storage I/O specification. Options for a Kafka instance:\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `100MB`: `dms.physical.storage.high` or `dms.physical.storage.ultra`\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `300MB`: `dms.physical.storage.high` or `dms.physical.storage.ultra`\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `600MB`: `dms.physical.storage.ultra`\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `1200MB`: `dms.physical.storage.ultra`\n","type":"string"},"subnetId":{"description":"Indicates the ID of the subnet (OpenStack network ID).\n","type":"string"},"vpcId":{"description":"Indicates the ID of a VPC (OpenStack router ID).\n","type":"string"}},"properties":{"accessUser":{"description":"Indicates a username. A username consists of 4 to 64 characters\nand supports only letters, digits, and hyphens (-).\n","type":"string"},"availableZones":{"description":"Indicates the ID of an AZ. The parameter value can not be\nleft blank or an empty array. For details, see section\n[Querying AZ Information](https://docs.otc.t-systems.com/en-us/api/dms/dms-api-180514008.html).\n","items":{"type":"string"},"type":"array"},"connectAddress":{"description":"Indicates the IP address of an instance.\n","type":"string"},"createdAt":{"description":"Indicates the time when an instance is created. The time is in the format\nof timestamp, that is, the offset milliseconds from 1970-01-01 00:00:00 UTC to the specified time.\n","type":"string"},"description":{"description":"Indicates the description of an instance. It is a character\nstring containing not more than 1024 characters.\n","type":"string"},"dmsInstanceV1Id":{"type":"string"},"engine":{"description":"Indicates a message engine. Only <span pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\">`kafka`</span> is supported now.\n","type":"string"},"engineVersion":{"description":"Indicates the version of a message engine.\nOnly `2.3.0` is supported now.\n","type":"string"},"maintainBegin":{"description":"Indicates the time at which a maintenance time window starts.\nFormat: `HH:mm`.\n* The start time and end time of a maintenance time window must indicate the time segment of\na supported maintenance time window.\n* The start time must be set to `22:00`, `02:00`, `06:00`, `10:00`, `14:00`, or `18:00`.\n* Parameters <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> and <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be set in pairs. If parameter <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span>\nis left blank, parameter <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> is also blank. In this case, the system automatically\nallocates the default start time `02:00`.\n","type":"string"},"maintainEnd":{"description":"Indicates the time at which a maintenance time window ends.\nFormat: `HH:mm`.\n* The start time and end time of a maintenance time window must indicate the time segment of\na supported maintenance time window.\n* The end time is four hours later than the start time. For example, if the start time is `22:00`,\nthe end time is `02:00`.\n* Parameters <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> and <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be set in pairs. If parameter <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> is left\nblank, parameter <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> is also blank. In this case, the system automatically allocates\nthe default end time `06:00`.\n","type":"string"},"name":{"description":"Indicates the name of an instance. An instance name starts with a letter,\nconsists of 4 to 64 characters, and supports only letters, digits, and hyphens (-).\n","type":"string"},"orderId":{"type":"string"},"partitionNum":{"description":"This parameter is mandatory when a <span pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\">`kafka`</span> instance is created.\nIndicates the maximum number of topics in a Kafka instance.\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `100MB`: <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span>\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `300MB`: <span pulumi-lang-nodejs=\"`900`\" pulumi-lang-dotnet=\"`900`\" pulumi-lang-go=\"`900`\" pulumi-lang-python=\"`900`\" pulumi-lang-yaml=\"`900`\" pulumi-lang-java=\"`900`\">`900`</span>\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `600MB`: <span pulumi-lang-nodejs=\"`1800`\" pulumi-lang-dotnet=\"`1800`\" pulumi-lang-go=\"`1800`\" pulumi-lang-python=\"`1800`\" pulumi-lang-yaml=\"`1800`\" pulumi-lang-java=\"`1800`\">`1800`</span>\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `1200MB`: <span pulumi-lang-nodejs=\"`1800`\" pulumi-lang-dotnet=\"`1800`\" pulumi-lang-go=\"`1800`\" pulumi-lang-python=\"`1800`\" pulumi-lang-yaml=\"`1800`\" pulumi-lang-java=\"`1800`\">`1800`</span>\n","type":"number"},"password":{"description":"Indicates the password of an instance. An instance password\nmust meet the following complexity requirements: Must be 8 to 32 characters long.\nMust contain at least 2 of the following character types: lowercase letters, uppercase\nletters, digits, and special characters (`~!@#$%^&*()-_=+\\|[{}]:'\",<.>/?`).\n","secret":true,"type":"string"},"port":{"description":"Indicates the port number of an instance.\n","type":"number"},"productId":{"description":"Indicates a product ID.\n","type":"string"},"resourceSpecCode":{"description":"Indicates a resource specifications identifier.\n","type":"string"},"retentionPolicy":{"description":"Indicates the action to be taken when the memory usage reaches\nthe disk capacity threshold. The possible values are:\n","type":"string"},"securityGroupId":{"description":"Indicates the ID of a security group.\n","type":"string"},"securityGroupName":{"description":"Indicates the name of a security group.\n","type":"string"},"specification":{"description":"This parameter is mandatory if the engine is <span pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\">`kafka`</span>.\nIndicates the baseline bandwidth of a Kafka instance, that is, the maximum amount\nof data transferred per unit time. Unit: `byte/s`. Options: `100MB`, `300MB`,\n`600MB`, `1200MB`.\n","type":"string"},"status":{"description":"Indicates the status of an instance. For details, see section Instance Status.\n","type":"string"},"storageSpace":{"description":"Indicates the message storage space. Value range:\n* Kafka instance with <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> being `100MB`: <span pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\">`600`</span>–<span pulumi-lang-nodejs=\"`90000`\" pulumi-lang-dotnet=\"`90000`\" pulumi-lang-go=\"`90000`\" pulumi-lang-python=\"`90000`\" pulumi-lang-yaml=\"`90000`\" pulumi-lang-java=\"`90000`\">`90000`</span> GB\n* Kafka instance with <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> being `300MB`: <span pulumi-lang-nodejs=\"`1200`\" pulumi-lang-dotnet=\"`1200`\" pulumi-lang-go=\"`1200`\" pulumi-lang-python=\"`1200`\" pulumi-lang-yaml=\"`1200`\" pulumi-lang-java=\"`1200`\">`1200`</span>–<span pulumi-lang-nodejs=\"`90000`\" pulumi-lang-dotnet=\"`90000`\" pulumi-lang-go=\"`90000`\" pulumi-lang-python=\"`90000`\" pulumi-lang-yaml=\"`90000`\" pulumi-lang-java=\"`90000`\">`90000`</span> GB\n* Kafka instance with <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> being `600MB`: <span pulumi-lang-nodejs=\"`2400`\" pulumi-lang-dotnet=\"`2400`\" pulumi-lang-go=\"`2400`\" pulumi-lang-python=\"`2400`\" pulumi-lang-yaml=\"`2400`\" pulumi-lang-java=\"`2400`\">`2400`</span>–<span pulumi-lang-nodejs=\"`90000`\" pulumi-lang-dotnet=\"`90000`\" pulumi-lang-go=\"`90000`\" pulumi-lang-python=\"`90000`\" pulumi-lang-yaml=\"`90000`\" pulumi-lang-java=\"`90000`\">`90000`</span> GB\n* Kafka instance with <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> being `1200MB`: <span pulumi-lang-nodejs=\"`4800`\" pulumi-lang-dotnet=\"`4800`\" pulumi-lang-go=\"`4800`\" pulumi-lang-python=\"`4800`\" pulumi-lang-yaml=\"`4800`\" pulumi-lang-java=\"`4800`\">`4800`</span>–<span pulumi-lang-nodejs=\"`90000`\" pulumi-lang-dotnet=\"`90000`\" pulumi-lang-go=\"`90000`\" pulumi-lang-python=\"`90000`\" pulumi-lang-yaml=\"`90000`\" pulumi-lang-java=\"`90000`\">`90000`</span> GB\n","type":"number"},"storageSpecCode":{"description":"Indicates the storage I/O specification. Options for a Kafka instance:\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `100MB`: `dms.physical.storage.high` or `dms.physical.storage.ultra`\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `300MB`: `dms.physical.storage.high` or `dms.physical.storage.ultra`\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `600MB`: `dms.physical.storage.ultra`\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `1200MB`: `dms.physical.storage.ultra`\n","type":"string"},"subnetId":{"description":"Indicates the ID of the subnet (OpenStack network ID).\n","type":"string"},"subnetName":{"description":"Indicates the name of a subnet.\n","type":"string"},"type":{"description":"Indicates an instance type. Options: <span pulumi-lang-nodejs=\"`single`\" pulumi-lang-dotnet=\"`Single`\" pulumi-lang-go=\"`single`\" pulumi-lang-python=\"`single`\" pulumi-lang-yaml=\"`single`\" pulumi-lang-java=\"`single`\">`single`</span> and <span pulumi-lang-nodejs=\"`cluster`\" pulumi-lang-dotnet=\"`Cluster`\" pulumi-lang-go=\"`cluster`\" pulumi-lang-python=\"`cluster`\" pulumi-lang-yaml=\"`cluster`\" pulumi-lang-java=\"`cluster`\">`cluster`</span>.\n","type":"string"},"usedStorageSpace":{"description":"Indicates the used message storage space. Unit: GB\n","type":"number"},"userId":{"description":"Indicates a user ID.\n","type":"string"},"userName":{"description":"Indicates a username.\n","type":"string"},"vpcId":{"description":"Indicates the ID of a VPC (OpenStack router ID).\n","type":"string"},"vpcName":{"type":"string"}},"required":["availableZones","connectAddress","createdAt","dmsInstanceV1Id","engine","engineVersion","maintainBegin","maintainEnd","name","orderId","port","productId","resourceSpecCode","retentionPolicy","securityGroupId","securityGroupName","specification","status","storageSpace","storageSpecCode","subnetId","subnetName","type","usedStorageSpace","userId","userName","vpcId","vpcName"],"requiredInputs":["availableZones","engine","engineVersion","productId","securityGroupId","storageSpace","storageSpecCode","subnetId","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering DmsInstanceV1 resources.\n","properties":{"accessUser":{"description":"Indicates a username. A username consists of 4 to 64 characters\nand supports only letters, digits, and hyphens (-).\n","type":"string"},"availableZones":{"description":"Indicates the ID of an AZ. The parameter value can not be\nleft blank or an empty array. For details, see section\n[Querying AZ Information](https://docs.otc.t-systems.com/en-us/api/dms/dms-api-180514008.html).\n","items":{"type":"string"},"type":"array"},"connectAddress":{"description":"Indicates the IP address of an instance.\n","type":"string"},"createdAt":{"description":"Indicates the time when an instance is created. The time is in the format\nof timestamp, that is, the offset milliseconds from 1970-01-01 00:00:00 UTC to the specified time.\n","type":"string"},"description":{"description":"Indicates the description of an instance. It is a character\nstring containing not more than 1024 characters.\n","type":"string"},"dmsInstanceV1Id":{"type":"string"},"engine":{"description":"Indicates a message engine. Only <span pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\">`kafka`</span> is supported now.\n","type":"string"},"engineVersion":{"description":"Indicates the version of a message engine.\nOnly `2.3.0` is supported now.\n","type":"string"},"maintainBegin":{"description":"Indicates the time at which a maintenance time window starts.\nFormat: `HH:mm`.\n* The start time and end time of a maintenance time window must indicate the time segment of\na supported maintenance time window.\n* The start time must be set to `22:00`, `02:00`, `06:00`, `10:00`, `14:00`, or `18:00`.\n* Parameters <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> and <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be set in pairs. If parameter <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span>\nis left blank, parameter <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> is also blank. In this case, the system automatically\nallocates the default start time `02:00`.\n","type":"string"},"maintainEnd":{"description":"Indicates the time at which a maintenance time window ends.\nFormat: `HH:mm`.\n* The start time and end time of a maintenance time window must indicate the time segment of\na supported maintenance time window.\n* The end time is four hours later than the start time. For example, if the start time is `22:00`,\nthe end time is `02:00`.\n* Parameters <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> and <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be set in pairs. If parameter <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> is left\nblank, parameter <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> is also blank. In this case, the system automatically allocates\nthe default end time `06:00`.\n","type":"string"},"name":{"description":"Indicates the name of an instance. An instance name starts with a letter,\nconsists of 4 to 64 characters, and supports only letters, digits, and hyphens (-).\n","type":"string"},"orderId":{"type":"string"},"partitionNum":{"description":"This parameter is mandatory when a <span pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\">`kafka`</span> instance is created.\nIndicates the maximum number of topics in a Kafka instance.\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `100MB`: <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span>\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `300MB`: <span pulumi-lang-nodejs=\"`900`\" pulumi-lang-dotnet=\"`900`\" pulumi-lang-go=\"`900`\" pulumi-lang-python=\"`900`\" pulumi-lang-yaml=\"`900`\" pulumi-lang-java=\"`900`\">`900`</span>\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `600MB`: <span pulumi-lang-nodejs=\"`1800`\" pulumi-lang-dotnet=\"`1800`\" pulumi-lang-go=\"`1800`\" pulumi-lang-python=\"`1800`\" pulumi-lang-yaml=\"`1800`\" pulumi-lang-java=\"`1800`\">`1800`</span>\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `1200MB`: <span pulumi-lang-nodejs=\"`1800`\" pulumi-lang-dotnet=\"`1800`\" pulumi-lang-go=\"`1800`\" pulumi-lang-python=\"`1800`\" pulumi-lang-yaml=\"`1800`\" pulumi-lang-java=\"`1800`\">`1800`</span>\n","type":"number"},"password":{"description":"Indicates the password of an instance. An instance password\nmust meet the following complexity requirements: Must be 8 to 32 characters long.\nMust contain at least 2 of the following character types: lowercase letters, uppercase\nletters, digits, and special characters (`~!@#$%^&*()-_=+\\|[{}]:'\",<.>/?`).\n","secret":true,"type":"string"},"port":{"description":"Indicates the port number of an instance.\n","type":"number"},"productId":{"description":"Indicates a product ID.\n","type":"string"},"resourceSpecCode":{"description":"Indicates a resource specifications identifier.\n","type":"string"},"retentionPolicy":{"description":"Indicates the action to be taken when the memory usage reaches\nthe disk capacity threshold. The possible values are:\n","type":"string"},"securityGroupId":{"description":"Indicates the ID of a security group.\n","type":"string"},"securityGroupName":{"description":"Indicates the name of a security group.\n","type":"string"},"specification":{"description":"This parameter is mandatory if the engine is <span pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\">`kafka`</span>.\nIndicates the baseline bandwidth of a Kafka instance, that is, the maximum amount\nof data transferred per unit time. Unit: `byte/s`. Options: `100MB`, `300MB`,\n`600MB`, `1200MB`.\n","type":"string"},"status":{"description":"Indicates the status of an instance. For details, see section Instance Status.\n","type":"string"},"storageSpace":{"description":"Indicates the message storage space. Value range:\n* Kafka instance with <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> being `100MB`: <span pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\">`600`</span>–<span pulumi-lang-nodejs=\"`90000`\" pulumi-lang-dotnet=\"`90000`\" pulumi-lang-go=\"`90000`\" pulumi-lang-python=\"`90000`\" pulumi-lang-yaml=\"`90000`\" pulumi-lang-java=\"`90000`\">`90000`</span> GB\n* Kafka instance with <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> being `300MB`: <span pulumi-lang-nodejs=\"`1200`\" pulumi-lang-dotnet=\"`1200`\" pulumi-lang-go=\"`1200`\" pulumi-lang-python=\"`1200`\" pulumi-lang-yaml=\"`1200`\" pulumi-lang-java=\"`1200`\">`1200`</span>–<span pulumi-lang-nodejs=\"`90000`\" pulumi-lang-dotnet=\"`90000`\" pulumi-lang-go=\"`90000`\" pulumi-lang-python=\"`90000`\" pulumi-lang-yaml=\"`90000`\" pulumi-lang-java=\"`90000`\">`90000`</span> GB\n* Kafka instance with <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> being `600MB`: <span pulumi-lang-nodejs=\"`2400`\" pulumi-lang-dotnet=\"`2400`\" pulumi-lang-go=\"`2400`\" pulumi-lang-python=\"`2400`\" pulumi-lang-yaml=\"`2400`\" pulumi-lang-java=\"`2400`\">`2400`</span>–<span pulumi-lang-nodejs=\"`90000`\" pulumi-lang-dotnet=\"`90000`\" pulumi-lang-go=\"`90000`\" pulumi-lang-python=\"`90000`\" pulumi-lang-yaml=\"`90000`\" pulumi-lang-java=\"`90000`\">`90000`</span> GB\n* Kafka instance with <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> being `1200MB`: <span pulumi-lang-nodejs=\"`4800`\" pulumi-lang-dotnet=\"`4800`\" pulumi-lang-go=\"`4800`\" pulumi-lang-python=\"`4800`\" pulumi-lang-yaml=\"`4800`\" pulumi-lang-java=\"`4800`\">`4800`</span>–<span pulumi-lang-nodejs=\"`90000`\" pulumi-lang-dotnet=\"`90000`\" pulumi-lang-go=\"`90000`\" pulumi-lang-python=\"`90000`\" pulumi-lang-yaml=\"`90000`\" pulumi-lang-java=\"`90000`\">`90000`</span> GB\n","type":"number"},"storageSpecCode":{"description":"Indicates the storage I/O specification. Options for a Kafka instance:\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `100MB`: `dms.physical.storage.high` or `dms.physical.storage.ultra`\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `300MB`: `dms.physical.storage.high` or `dms.physical.storage.ultra`\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `600MB`: `dms.physical.storage.ultra`\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `1200MB`: `dms.physical.storage.ultra`\n","type":"string"},"subnetId":{"description":"Indicates the ID of the subnet (OpenStack network ID).\n","type":"string"},"subnetName":{"description":"Indicates the name of a subnet.\n","type":"string"},"type":{"description":"Indicates an instance type. Options: <span pulumi-lang-nodejs=\"`single`\" pulumi-lang-dotnet=\"`Single`\" pulumi-lang-go=\"`single`\" pulumi-lang-python=\"`single`\" pulumi-lang-yaml=\"`single`\" pulumi-lang-java=\"`single`\">`single`</span> and <span pulumi-lang-nodejs=\"`cluster`\" pulumi-lang-dotnet=\"`Cluster`\" pulumi-lang-go=\"`cluster`\" pulumi-lang-python=\"`cluster`\" pulumi-lang-yaml=\"`cluster`\" pulumi-lang-java=\"`cluster`\">`cluster`</span>.\n","type":"string"},"usedStorageSpace":{"description":"Indicates the used message storage space. Unit: GB\n","type":"number"},"userId":{"description":"Indicates a user ID.\n","type":"string"},"userName":{"description":"Indicates a username.\n","type":"string"},"vpcId":{"description":"Indicates the ID of a VPC (OpenStack router ID).\n","type":"string"},"vpcName":{"type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/dmsInstanceV2:DmsInstanceV2":{"description":"Up-to-date reference of API arguments for DMS instance you can get at\n[documentation portal](https://docs.otc.t-systems.com/distributed-message-service/api-ref/apis_v2_recommended/lifecycle_management)\n\nManages a DMS instance in the OpenTelekomCloud DMS Service (Kafka Premium/Platinum).\n\n~>\nDeprecated, use <span pulumi-lang-nodejs=\"`opentelekomcloud.DmsDedicatedInstanceV2`\" pulumi-lang-dotnet=\"`opentelekomcloud.DmsDedicatedInstanceV2`\" pulumi-lang-go=\"`DmsDedicatedInstanceV2`\" pulumi-lang-python=\"`DmsDedicatedInstanceV2`\" pulumi-lang-yaml=\"`opentelekomcloud.DmsDedicatedInstanceV2`\" pulumi-lang-java=\"`opentelekomcloud.DmsDedicatedInstanceV2`\">`opentelekomcloud.DmsDedicatedInstanceV2`</span> resource instead\n\n## Example Usage\n\n### Automatically detect the correct network\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst vpcId = config.requireObject<any>(\"vpcId\");\nconst subnetId = config.requireObject<any>(\"subnetId\");\nconst accessUser = config.requireObject<any>(\"accessUser\");\nconst password = config.requireObject<any>(\"password\");\nconst secgroup1 = new opentelekomcloud.NetworkingSecgroupV2(\"secgroup_1\", {\n    name: \"secgroup_1\",\n    description: \"secgroup_1\",\n});\nconst az1 = opentelekomcloud.getDmsAzV1({\n    name: \"eu-de-01\",\n});\nconst product1 = opentelekomcloud.getDmsProductV1({\n    engine: \"kafka\",\n    version: \"2.3.0\",\n    instanceType: \"cluster\",\n    partitionNum: \"300\",\n    storage: \"600\",\n    storageSpecCode: \"dms.physical.storage.high\",\n});\nconst instance1 = new opentelekomcloud.DmsInstanceV2(\"instance_1\", {\n    name: \"kafka-test\",\n    engine: \"kafka\",\n    productId: product1.then(product1 => product1.id),\n    engineVersion: product1.then(product1 => product1.version),\n    specification: product1.then(product1 => product1.bandwidth),\n    partitionNum: product1.then(product1 => product1.partitionNum),\n    storageSpecCode: product1.then(product1 => product1.storageSpecCode),\n    storageSpace: product1.then(product1 => product1.storage),\n    availableZones: [az1.then(az1 => az1.id)],\n    securityGroupId: secgroup1.networkingSecgroupV2Id,\n    vpcId: vpcId,\n    subnetId: subnetId,\n    accessUser: accessUser,\n    password: password,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nvpc_id = config.require_object(\"vpcId\")\nsubnet_id = config.require_object(\"subnetId\")\naccess_user = config.require_object(\"accessUser\")\npassword = config.require_object(\"password\")\nsecgroup1 = opentelekomcloud.NetworkingSecgroupV2(\"secgroup_1\",\n    name=\"secgroup_1\",\n    description=\"secgroup_1\")\naz1 = opentelekomcloud.get_dms_az_v1(name=\"eu-de-01\")\nproduct1 = opentelekomcloud.get_dms_product_v1(engine=\"kafka\",\n    version=\"2.3.0\",\n    instance_type=\"cluster\",\n    partition_num=\"300\",\n    storage=\"600\",\n    storage_spec_code=\"dms.physical.storage.high\")\ninstance1 = opentelekomcloud.DmsInstanceV2(\"instance_1\",\n    name=\"kafka-test\",\n    engine=\"kafka\",\n    product_id=product1.id,\n    engine_version=product1.version,\n    specification=product1.bandwidth,\n    partition_num=product1.partition_num,\n    storage_spec_code=product1.storage_spec_code,\n    storage_space=product1.storage,\n    available_zones=[az1.id],\n    security_group_id=secgroup1.networking_secgroup_v2_id,\n    vpc_id=vpc_id,\n    subnet_id=subnet_id,\n    access_user=access_user,\n    password=password)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var vpcId = config.RequireObject<dynamic>(\"vpcId\");\n    var subnetId = config.RequireObject<dynamic>(\"subnetId\");\n    var accessUser = config.RequireObject<dynamic>(\"accessUser\");\n    var password = config.RequireObject<dynamic>(\"password\");\n    var secgroup1 = new Opentelekomcloud.NetworkingSecgroupV2(\"secgroup_1\", new()\n    {\n        Name = \"secgroup_1\",\n        Description = \"secgroup_1\",\n    });\n\n    var az1 = Opentelekomcloud.GetDmsAzV1.Invoke(new()\n    {\n        Name = \"eu-de-01\",\n    });\n\n    var product1 = Opentelekomcloud.GetDmsProductV1.Invoke(new()\n    {\n        Engine = \"kafka\",\n        Version = \"2.3.0\",\n        InstanceType = \"cluster\",\n        PartitionNum = \"300\",\n        Storage = \"600\",\n        StorageSpecCode = \"dms.physical.storage.high\",\n    });\n\n    var instance1 = new Opentelekomcloud.DmsInstanceV2(\"instance_1\", new()\n    {\n        Name = \"kafka-test\",\n        Engine = \"kafka\",\n        ProductId = product1.Apply(getDmsProductV1Result => getDmsProductV1Result.Id),\n        EngineVersion = product1.Apply(getDmsProductV1Result => getDmsProductV1Result.Version),\n        Specification = product1.Apply(getDmsProductV1Result => getDmsProductV1Result.Bandwidth),\n        PartitionNum = product1.Apply(getDmsProductV1Result => getDmsProductV1Result.PartitionNum),\n        StorageSpecCode = product1.Apply(getDmsProductV1Result => getDmsProductV1Result.StorageSpecCode),\n        StorageSpace = product1.Apply(getDmsProductV1Result => getDmsProductV1Result.Storage),\n        AvailableZones = new[]\n        {\n            az1.Apply(getDmsAzV1Result => getDmsAzV1Result.Id),\n        },\n        SecurityGroupId = secgroup1.NetworkingSecgroupV2Id,\n        VpcId = vpcId,\n        SubnetId = subnetId,\n        AccessUser = accessUser,\n        Password = password,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tvpcId := cfg.RequireObject(\"vpcId\")\n\t\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\taccessUser := cfg.RequireObject(\"accessUser\")\n\t\tpassword := cfg.RequireObject(\"password\")\n\t\tsecgroup1, err := opentelekomcloud.NewNetworkingSecgroupV2(ctx, \"secgroup_1\", &opentelekomcloud.NetworkingSecgroupV2Args{\n\t\t\tName:        pulumi.String(\"secgroup_1\"),\n\t\t\tDescription: pulumi.String(\"secgroup_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\taz1, err := opentelekomcloud.GetDmsAzV1(ctx, &opentelekomcloud.GetDmsAzV1Args{\n\t\t\tName: pulumi.StringRef(\"eu-de-01\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproduct1, err := opentelekomcloud.GetDmsProductV1(ctx, &opentelekomcloud.GetDmsProductV1Args{\n\t\t\tEngine:          \"kafka\",\n\t\t\tVersion:         pulumi.StringRef(\"2.3.0\"),\n\t\t\tInstanceType:    \"cluster\",\n\t\t\tPartitionNum:    pulumi.StringRef(\"300\"),\n\t\t\tStorage:         pulumi.StringRef(\"600\"),\n\t\t\tStorageSpecCode: pulumi.StringRef(\"dms.physical.storage.high\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewDmsInstanceV2(ctx, \"instance_1\", &opentelekomcloud.DmsInstanceV2Args{\n\t\t\tName:            pulumi.String(\"kafka-test\"),\n\t\t\tEngine:          pulumi.String(\"kafka\"),\n\t\t\tProductId:       pulumi.String(product1.Id),\n\t\t\tEngineVersion:   pulumi.String(product1.Version),\n\t\t\tSpecification:   pulumi.String(product1.Bandwidth),\n\t\t\tPartitionNum:    pulumi.String(product1.PartitionNum),\n\t\t\tStorageSpecCode: pulumi.String(product1.StorageSpecCode),\n\t\t\tStorageSpace:    pulumi.String(product1.Storage),\n\t\t\tAvailableZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(az1.Id),\n\t\t\t},\n\t\t\tSecurityGroupId: secgroup1.NetworkingSecgroupV2Id,\n\t\t\tVpcId:           pulumi.Any(vpcId),\n\t\t\tSubnetId:        pulumi.Any(subnetId),\n\t\t\tAccessUser:      pulumi.Any(accessUser),\n\t\t\tPassword:        pulumi.Any(password),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.NetworkingSecgroupV2;\nimport com.pulumi.opentelekomcloud.NetworkingSecgroupV2Args;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDmsAzV1Args;\nimport com.pulumi.opentelekomcloud.inputs.GetDmsProductV1Args;\nimport com.pulumi.opentelekomcloud.DmsInstanceV2;\nimport com.pulumi.opentelekomcloud.DmsInstanceV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var vpcId = config.get(\"vpcId\");\n        final var subnetId = config.get(\"subnetId\");\n        final var accessUser = config.get(\"accessUser\");\n        final var password = config.get(\"password\");\n        var secgroup1 = new NetworkingSecgroupV2(\"secgroup1\", NetworkingSecgroupV2Args.builder()\n            .name(\"secgroup_1\")\n            .description(\"secgroup_1\")\n            .build());\n\n        final var az1 = OpentelekomcloudFunctions.getDmsAzV1(GetDmsAzV1Args.builder()\n            .name(\"eu-de-01\")\n            .build());\n\n        final var product1 = OpentelekomcloudFunctions.getDmsProductV1(GetDmsProductV1Args.builder()\n            .engine(\"kafka\")\n            .version(\"2.3.0\")\n            .instanceType(\"cluster\")\n            .partitionNum(\"300\")\n            .storage(\"600\")\n            .storageSpecCode(\"dms.physical.storage.high\")\n            .build());\n\n        var instance1 = new DmsInstanceV2(\"instance1\", DmsInstanceV2Args.builder()\n            .name(\"kafka-test\")\n            .engine(\"kafka\")\n            .productId(product1.id())\n            .engineVersion(product1.version())\n            .specification(product1.bandwidth())\n            .partitionNum(product1.partitionNum())\n            .storageSpecCode(product1.storageSpecCode())\n            .storageSpace(product1.storage())\n            .availableZones(az1.id())\n            .securityGroupId(secgroup1.networkingSecgroupV2Id())\n            .vpcId(vpcId)\n            .subnetId(subnetId)\n            .accessUser(accessUser)\n            .password(password)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  vpcId:\n    type: dynamic\n  subnetId:\n    type: dynamic\n  accessUser:\n    type: dynamic\n  password:\n    type: dynamic\nresources:\n  secgroup1:\n    type: opentelekomcloud:NetworkingSecgroupV2\n    name: secgroup_1\n    properties:\n      name: secgroup_1\n      description: secgroup_1\n  instance1:\n    type: opentelekomcloud:DmsInstanceV2\n    name: instance_1\n    properties:\n      name: kafka-test\n      engine: kafka\n      productId: ${product1.id}\n      engineVersion: ${product1.version}\n      specification: ${product1.bandwidth}\n      partitionNum: ${product1.partitionNum}\n      storageSpecCode: ${product1.storageSpecCode}\n      storageSpace: ${product1.storage}\n      availableZones:\n        - ${az1.id}\n      securityGroupId: ${secgroup1.networkingSecgroupV2Id}\n      vpcId: ${vpcId}\n      subnetId: ${subnetId}\n      accessUser: ${accessUser}\n      password: ${password}\nvariables:\n  az1:\n    fn::invoke:\n      function: opentelekomcloud:getDmsAzV1\n      arguments:\n        name: eu-de-01\n  product1:\n    fn::invoke:\n      function: opentelekomcloud:getDmsProductV1\n      arguments:\n        engine: kafka\n        version: 2.3.0\n        instanceType: cluster\n        partitionNum: 300\n        storage: 600\n        storageSpecCode: dms.physical.storage.high\n```\n<!--End PulumiCodeChooser -->\n\n### DMS instance with assigned EIPs\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst vpcId = config.requireObject<any>(\"vpcId\");\nconst subnetId = config.requireObject<any>(\"subnetId\");\nconst secgroup1 = new opentelekomcloud.NetworkingSecgroupV2(\"secgroup_1\", {\n    name: \"secgroup_1\",\n    description: \"secgroup_1\",\n});\nconst az1 = opentelekomcloud.getDmsAzV1({\n    name: \"eu-de-01\",\n});\nconst product1 = opentelekomcloud.getDmsProductV1({\n    engine: \"kafka\",\n    instanceType: \"cluster\",\n    version: \"2.7\",\n});\nconst fip1 = new opentelekomcloud.NetworkingFloatingipV2(\"fip_1\", {});\nconst fip2 = new opentelekomcloud.NetworkingFloatingipV2(\"fip_2\", {});\nconst fip3 = new opentelekomcloud.NetworkingFloatingipV2(\"fip_3\", {});\nconst instance1 = new opentelekomcloud.DmsInstanceV2(\"instance_1\", {\n    name: \"%s\",\n    engine: \"kafka\",\n    storageSpace: product1.then(product1 => product1.storage),\n    availableZones: [az1.then(az1 => az1.id)],\n    productId: product1.then(product1 => product1.id),\n    engineVersion: product1.then(product1 => product1.version),\n    storageSpecCode: product1.then(product1 => product1.storageSpecCode),\n    securityGroupId: opentelekomcloudNetworkingSecgroupV2.secgroup1.id,\n    vpcId: vpcId,\n    subnetId: subnetId,\n    enablePublicip: true,\n    publicipIds: [\n        fip1.networkingFloatingipV2Id,\n        fip2.networkingFloatingipV2Id,\n        fip3.networkingFloatingipV2Id,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nvpc_id = config.require_object(\"vpcId\")\nsubnet_id = config.require_object(\"subnetId\")\nsecgroup1 = opentelekomcloud.NetworkingSecgroupV2(\"secgroup_1\",\n    name=\"secgroup_1\",\n    description=\"secgroup_1\")\naz1 = opentelekomcloud.get_dms_az_v1(name=\"eu-de-01\")\nproduct1 = opentelekomcloud.get_dms_product_v1(engine=\"kafka\",\n    instance_type=\"cluster\",\n    version=\"2.7\")\nfip1 = opentelekomcloud.NetworkingFloatingipV2(\"fip_1\")\nfip2 = opentelekomcloud.NetworkingFloatingipV2(\"fip_2\")\nfip3 = opentelekomcloud.NetworkingFloatingipV2(\"fip_3\")\ninstance1 = opentelekomcloud.DmsInstanceV2(\"instance_1\",\n    name=\"%s\",\n    engine=\"kafka\",\n    storage_space=product1.storage,\n    available_zones=[az1.id],\n    product_id=product1.id,\n    engine_version=product1.version,\n    storage_spec_code=product1.storage_spec_code,\n    security_group_id=opentelekomcloud_networking_secgroup_v2[\"secgroup1\"][\"id\"],\n    vpc_id=vpc_id,\n    subnet_id=subnet_id,\n    enable_publicip=True,\n    publicip_ids=[\n        fip1.networking_floatingip_v2_id,\n        fip2.networking_floatingip_v2_id,\n        fip3.networking_floatingip_v2_id,\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var vpcId = config.RequireObject<dynamic>(\"vpcId\");\n    var subnetId = config.RequireObject<dynamic>(\"subnetId\");\n    var secgroup1 = new Opentelekomcloud.NetworkingSecgroupV2(\"secgroup_1\", new()\n    {\n        Name = \"secgroup_1\",\n        Description = \"secgroup_1\",\n    });\n\n    var az1 = Opentelekomcloud.GetDmsAzV1.Invoke(new()\n    {\n        Name = \"eu-de-01\",\n    });\n\n    var product1 = Opentelekomcloud.GetDmsProductV1.Invoke(new()\n    {\n        Engine = \"kafka\",\n        InstanceType = \"cluster\",\n        Version = \"2.7\",\n    });\n\n    var fip1 = new Opentelekomcloud.NetworkingFloatingipV2(\"fip_1\");\n\n    var fip2 = new Opentelekomcloud.NetworkingFloatingipV2(\"fip_2\");\n\n    var fip3 = new Opentelekomcloud.NetworkingFloatingipV2(\"fip_3\");\n\n    var instance1 = new Opentelekomcloud.DmsInstanceV2(\"instance_1\", new()\n    {\n        Name = \"%s\",\n        Engine = \"kafka\",\n        StorageSpace = product1.Apply(getDmsProductV1Result => getDmsProductV1Result.Storage),\n        AvailableZones = new[]\n        {\n            az1.Apply(getDmsAzV1Result => getDmsAzV1Result.Id),\n        },\n        ProductId = product1.Apply(getDmsProductV1Result => getDmsProductV1Result.Id),\n        EngineVersion = product1.Apply(getDmsProductV1Result => getDmsProductV1Result.Version),\n        StorageSpecCode = product1.Apply(getDmsProductV1Result => getDmsProductV1Result.StorageSpecCode),\n        SecurityGroupId = opentelekomcloudNetworkingSecgroupV2.Secgroup1.Id,\n        VpcId = vpcId,\n        SubnetId = subnetId,\n        EnablePublicip = true,\n        PublicipIds = new[]\n        {\n            fip1.NetworkingFloatingipV2Id,\n            fip2.NetworkingFloatingipV2Id,\n            fip3.NetworkingFloatingipV2Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tvpcId := cfg.RequireObject(\"vpcId\")\n\t\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\t_, err := opentelekomcloud.NewNetworkingSecgroupV2(ctx, \"secgroup_1\", &opentelekomcloud.NetworkingSecgroupV2Args{\n\t\t\tName:        pulumi.String(\"secgroup_1\"),\n\t\t\tDescription: pulumi.String(\"secgroup_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\taz1, err := opentelekomcloud.GetDmsAzV1(ctx, &opentelekomcloud.GetDmsAzV1Args{\n\t\t\tName: pulumi.StringRef(\"eu-de-01\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproduct1, err := opentelekomcloud.GetDmsProductV1(ctx, &opentelekomcloud.GetDmsProductV1Args{\n\t\t\tEngine:       \"kafka\",\n\t\t\tInstanceType: \"cluster\",\n\t\t\tVersion:      pulumi.StringRef(\"2.7\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfip1, err := opentelekomcloud.NewNetworkingFloatingipV2(ctx, \"fip_1\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfip2, err := opentelekomcloud.NewNetworkingFloatingipV2(ctx, \"fip_2\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfip3, err := opentelekomcloud.NewNetworkingFloatingipV2(ctx, \"fip_3\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewDmsInstanceV2(ctx, \"instance_1\", &opentelekomcloud.DmsInstanceV2Args{\n\t\t\tName:         pulumi.String(\"%s\"),\n\t\t\tEngine:       pulumi.String(\"kafka\"),\n\t\t\tStorageSpace: pulumi.String(product1.Storage),\n\t\t\tAvailableZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(az1.Id),\n\t\t\t},\n\t\t\tProductId:       pulumi.String(product1.Id),\n\t\t\tEngineVersion:   pulumi.String(product1.Version),\n\t\t\tStorageSpecCode: pulumi.String(product1.StorageSpecCode),\n\t\t\tSecurityGroupId: pulumi.Any(opentelekomcloudNetworkingSecgroupV2.Secgroup1.Id),\n\t\t\tVpcId:           pulumi.Any(vpcId),\n\t\t\tSubnetId:        pulumi.Any(subnetId),\n\t\t\tEnablePublicip:  pulumi.Bool(true),\n\t\t\tPublicipIds: pulumi.StringArray{\n\t\t\t\tfip1.NetworkingFloatingipV2Id,\n\t\t\t\tfip2.NetworkingFloatingipV2Id,\n\t\t\t\tfip3.NetworkingFloatingipV2Id,\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.opentelekomcloud.NetworkingSecgroupV2;\nimport com.pulumi.opentelekomcloud.NetworkingSecgroupV2Args;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDmsAzV1Args;\nimport com.pulumi.opentelekomcloud.inputs.GetDmsProductV1Args;\nimport com.pulumi.opentelekomcloud.NetworkingFloatingipV2;\nimport com.pulumi.opentelekomcloud.DmsInstanceV2;\nimport com.pulumi.opentelekomcloud.DmsInstanceV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var vpcId = config.get(\"vpcId\");\n        final var subnetId = config.get(\"subnetId\");\n        var secgroup1 = new NetworkingSecgroupV2(\"secgroup1\", NetworkingSecgroupV2Args.builder()\n            .name(\"secgroup_1\")\n            .description(\"secgroup_1\")\n            .build());\n\n        final var az1 = OpentelekomcloudFunctions.getDmsAzV1(GetDmsAzV1Args.builder()\n            .name(\"eu-de-01\")\n            .build());\n\n        final var product1 = OpentelekomcloudFunctions.getDmsProductV1(GetDmsProductV1Args.builder()\n            .engine(\"kafka\")\n            .instanceType(\"cluster\")\n            .version(\"2.7\")\n            .build());\n\n        var fip1 = new NetworkingFloatingipV2(\"fip1\");\n\n        var fip2 = new NetworkingFloatingipV2(\"fip2\");\n\n        var fip3 = new NetworkingFloatingipV2(\"fip3\");\n\n        var instance1 = new DmsInstanceV2(\"instance1\", DmsInstanceV2Args.builder()\n            .name(\"%s\")\n            .engine(\"kafka\")\n            .storageSpace(product1.storage())\n            .availableZones(az1.id())\n            .productId(product1.id())\n            .engineVersion(product1.version())\n            .storageSpecCode(product1.storageSpecCode())\n            .securityGroupId(opentelekomcloudNetworkingSecgroupV2.secgroup1().id())\n            .vpcId(vpcId)\n            .subnetId(subnetId)\n            .enablePublicip(true)\n            .publicipIds(            \n                fip1.networkingFloatingipV2Id(),\n                fip2.networkingFloatingipV2Id(),\n                fip3.networkingFloatingipV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  vpcId:\n    type: dynamic\n  subnetId:\n    type: dynamic\nresources:\n  secgroup1:\n    type: opentelekomcloud:NetworkingSecgroupV2\n    name: secgroup_1\n    properties:\n      name: secgroup_1\n      description: secgroup_1\n  fip1:\n    type: opentelekomcloud:NetworkingFloatingipV2\n    name: fip_1\n  fip2:\n    type: opentelekomcloud:NetworkingFloatingipV2\n    name: fip_2\n  fip3:\n    type: opentelekomcloud:NetworkingFloatingipV2\n    name: fip_3\n  instance1:\n    type: opentelekomcloud:DmsInstanceV2\n    name: instance_1\n    properties:\n      name: '%s'\n      engine: kafka\n      storageSpace: ${product1.storage}\n      availableZones:\n        - ${az1.id}\n      productId: ${product1.id}\n      engineVersion: ${product1.version}\n      storageSpecCode: ${product1.storageSpecCode}\n      securityGroupId: ${opentelekomcloudNetworkingSecgroupV2.secgroup1.id}\n      vpcId: ${vpcId}\n      subnetId: ${subnetId}\n      enablePublicip: true\n      publicipIds:\n        - ${fip1.networkingFloatingipV2Id}\n        - ${fip2.networkingFloatingipV2Id}\n        - ${fip3.networkingFloatingipV2Id}\nvariables:\n  az1:\n    fn::invoke:\n      function: opentelekomcloud:getDmsAzV1\n      arguments:\n        name: eu-de-01\n  product1:\n    fn::invoke:\n      function: opentelekomcloud:getDmsProductV1\n      arguments:\n        engine: kafka\n        instanceType: cluster\n        version: '2.7'\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"accessUser":{"description":"Indicates a username. A username consists of 4 to 64 characters\nand supports only letters, digits, and hyphens (-).\n* Providing <span pulumi-lang-nodejs=\"`accessUser`\" pulumi-lang-dotnet=\"`AccessUser`\" pulumi-lang-go=\"`accessUser`\" pulumi-lang-python=\"`access_user`\" pulumi-lang-yaml=\"`accessUser`\" pulumi-lang-java=\"`accessUser`\">`access_user`</span> and <span pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\">`password`</span> enables <span pulumi-lang-nodejs=\"`ssl`\" pulumi-lang-dotnet=\"`Ssl`\" pulumi-lang-go=\"`ssl`\" pulumi-lang-python=\"`ssl`\" pulumi-lang-yaml=\"`ssl`\" pulumi-lang-java=\"`ssl`\">`ssl`</span> for the instance.\n","type":"string"},"availableZones":{"description":"Indicates the ID of an AZ. The parameter value can not be\nleft blank or an empty array. For details, see section\n[Querying AZ Information](https://docs.otc.t-systems.com/distributed-message-service/api-ref/apis_v2_recommended/other_apis/listing_az_information.html#listavailablezones).\n","items":{"type":"string"},"type":"array"},"description":{"description":"Indicates the description of an instance. It is a character\nstring containing not more than 1024 characters.\n","type":"string"},"diskEncryptedEnable":{"description":"Indicates whether disk encryption is enabled.\n","type":"boolean"},"diskEncryptedKey":{"description":"Disk encryption key. If disk encryption is not enabled, this parameter is left blank.\n","type":"string"},"dmsInstanceV2Id":{"type":"string"},"enablePublicip":{"description":"Whether to enable public access. By default, public access is disabled.\n* Possible values: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>, <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n* Default: <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"engine":{"description":"Indicates a message engine. Only <span pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\">`kafka`</span> is supported now.\n","type":"string"},"engineVersion":{"description":"Indicates the version of a message engine.\nOptions: `2.3.0`, `2.7`.\n","type":"string"},"maintainBegin":{"description":"Indicates the time at which a maintenance time window starts.\nFormat: `HH:mm`.\n* The start time and end time of a maintenance time window must indicate the time segment of\na supported maintenance time window.\n* The start time must be set to `22:00`, `02:00`, `06:00`, `10:00`, `14:00`, or `18:00`.\n* Parameters <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> and <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be set in pairs. If parameter <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span>\nis left blank, parameter <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> is also blank. In this case, the system automatically\nallocates the default start time `02:00`.\n","type":"string"},"maintainEnd":{"description":"Indicates the time at which a maintenance time window ends.\nFormat: `HH:mm`.\n* The start time and end time of a maintenance time window must indicate the time segment of\na supported maintenance time window.\n* The end time is four hours later than the start time. For example, if the start time is `22:00`,\nthe end time is `02:00`.\n* Parameters <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> and <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be set in pairs. If parameter <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> is left\nblank, parameter <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> is also blank. In this case, the system automatically allocates\nthe default end time `06:00`.\n","type":"string"},"name":{"description":"Indicates the name of an instance. An instance name starts with a letter,\nconsists of 4 to 64 characters, and supports only letters, digits, and hyphens (-).\n","type":"string"},"partitionNum":{"description":"This parameter is mandatory when a <span pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\">`kafka`</span> instance is created.\nIndicates the maximum number of topics in a Kafka instance.\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `100MB`: <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span>\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `300MB`: <span pulumi-lang-nodejs=\"`900`\" pulumi-lang-dotnet=\"`900`\" pulumi-lang-go=\"`900`\" pulumi-lang-python=\"`900`\" pulumi-lang-yaml=\"`900`\" pulumi-lang-java=\"`900`\">`900`</span>\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `600MB`: <span pulumi-lang-nodejs=\"`1800`\" pulumi-lang-dotnet=\"`1800`\" pulumi-lang-go=\"`1800`\" pulumi-lang-python=\"`1800`\" pulumi-lang-yaml=\"`1800`\" pulumi-lang-java=\"`1800`\">`1800`</span>\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `1200MB`: <span pulumi-lang-nodejs=\"`1800`\" pulumi-lang-dotnet=\"`1800`\" pulumi-lang-go=\"`1800`\" pulumi-lang-python=\"`1800`\" pulumi-lang-yaml=\"`1800`\" pulumi-lang-java=\"`1800`\">`1800`</span>\n","type":"number"},"password":{"description":"Indicates the password of an instance. An instance password\nmust meet the following complexity requirements: Must be 8 to 32 characters long.\nMust contain at least 2 of the following character types: lowercase letters, uppercase\nletters, digits, and special characters (`~!@#$%^&*()-_=+\\|[{}]:'\",<.>/?`).\n","secret":true,"type":"string"},"productId":{"description":"Indicates a product ID.\n","type":"string"},"publicBandwidth":{"type":"number"},"publicipIds":{"description":"List of `public ip` IDs to be bound to DMS instance nodes.\n* Provided ip amount should be same as amount of DMS cluster nodes.\n* Example: `[\"0f2a51dc-93ce-42af\",\"d967d49b-6659-4052\",\"002872f4-82a4-4f6e-9a4e\"]`.\n","items":{"type":"string"},"type":"array"},"retentionPolicy":{"description":"Indicates the action to be taken when the memory usage reaches\nthe disk capacity threshold. The possible values are:\n","type":"string"},"securityGroupId":{"description":"Indicates the ID of a security group.\n","type":"string"},"specification":{"description":"This parameter is mandatory if the engine is <span pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\">`kafka`</span>.\nIndicates the baseline bandwidth of a Kafka instance, that is, the maximum amount\nof data transferred per unit time. Unit: `byte/s`. Options: `100MB`, `300MB`,\n`600MB`, `1200MB`.\n","type":"string"},"storageSpace":{"description":"Indicates the message storage space. Value range:\n* Kafka instance with <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> being `100MB`: <span pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\">`600`</span>–<span pulumi-lang-nodejs=\"`90000`\" pulumi-lang-dotnet=\"`90000`\" pulumi-lang-go=\"`90000`\" pulumi-lang-python=\"`90000`\" pulumi-lang-yaml=\"`90000`\" pulumi-lang-java=\"`90000`\">`90000`</span> GB\n* Kafka instance with <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> being `300MB`: <span pulumi-lang-nodejs=\"`1200`\" pulumi-lang-dotnet=\"`1200`\" pulumi-lang-go=\"`1200`\" pulumi-lang-python=\"`1200`\" pulumi-lang-yaml=\"`1200`\" pulumi-lang-java=\"`1200`\">`1200`</span>–<span pulumi-lang-nodejs=\"`90000`\" pulumi-lang-dotnet=\"`90000`\" pulumi-lang-go=\"`90000`\" pulumi-lang-python=\"`90000`\" pulumi-lang-yaml=\"`90000`\" pulumi-lang-java=\"`90000`\">`90000`</span> GB\n* Kafka instance with <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> being `600MB`: <span pulumi-lang-nodejs=\"`2400`\" pulumi-lang-dotnet=\"`2400`\" pulumi-lang-go=\"`2400`\" pulumi-lang-python=\"`2400`\" pulumi-lang-yaml=\"`2400`\" pulumi-lang-java=\"`2400`\">`2400`</span>–<span pulumi-lang-nodejs=\"`90000`\" pulumi-lang-dotnet=\"`90000`\" pulumi-lang-go=\"`90000`\" pulumi-lang-python=\"`90000`\" pulumi-lang-yaml=\"`90000`\" pulumi-lang-java=\"`90000`\">`90000`</span> GB\n* Kafka instance with <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> being `1200MB`: <span pulumi-lang-nodejs=\"`4800`\" pulumi-lang-dotnet=\"`4800`\" pulumi-lang-go=\"`4800`\" pulumi-lang-python=\"`4800`\" pulumi-lang-yaml=\"`4800`\" pulumi-lang-java=\"`4800`\">`4800`</span>–<span pulumi-lang-nodejs=\"`90000`\" pulumi-lang-dotnet=\"`90000`\" pulumi-lang-go=\"`90000`\" pulumi-lang-python=\"`90000`\" pulumi-lang-yaml=\"`90000`\" pulumi-lang-java=\"`90000`\">`90000`</span> GB\n","type":"number"},"storageSpecCode":{"description":"Indicates the storage I/O specification. Options for a Kafka instance:\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `100MB`: `dms.physical.storage.high` or `dms.physical.storage.ultra`\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `300MB`: `dms.physical.storage.high` or `dms.physical.storage.ultra`\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `600MB`: `dms.physical.storage.ultra`\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `1200MB`: `dms.physical.storage.ultra`\n","type":"string"},"subnetId":{"description":"Indicates the ID of the subnet (OpenStack network ID).\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDmsInstanceV2Timeouts:DmsInstanceV2Timeouts"},"vpcId":{"description":"Indicates the ID of a VPC (OpenStack router ID).\n","type":"string"}},"properties":{"accessUser":{"description":"Indicates a username. A username consists of 4 to 64 characters\nand supports only letters, digits, and hyphens (-).\n* Providing <span pulumi-lang-nodejs=\"`accessUser`\" pulumi-lang-dotnet=\"`AccessUser`\" pulumi-lang-go=\"`accessUser`\" pulumi-lang-python=\"`access_user`\" pulumi-lang-yaml=\"`accessUser`\" pulumi-lang-java=\"`accessUser`\">`access_user`</span> and <span pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\">`password`</span> enables <span pulumi-lang-nodejs=\"`ssl`\" pulumi-lang-dotnet=\"`Ssl`\" pulumi-lang-go=\"`ssl`\" pulumi-lang-python=\"`ssl`\" pulumi-lang-yaml=\"`ssl`\" pulumi-lang-java=\"`ssl`\">`ssl`</span> for the instance.\n","type":"string"},"availableZones":{"description":"Indicates the ID of an AZ. The parameter value can not be\nleft blank or an empty array. For details, see section\n[Querying AZ Information](https://docs.otc.t-systems.com/distributed-message-service/api-ref/apis_v2_recommended/other_apis/listing_az_information.html#listavailablezones).\n","items":{"type":"string"},"type":"array"},"connectAddress":{"description":"Indicates the IP address of an instance.\n","type":"string"},"createdAt":{"description":"Indicates the time when an instance is created. The time is in the format\nof timestamp, that is, the offset milliseconds from 1970-01-01 00:00:00 UTC to the specified time.\n","type":"string"},"description":{"description":"Indicates the description of an instance. It is a character\nstring containing not more than 1024 characters.\n","type":"string"},"diskEncryptedEnable":{"description":"Indicates whether disk encryption is enabled.\n","type":"boolean"},"diskEncryptedKey":{"description":"Disk encryption key. If disk encryption is not enabled, this parameter is left blank.\n","type":"string"},"dmsInstanceV2Id":{"type":"string"},"enablePublicip":{"description":"Whether to enable public access. By default, public access is disabled.\n* Possible values: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>, <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n* Default: <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"engine":{"description":"Indicates a message engine. Only <span pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\">`kafka`</span> is supported now.\n","type":"string"},"engineVersion":{"description":"Indicates the version of a message engine.\nOptions: `2.3.0`, `2.7`.\n","type":"string"},"maintainBegin":{"description":"Indicates the time at which a maintenance time window starts.\nFormat: `HH:mm`.\n* The start time and end time of a maintenance time window must indicate the time segment of\na supported maintenance time window.\n* The start time must be set to `22:00`, `02:00`, `06:00`, `10:00`, `14:00`, or `18:00`.\n* Parameters <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> and <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be set in pairs. If parameter <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span>\nis left blank, parameter <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> is also blank. In this case, the system automatically\nallocates the default start time `02:00`.\n","type":"string"},"maintainEnd":{"description":"Indicates the time at which a maintenance time window ends.\nFormat: `HH:mm`.\n* The start time and end time of a maintenance time window must indicate the time segment of\na supported maintenance time window.\n* The end time is four hours later than the start time. For example, if the start time is `22:00`,\nthe end time is `02:00`.\n* Parameters <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> and <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be set in pairs. If parameter <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> is left\nblank, parameter <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> is also blank. In this case, the system automatically allocates\nthe default end time `06:00`.\n","type":"string"},"name":{"description":"Indicates the name of an instance. An instance name starts with a letter,\nconsists of 4 to 64 characters, and supports only letters, digits, and hyphens (-).\n","type":"string"},"nodeNum":{"description":"Node quantity.\n","type":"number"},"partitionNum":{"description":"This parameter is mandatory when a <span pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\">`kafka`</span> instance is created.\nIndicates the maximum number of topics in a Kafka instance.\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `100MB`: <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span>\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `300MB`: <span pulumi-lang-nodejs=\"`900`\" pulumi-lang-dotnet=\"`900`\" pulumi-lang-go=\"`900`\" pulumi-lang-python=\"`900`\" pulumi-lang-yaml=\"`900`\" pulumi-lang-java=\"`900`\">`900`</span>\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `600MB`: <span pulumi-lang-nodejs=\"`1800`\" pulumi-lang-dotnet=\"`1800`\" pulumi-lang-go=\"`1800`\" pulumi-lang-python=\"`1800`\" pulumi-lang-yaml=\"`1800`\" pulumi-lang-java=\"`1800`\">`1800`</span>\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `1200MB`: <span pulumi-lang-nodejs=\"`1800`\" pulumi-lang-dotnet=\"`1800`\" pulumi-lang-go=\"`1800`\" pulumi-lang-python=\"`1800`\" pulumi-lang-yaml=\"`1800`\" pulumi-lang-java=\"`1800`\">`1800`</span>\n","type":"number"},"password":{"description":"Indicates the password of an instance. An instance password\nmust meet the following complexity requirements: Must be 8 to 32 characters long.\nMust contain at least 2 of the following character types: lowercase letters, uppercase\nletters, digits, and special characters (`~!@#$%^&*()-_=+\\|[{}]:'\",<.>/?`).\n","secret":true,"type":"string"},"port":{"description":"Indicates the port number of an instance.\n","type":"number"},"productId":{"description":"Indicates a product ID.\n","type":"string"},"publicAccessEnabled":{"description":"Time when public access was enabled for an instance.\nThe value can be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>, <span pulumi-lang-nodejs=\"`actived`\" pulumi-lang-dotnet=\"`Actived`\" pulumi-lang-go=\"`actived`\" pulumi-lang-python=\"`actived`\" pulumi-lang-yaml=\"`actived`\" pulumi-lang-java=\"`actived`\">`actived`</span>, <span pulumi-lang-nodejs=\"`closed`\" pulumi-lang-dotnet=\"`Closed`\" pulumi-lang-go=\"`closed`\" pulumi-lang-python=\"`closed`\" pulumi-lang-yaml=\"`closed`\" pulumi-lang-java=\"`closed`\">`closed`</span>, or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"string"},"publicBandwidth":{"type":"number"},"publicConnectAddresses":{"description":"List of Public IPs bound to DMS instance with specified port.\n","items":{"type":"string"},"type":"array"},"publicipIds":{"description":"List of `public ip` IDs to be bound to DMS instance nodes.\n* Provided ip amount should be same as amount of DMS cluster nodes.\n* Example: `[\"0f2a51dc-93ce-42af\",\"d967d49b-6659-4052\",\"002872f4-82a4-4f6e-9a4e\"]`.\n","items":{"type":"string"},"type":"array"},"resourceSpecCode":{"description":"Indicates a resource specifications identifier.\n","type":"string"},"retentionPolicy":{"description":"Indicates the action to be taken when the memory usage reaches\nthe disk capacity threshold. The possible values are:\n","type":"string"},"securityGroupId":{"description":"Indicates the ID of a security group.\n","type":"string"},"securityGroupName":{"description":"Indicates the name of a security group.\n","type":"string"},"specification":{"description":"This parameter is mandatory if the engine is <span pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\">`kafka`</span>.\nIndicates the baseline bandwidth of a Kafka instance, that is, the maximum amount\nof data transferred per unit time. Unit: `byte/s`. Options: `100MB`, `300MB`,\n`600MB`, `1200MB`.\n","type":"string"},"sslEnable":{"description":"Indicates whether security authentication is enabled.\nPossible values: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>, <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"status":{"description":"Indicates the status of an instance. For details, see section Instance Status.\n","type":"string"},"storageResourceId":{"description":"Storage resource ID.\n","type":"string"},"storageSpace":{"description":"Indicates the message storage space. Value range:\n* Kafka instance with <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> being `100MB`: <span pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\">`600`</span>–<span pulumi-lang-nodejs=\"`90000`\" pulumi-lang-dotnet=\"`90000`\" pulumi-lang-go=\"`90000`\" pulumi-lang-python=\"`90000`\" pulumi-lang-yaml=\"`90000`\" pulumi-lang-java=\"`90000`\">`90000`</span> GB\n* Kafka instance with <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> being `300MB`: <span pulumi-lang-nodejs=\"`1200`\" pulumi-lang-dotnet=\"`1200`\" pulumi-lang-go=\"`1200`\" pulumi-lang-python=\"`1200`\" pulumi-lang-yaml=\"`1200`\" pulumi-lang-java=\"`1200`\">`1200`</span>–<span pulumi-lang-nodejs=\"`90000`\" pulumi-lang-dotnet=\"`90000`\" pulumi-lang-go=\"`90000`\" pulumi-lang-python=\"`90000`\" pulumi-lang-yaml=\"`90000`\" pulumi-lang-java=\"`90000`\">`90000`</span> GB\n* Kafka instance with <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> being `600MB`: <span pulumi-lang-nodejs=\"`2400`\" pulumi-lang-dotnet=\"`2400`\" pulumi-lang-go=\"`2400`\" pulumi-lang-python=\"`2400`\" pulumi-lang-yaml=\"`2400`\" pulumi-lang-java=\"`2400`\">`2400`</span>–<span pulumi-lang-nodejs=\"`90000`\" pulumi-lang-dotnet=\"`90000`\" pulumi-lang-go=\"`90000`\" pulumi-lang-python=\"`90000`\" pulumi-lang-yaml=\"`90000`\" pulumi-lang-java=\"`90000`\">`90000`</span> GB\n* Kafka instance with <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> being `1200MB`: <span pulumi-lang-nodejs=\"`4800`\" pulumi-lang-dotnet=\"`4800`\" pulumi-lang-go=\"`4800`\" pulumi-lang-python=\"`4800`\" pulumi-lang-yaml=\"`4800`\" pulumi-lang-java=\"`4800`\">`4800`</span>–<span pulumi-lang-nodejs=\"`90000`\" pulumi-lang-dotnet=\"`90000`\" pulumi-lang-go=\"`90000`\" pulumi-lang-python=\"`90000`\" pulumi-lang-yaml=\"`90000`\" pulumi-lang-java=\"`90000`\">`90000`</span> GB\n","type":"number"},"storageSpecCode":{"description":"Indicates the storage I/O specification. Options for a Kafka instance:\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `100MB`: `dms.physical.storage.high` or `dms.physical.storage.ultra`\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `300MB`: `dms.physical.storage.high` or `dms.physical.storage.ultra`\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `600MB`: `dms.physical.storage.ultra`\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `1200MB`: `dms.physical.storage.ultra`\n","type":"string"},"subnetCidr":{"description":"Indicates subnet CIDR block.\n","type":"string"},"subnetId":{"description":"Indicates the ID of the subnet (OpenStack network ID).\n","type":"string"},"subnetName":{"description":"Indicates the name of a subnet.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDmsInstanceV2Timeouts:DmsInstanceV2Timeouts"},"totalStorageSpace":{"description":"Total message storage space in GB.\n","type":"number"},"type":{"description":"Indicates an instance type. Options: <span pulumi-lang-nodejs=\"`single`\" pulumi-lang-dotnet=\"`Single`\" pulumi-lang-go=\"`single`\" pulumi-lang-python=\"`single`\" pulumi-lang-yaml=\"`single`\" pulumi-lang-java=\"`single`\">`single`</span> and <span pulumi-lang-nodejs=\"`cluster`\" pulumi-lang-dotnet=\"`Cluster`\" pulumi-lang-go=\"`cluster`\" pulumi-lang-python=\"`cluster`\" pulumi-lang-yaml=\"`cluster`\" pulumi-lang-java=\"`cluster`\">`cluster`</span>.\n","type":"string"},"usedStorageSpace":{"description":"Indicates the used message storage space. Unit: GB\n","type":"number"},"userId":{"description":"Indicates a user ID.\n","type":"string"},"userName":{"description":"Indicates a username.\n","type":"string"},"vpcId":{"description":"Indicates the ID of a VPC (OpenStack router ID).\n","type":"string"},"vpcName":{"type":"string"}},"required":["availableZones","connectAddress","createdAt","diskEncryptedEnable","diskEncryptedKey","dmsInstanceV2Id","enablePublicip","engine","engineVersion","maintainBegin","maintainEnd","name","nodeNum","port","productId","publicAccessEnabled","publicBandwidth","publicConnectAddresses","resourceSpecCode","retentionPolicy","securityGroupId","securityGroupName","specification","sslEnable","status","storageResourceId","storageSpace","storageSpecCode","subnetCidr","subnetId","subnetName","totalStorageSpace","type","usedStorageSpace","userId","userName","vpcId","vpcName"],"requiredInputs":["availableZones","engine","engineVersion","productId","securityGroupId","storageSpace","storageSpecCode","subnetId","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering DmsInstanceV2 resources.\n","properties":{"accessUser":{"description":"Indicates a username. A username consists of 4 to 64 characters\nand supports only letters, digits, and hyphens (-).\n* Providing <span pulumi-lang-nodejs=\"`accessUser`\" pulumi-lang-dotnet=\"`AccessUser`\" pulumi-lang-go=\"`accessUser`\" pulumi-lang-python=\"`access_user`\" pulumi-lang-yaml=\"`accessUser`\" pulumi-lang-java=\"`accessUser`\">`access_user`</span> and <span pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\">`password`</span> enables <span pulumi-lang-nodejs=\"`ssl`\" pulumi-lang-dotnet=\"`Ssl`\" pulumi-lang-go=\"`ssl`\" pulumi-lang-python=\"`ssl`\" pulumi-lang-yaml=\"`ssl`\" pulumi-lang-java=\"`ssl`\">`ssl`</span> for the instance.\n","type":"string"},"availableZones":{"description":"Indicates the ID of an AZ. The parameter value can not be\nleft blank or an empty array. For details, see section\n[Querying AZ Information](https://docs.otc.t-systems.com/distributed-message-service/api-ref/apis_v2_recommended/other_apis/listing_az_information.html#listavailablezones).\n","items":{"type":"string"},"type":"array"},"connectAddress":{"description":"Indicates the IP address of an instance.\n","type":"string"},"createdAt":{"description":"Indicates the time when an instance is created. The time is in the format\nof timestamp, that is, the offset milliseconds from 1970-01-01 00:00:00 UTC to the specified time.\n","type":"string"},"description":{"description":"Indicates the description of an instance. It is a character\nstring containing not more than 1024 characters.\n","type":"string"},"diskEncryptedEnable":{"description":"Indicates whether disk encryption is enabled.\n","type":"boolean"},"diskEncryptedKey":{"description":"Disk encryption key. If disk encryption is not enabled, this parameter is left blank.\n","type":"string"},"dmsInstanceV2Id":{"type":"string"},"enablePublicip":{"description":"Whether to enable public access. By default, public access is disabled.\n* Possible values: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>, <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n* Default: <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"engine":{"description":"Indicates a message engine. Only <span pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\">`kafka`</span> is supported now.\n","type":"string"},"engineVersion":{"description":"Indicates the version of a message engine.\nOptions: `2.3.0`, `2.7`.\n","type":"string"},"maintainBegin":{"description":"Indicates the time at which a maintenance time window starts.\nFormat: `HH:mm`.\n* The start time and end time of a maintenance time window must indicate the time segment of\na supported maintenance time window.\n* The start time must be set to `22:00`, `02:00`, `06:00`, `10:00`, `14:00`, or `18:00`.\n* Parameters <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> and <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be set in pairs. If parameter <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span>\nis left blank, parameter <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> is also blank. In this case, the system automatically\nallocates the default start time `02:00`.\n","type":"string"},"maintainEnd":{"description":"Indicates the time at which a maintenance time window ends.\nFormat: `HH:mm`.\n* The start time and end time of a maintenance time window must indicate the time segment of\na supported maintenance time window.\n* The end time is four hours later than the start time. For example, if the start time is `22:00`,\nthe end time is `02:00`.\n* Parameters <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> and <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> must be set in pairs. If parameter <span pulumi-lang-nodejs=\"`maintainEnd`\" pulumi-lang-dotnet=\"`MaintainEnd`\" pulumi-lang-go=\"`maintainEnd`\" pulumi-lang-python=\"`maintain_end`\" pulumi-lang-yaml=\"`maintainEnd`\" pulumi-lang-java=\"`maintainEnd`\">`maintain_end`</span> is left\nblank, parameter <span pulumi-lang-nodejs=\"`maintainBegin`\" pulumi-lang-dotnet=\"`MaintainBegin`\" pulumi-lang-go=\"`maintainBegin`\" pulumi-lang-python=\"`maintain_begin`\" pulumi-lang-yaml=\"`maintainBegin`\" pulumi-lang-java=\"`maintainBegin`\">`maintain_begin`</span> is also blank. In this case, the system automatically allocates\nthe default end time `06:00`.\n","type":"string"},"name":{"description":"Indicates the name of an instance. An instance name starts with a letter,\nconsists of 4 to 64 characters, and supports only letters, digits, and hyphens (-).\n","type":"string"},"nodeNum":{"description":"Node quantity.\n","type":"number"},"partitionNum":{"description":"This parameter is mandatory when a <span pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\">`kafka`</span> instance is created.\nIndicates the maximum number of topics in a Kafka instance.\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `100MB`: <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span>\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `300MB`: <span pulumi-lang-nodejs=\"`900`\" pulumi-lang-dotnet=\"`900`\" pulumi-lang-go=\"`900`\" pulumi-lang-python=\"`900`\" pulumi-lang-yaml=\"`900`\" pulumi-lang-java=\"`900`\">`900`</span>\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `600MB`: <span pulumi-lang-nodejs=\"`1800`\" pulumi-lang-dotnet=\"`1800`\" pulumi-lang-go=\"`1800`\" pulumi-lang-python=\"`1800`\" pulumi-lang-yaml=\"`1800`\" pulumi-lang-java=\"`1800`\">`1800`</span>\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `1200MB`: <span pulumi-lang-nodejs=\"`1800`\" pulumi-lang-dotnet=\"`1800`\" pulumi-lang-go=\"`1800`\" pulumi-lang-python=\"`1800`\" pulumi-lang-yaml=\"`1800`\" pulumi-lang-java=\"`1800`\">`1800`</span>\n","type":"number"},"password":{"description":"Indicates the password of an instance. An instance password\nmust meet the following complexity requirements: Must be 8 to 32 characters long.\nMust contain at least 2 of the following character types: lowercase letters, uppercase\nletters, digits, and special characters (`~!@#$%^&*()-_=+\\|[{}]:'\",<.>/?`).\n","secret":true,"type":"string"},"port":{"description":"Indicates the port number of an instance.\n","type":"number"},"productId":{"description":"Indicates a product ID.\n","type":"string"},"publicAccessEnabled":{"description":"Time when public access was enabled for an instance.\nThe value can be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>, <span pulumi-lang-nodejs=\"`actived`\" pulumi-lang-dotnet=\"`Actived`\" pulumi-lang-go=\"`actived`\" pulumi-lang-python=\"`actived`\" pulumi-lang-yaml=\"`actived`\" pulumi-lang-java=\"`actived`\">`actived`</span>, <span pulumi-lang-nodejs=\"`closed`\" pulumi-lang-dotnet=\"`Closed`\" pulumi-lang-go=\"`closed`\" pulumi-lang-python=\"`closed`\" pulumi-lang-yaml=\"`closed`\" pulumi-lang-java=\"`closed`\">`closed`</span>, or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"string"},"publicBandwidth":{"type":"number"},"publicConnectAddresses":{"description":"List of Public IPs bound to DMS instance with specified port.\n","items":{"type":"string"},"type":"array"},"publicipIds":{"description":"List of `public ip` IDs to be bound to DMS instance nodes.\n* Provided ip amount should be same as amount of DMS cluster nodes.\n* Example: `[\"0f2a51dc-93ce-42af\",\"d967d49b-6659-4052\",\"002872f4-82a4-4f6e-9a4e\"]`.\n","items":{"type":"string"},"type":"array"},"resourceSpecCode":{"description":"Indicates a resource specifications identifier.\n","type":"string"},"retentionPolicy":{"description":"Indicates the action to be taken when the memory usage reaches\nthe disk capacity threshold. The possible values are:\n","type":"string"},"securityGroupId":{"description":"Indicates the ID of a security group.\n","type":"string"},"securityGroupName":{"description":"Indicates the name of a security group.\n","type":"string"},"specification":{"description":"This parameter is mandatory if the engine is <span pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\">`kafka`</span>.\nIndicates the baseline bandwidth of a Kafka instance, that is, the maximum amount\nof data transferred per unit time. Unit: `byte/s`. Options: `100MB`, `300MB`,\n`600MB`, `1200MB`.\n","type":"string"},"sslEnable":{"description":"Indicates whether security authentication is enabled.\nPossible values: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>, <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"status":{"description":"Indicates the status of an instance. For details, see section Instance Status.\n","type":"string"},"storageResourceId":{"description":"Storage resource ID.\n","type":"string"},"storageSpace":{"description":"Indicates the message storage space. Value range:\n* Kafka instance with <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> being `100MB`: <span pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\">`600`</span>–<span pulumi-lang-nodejs=\"`90000`\" pulumi-lang-dotnet=\"`90000`\" pulumi-lang-go=\"`90000`\" pulumi-lang-python=\"`90000`\" pulumi-lang-yaml=\"`90000`\" pulumi-lang-java=\"`90000`\">`90000`</span> GB\n* Kafka instance with <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> being `300MB`: <span pulumi-lang-nodejs=\"`1200`\" pulumi-lang-dotnet=\"`1200`\" pulumi-lang-go=\"`1200`\" pulumi-lang-python=\"`1200`\" pulumi-lang-yaml=\"`1200`\" pulumi-lang-java=\"`1200`\">`1200`</span>–<span pulumi-lang-nodejs=\"`90000`\" pulumi-lang-dotnet=\"`90000`\" pulumi-lang-go=\"`90000`\" pulumi-lang-python=\"`90000`\" pulumi-lang-yaml=\"`90000`\" pulumi-lang-java=\"`90000`\">`90000`</span> GB\n* Kafka instance with <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> being `600MB`: <span pulumi-lang-nodejs=\"`2400`\" pulumi-lang-dotnet=\"`2400`\" pulumi-lang-go=\"`2400`\" pulumi-lang-python=\"`2400`\" pulumi-lang-yaml=\"`2400`\" pulumi-lang-java=\"`2400`\">`2400`</span>–<span pulumi-lang-nodejs=\"`90000`\" pulumi-lang-dotnet=\"`90000`\" pulumi-lang-go=\"`90000`\" pulumi-lang-python=\"`90000`\" pulumi-lang-yaml=\"`90000`\" pulumi-lang-java=\"`90000`\">`90000`</span> GB\n* Kafka instance with <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> being `1200MB`: <span pulumi-lang-nodejs=\"`4800`\" pulumi-lang-dotnet=\"`4800`\" pulumi-lang-go=\"`4800`\" pulumi-lang-python=\"`4800`\" pulumi-lang-yaml=\"`4800`\" pulumi-lang-java=\"`4800`\">`4800`</span>–<span pulumi-lang-nodejs=\"`90000`\" pulumi-lang-dotnet=\"`90000`\" pulumi-lang-go=\"`90000`\" pulumi-lang-python=\"`90000`\" pulumi-lang-yaml=\"`90000`\" pulumi-lang-java=\"`90000`\">`90000`</span> GB\n","type":"number"},"storageSpecCode":{"description":"Indicates the storage I/O specification. Options for a Kafka instance:\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `100MB`: `dms.physical.storage.high` or `dms.physical.storage.ultra`\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `300MB`: `dms.physical.storage.high` or `dms.physical.storage.ultra`\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `600MB`: `dms.physical.storage.ultra`\n* When <span pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\">`specification`</span> is `1200MB`: `dms.physical.storage.ultra`\n","type":"string"},"subnetCidr":{"description":"Indicates subnet CIDR block.\n","type":"string"},"subnetId":{"description":"Indicates the ID of the subnet (OpenStack network ID).\n","type":"string"},"subnetName":{"description":"Indicates the name of a subnet.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDmsInstanceV2Timeouts:DmsInstanceV2Timeouts"},"totalStorageSpace":{"description":"Total message storage space in GB.\n","type":"number"},"type":{"description":"Indicates an instance type. Options: <span pulumi-lang-nodejs=\"`single`\" pulumi-lang-dotnet=\"`Single`\" pulumi-lang-go=\"`single`\" pulumi-lang-python=\"`single`\" pulumi-lang-yaml=\"`single`\" pulumi-lang-java=\"`single`\">`single`</span> and <span pulumi-lang-nodejs=\"`cluster`\" pulumi-lang-dotnet=\"`Cluster`\" pulumi-lang-go=\"`cluster`\" pulumi-lang-python=\"`cluster`\" pulumi-lang-yaml=\"`cluster`\" pulumi-lang-java=\"`cluster`\">`cluster`</span>.\n","type":"string"},"usedStorageSpace":{"description":"Indicates the used message storage space. Unit: GB\n","type":"number"},"userId":{"description":"Indicates a user ID.\n","type":"string"},"userName":{"description":"Indicates a username.\n","type":"string"},"vpcId":{"description":"Indicates the ID of a VPC (OpenStack router ID).\n","type":"string"},"vpcName":{"type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/dmsReassignPartitionsV2:DmsReassignPartitionsV2":{"inputProperties":{"dmsReassignPartitionsV2Id":{"type":"string"},"executeAt":{"type":"number"},"instanceId":{"type":"string"},"isSchedule":{"type":"boolean"},"reassignments":{"items":{"$ref":"#/types/opentelekomcloud:index%2FDmsReassignPartitionsV2Reassignment:DmsReassignPartitionsV2Reassignment"},"type":"array"},"throttle":{"type":"number"},"timeEstimate":{"type":"boolean"}},"properties":{"dmsReassignPartitionsV2Id":{"type":"string"},"executeAt":{"type":"number"},"instanceId":{"type":"string"},"isSchedule":{"type":"boolean"},"reassignmentTime":{"type":"number"},"reassignments":{"items":{"$ref":"#/types/opentelekomcloud:index%2FDmsReassignPartitionsV2Reassignment:DmsReassignPartitionsV2Reassignment"},"type":"array"},"region":{"type":"string"},"throttle":{"type":"number"},"timeEstimate":{"type":"boolean"}},"required":["dmsReassignPartitionsV2Id","instanceId","reassignmentTime","reassignments","region"],"requiredInputs":["instanceId","reassignments"],"stateInputs":{"description":"Input properties used for looking up and filtering DmsReassignPartitionsV2 resources.\n","properties":{"dmsReassignPartitionsV2Id":{"type":"string"},"executeAt":{"type":"number"},"instanceId":{"type":"string"},"isSchedule":{"type":"boolean"},"reassignmentTime":{"type":"number"},"reassignments":{"items":{"$ref":"#/types/opentelekomcloud:index%2FDmsReassignPartitionsV2Reassignment:DmsReassignPartitionsV2Reassignment"},"type":"array"},"region":{"type":"string"},"throttle":{"type":"number"},"timeEstimate":{"type":"boolean"}},"type":"object"},"type":"object"},"opentelekomcloud:index/dmsSmartConnectTaskActionV2:DmsSmartConnectTaskActionV2":{"inputProperties":{"action":{"type":"string"},"dmsSmartConnectTaskActionV2Id":{"type":"string"},"instanceId":{"type":"string"},"taskId":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDmsSmartConnectTaskActionV2Timeouts:DmsSmartConnectTaskActionV2Timeouts"}},"properties":{"action":{"type":"string"},"dmsSmartConnectTaskActionV2Id":{"type":"string"},"instanceId":{"type":"string"},"region":{"type":"string"},"taskId":{"type":"string"},"taskStatus":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDmsSmartConnectTaskActionV2Timeouts:DmsSmartConnectTaskActionV2Timeouts"}},"required":["action","dmsSmartConnectTaskActionV2Id","instanceId","region","taskId","taskStatus"],"requiredInputs":["action","instanceId","taskId"],"stateInputs":{"description":"Input properties used for looking up and filtering DmsSmartConnectTaskActionV2 resources.\n","properties":{"action":{"type":"string"},"dmsSmartConnectTaskActionV2Id":{"type":"string"},"instanceId":{"type":"string"},"region":{"type":"string"},"taskId":{"type":"string"},"taskStatus":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDmsSmartConnectTaskActionV2Timeouts:DmsSmartConnectTaskActionV2Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/dmsSmartConnectTaskV2:DmsSmartConnectTaskV2":{"description":"Up-to-date reference of API arguments for DMS instance you can get at\n[documentation portal](https://docs.otc.t-systems.com/distributed-message-service/api-ref/apis_v2_recommended/smart_connect/index.html)\n\nManage DMS kafka smart connect task resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Create a task to dump Kafka data to OBS\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst taskName = config.requireObject<any>(\"taskName\");\nconst topics = config.requireObject<any>(\"topics\");\nconst accessKey = config.requireObject<any>(\"accessKey\");\nconst secretKey = config.requireObject<any>(\"secretKey\");\nconst obsBucketName = config.requireObject<any>(\"obsBucketName\");\nconst obsPath = config.requireObject<any>(\"obsPath\");\nconst test = new opentelekomcloud.DmsSmartConnectTaskV2(\"test\", {\n    instanceId: instanceId,\n    taskName: taskName,\n    topics: topics,\n    destinationType: \"OBS_SINK\",\n    destinationTask: {\n        consumerStrategy: \"latest\",\n        destinationFileType: \"TEXT\",\n        accessKey: accessKey,\n        secretKey: secretKey,\n        obsBucketName: obsBucketName,\n        obsPath: obsPath,\n        partitionFormat: \"yyyy/MM/dd/HH/mm\",\n        recordDelimiter: \"\\n\",\n        deliverTimeInterval: 300,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ntask_name = config.require_object(\"taskName\")\ntopics = config.require_object(\"topics\")\naccess_key = config.require_object(\"accessKey\")\nsecret_key = config.require_object(\"secretKey\")\nobs_bucket_name = config.require_object(\"obsBucketName\")\nobs_path = config.require_object(\"obsPath\")\ntest = opentelekomcloud.DmsSmartConnectTaskV2(\"test\",\n    instance_id=instance_id,\n    task_name=task_name,\n    topics=topics,\n    destination_type=\"OBS_SINK\",\n    destination_task={\n        \"consumer_strategy\": \"latest\",\n        \"destination_file_type\": \"TEXT\",\n        \"access_key\": access_key,\n        \"secret_key\": secret_key,\n        \"obs_bucket_name\": obs_bucket_name,\n        \"obs_path\": obs_path,\n        \"partition_format\": \"yyyy/MM/dd/HH/mm\",\n        \"record_delimiter\": \"\\n\",\n        \"deliver_time_interval\": 300,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var taskName = config.RequireObject<dynamic>(\"taskName\");\n    var topics = config.RequireObject<dynamic>(\"topics\");\n    var accessKey = config.RequireObject<dynamic>(\"accessKey\");\n    var secretKey = config.RequireObject<dynamic>(\"secretKey\");\n    var obsBucketName = config.RequireObject<dynamic>(\"obsBucketName\");\n    var obsPath = config.RequireObject<dynamic>(\"obsPath\");\n    var test = new Opentelekomcloud.DmsSmartConnectTaskV2(\"test\", new()\n    {\n        InstanceId = instanceId,\n        TaskName = taskName,\n        Topics = topics,\n        DestinationType = \"OBS_SINK\",\n        DestinationTask = new Opentelekomcloud.Inputs.DmsSmartConnectTaskV2DestinationTaskArgs\n        {\n            ConsumerStrategy = \"latest\",\n            DestinationFileType = \"TEXT\",\n            AccessKey = accessKey,\n            SecretKey = secretKey,\n            ObsBucketName = obsBucketName,\n            ObsPath = obsPath,\n            PartitionFormat = \"yyyy/MM/dd/HH/mm\",\n            RecordDelimiter = @\"\n\",\n            DeliverTimeInterval = 300,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\ttaskName := cfg.RequireObject(\"taskName\")\n\t\ttopics := cfg.RequireObject(\"topics\")\n\t\taccessKey := cfg.RequireObject(\"accessKey\")\n\t\tsecretKey := cfg.RequireObject(\"secretKey\")\n\t\tobsBucketName := cfg.RequireObject(\"obsBucketName\")\n\t\tobsPath := cfg.RequireObject(\"obsPath\")\n\t\t_, err := opentelekomcloud.NewDmsSmartConnectTaskV2(ctx, \"test\", &opentelekomcloud.DmsSmartConnectTaskV2Args{\n\t\t\tInstanceId:      pulumi.Any(instanceId),\n\t\t\tTaskName:        pulumi.Any(taskName),\n\t\t\tTopics:          pulumi.Any(topics),\n\t\t\tDestinationType: pulumi.String(\"OBS_SINK\"),\n\t\t\tDestinationTask: &opentelekomcloud.DmsSmartConnectTaskV2DestinationTaskArgs{\n\t\t\t\tConsumerStrategy:    pulumi.String(\"latest\"),\n\t\t\t\tDestinationFileType: pulumi.String(\"TEXT\"),\n\t\t\t\tAccessKey:           pulumi.Any(accessKey),\n\t\t\t\tSecretKey:           pulumi.Any(secretKey),\n\t\t\t\tObsBucketName:       pulumi.Any(obsBucketName),\n\t\t\t\tObsPath:             pulumi.Any(obsPath),\n\t\t\t\tPartitionFormat:     pulumi.String(\"yyyy/MM/dd/HH/mm\"),\n\t\t\t\tRecordDelimiter:     pulumi.String(\"\\n\"),\n\t\t\t\tDeliverTimeInterval: pulumi.Float64(300),\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.opentelekomcloud.DmsSmartConnectTaskV2;\nimport com.pulumi.opentelekomcloud.DmsSmartConnectTaskV2Args;\nimport com.pulumi.opentelekomcloud.inputs.DmsSmartConnectTaskV2DestinationTaskArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var taskName = config.get(\"taskName\");\n        final var topics = config.get(\"topics\");\n        final var accessKey = config.get(\"accessKey\");\n        final var secretKey = config.get(\"secretKey\");\n        final var obsBucketName = config.get(\"obsBucketName\");\n        final var obsPath = config.get(\"obsPath\");\n        var test = new DmsSmartConnectTaskV2(\"test\", DmsSmartConnectTaskV2Args.builder()\n            .instanceId(instanceId)\n            .taskName(taskName)\n            .topics(topics)\n            .destinationType(\"OBS_SINK\")\n            .destinationTask(DmsSmartConnectTaskV2DestinationTaskArgs.builder()\n                .consumerStrategy(\"latest\")\n                .destinationFileType(\"TEXT\")\n                .accessKey(accessKey)\n                .secretKey(secretKey)\n                .obsBucketName(obsBucketName)\n                .obsPath(obsPath)\n                .partitionFormat(\"yyyy/MM/dd/HH/mm\")\n                .recordDelimiter(\"\"\"\n\n                \"\"\")\n                .deliverTimeInterval(300.0)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  taskName:\n    type: dynamic\n  topics:\n    type: dynamic\n  accessKey:\n    type: dynamic\n  secretKey:\n    type: dynamic\n  obsBucketName:\n    type: dynamic\n  obsPath:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:DmsSmartConnectTaskV2\n    properties:\n      instanceId: ${instanceId}\n      taskName: ${taskName}\n      topics: ${topics}\n      destinationType: OBS_SINK\n      destinationTask:\n        consumerStrategy: latest\n        destinationFileType: TEXT\n        accessKey: ${accessKey}\n        secretKey: ${secretKey}\n        obsBucketName: ${obsBucketName}\n        obsPath: ${obsPath}\n        partitionFormat: yyyy/MM/dd/HH/mm\n        recordDelimiter: |2+\n        deliverTimeInterval: 300\n```\n<!--End PulumiCodeChooser -->\n\n### Create a Kafka data replication task\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst taskName = config.requireObject<any>(\"taskName\");\nconst peerInstanceId = config.requireObject<any>(\"peerInstanceId\");\nconst test = new opentelekomcloud.DmsSmartConnectTaskV2(\"test\", {\n    instanceId: instanceId,\n    taskName: taskName,\n    topics: [\"topic-test\"],\n    sourceType: \"KAFKA_REPLICATOR_SOURCE\",\n    sourceTask: {\n        peerInstanceId: peerInstanceId,\n        direction: \"push\",\n        replicationFactor: 3,\n        taskNum: 2,\n        provenanceHeaderEnabled: false,\n        syncConsumerOffsetsEnabled: false,\n        renameTopicEnabled: false,\n        consumerStrategy: \"latest\",\n        compressionType: \"none\",\n        topicsMappings: [\"topic-test:topic-test-mapping\"],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ntask_name = config.require_object(\"taskName\")\npeer_instance_id = config.require_object(\"peerInstanceId\")\ntest = opentelekomcloud.DmsSmartConnectTaskV2(\"test\",\n    instance_id=instance_id,\n    task_name=task_name,\n    topics=[\"topic-test\"],\n    source_type=\"KAFKA_REPLICATOR_SOURCE\",\n    source_task={\n        \"peer_instance_id\": peer_instance_id,\n        \"direction\": \"push\",\n        \"replication_factor\": 3,\n        \"task_num\": 2,\n        \"provenance_header_enabled\": False,\n        \"sync_consumer_offsets_enabled\": False,\n        \"rename_topic_enabled\": False,\n        \"consumer_strategy\": \"latest\",\n        \"compression_type\": \"none\",\n        \"topics_mappings\": [\"topic-test:topic-test-mapping\"],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var taskName = config.RequireObject<dynamic>(\"taskName\");\n    var peerInstanceId = config.RequireObject<dynamic>(\"peerInstanceId\");\n    var test = new Opentelekomcloud.DmsSmartConnectTaskV2(\"test\", new()\n    {\n        InstanceId = instanceId,\n        TaskName = taskName,\n        Topics = new[]\n        {\n            \"topic-test\",\n        },\n        SourceType = \"KAFKA_REPLICATOR_SOURCE\",\n        SourceTask = new Opentelekomcloud.Inputs.DmsSmartConnectTaskV2SourceTaskArgs\n        {\n            PeerInstanceId = peerInstanceId,\n            Direction = \"push\",\n            ReplicationFactor = 3,\n            TaskNum = 2,\n            ProvenanceHeaderEnabled = false,\n            SyncConsumerOffsetsEnabled = false,\n            RenameTopicEnabled = false,\n            ConsumerStrategy = \"latest\",\n            CompressionType = \"none\",\n            TopicsMappings = new[]\n            {\n                \"topic-test:topic-test-mapping\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\ttaskName := cfg.RequireObject(\"taskName\")\n\t\tpeerInstanceId := cfg.RequireObject(\"peerInstanceId\")\n\t\t_, err := opentelekomcloud.NewDmsSmartConnectTaskV2(ctx, \"test\", &opentelekomcloud.DmsSmartConnectTaskV2Args{\n\t\t\tInstanceId: pulumi.Any(instanceId),\n\t\t\tTaskName:   pulumi.Any(taskName),\n\t\t\tTopics: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"topic-test\"),\n\t\t\t},\n\t\t\tSourceType: pulumi.String(\"KAFKA_REPLICATOR_SOURCE\"),\n\t\t\tSourceTask: &opentelekomcloud.DmsSmartConnectTaskV2SourceTaskArgs{\n\t\t\t\tPeerInstanceId:             pulumi.Any(peerInstanceId),\n\t\t\t\tDirection:                  pulumi.String(\"push\"),\n\t\t\t\tReplicationFactor:          pulumi.Float64(3),\n\t\t\t\tTaskNum:                    pulumi.Float64(2),\n\t\t\t\tProvenanceHeaderEnabled:    pulumi.Bool(false),\n\t\t\t\tSyncConsumerOffsetsEnabled: pulumi.Bool(false),\n\t\t\t\tRenameTopicEnabled:         pulumi.Bool(false),\n\t\t\t\tConsumerStrategy:           pulumi.String(\"latest\"),\n\t\t\t\tCompressionType:            pulumi.String(\"none\"),\n\t\t\t\tTopicsMappings: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"topic-test:topic-test-mapping\"),\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.opentelekomcloud.DmsSmartConnectTaskV2;\nimport com.pulumi.opentelekomcloud.DmsSmartConnectTaskV2Args;\nimport com.pulumi.opentelekomcloud.inputs.DmsSmartConnectTaskV2SourceTaskArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var taskName = config.get(\"taskName\");\n        final var peerInstanceId = config.get(\"peerInstanceId\");\n        var test = new DmsSmartConnectTaskV2(\"test\", DmsSmartConnectTaskV2Args.builder()\n            .instanceId(instanceId)\n            .taskName(taskName)\n            .topics(\"topic-test\")\n            .sourceType(\"KAFKA_REPLICATOR_SOURCE\")\n            .sourceTask(DmsSmartConnectTaskV2SourceTaskArgs.builder()\n                .peerInstanceId(peerInstanceId)\n                .direction(\"push\")\n                .replicationFactor(3.0)\n                .taskNum(2.0)\n                .provenanceHeaderEnabled(false)\n                .syncConsumerOffsetsEnabled(false)\n                .renameTopicEnabled(false)\n                .consumerStrategy(\"latest\")\n                .compressionType(\"none\")\n                .topicsMappings(\"topic-test:topic-test-mapping\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  taskName:\n    type: dynamic\n  peerInstanceId:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:DmsSmartConnectTaskV2\n    properties:\n      instanceId: ${instanceId}\n      taskName: ${taskName}\n      topics:\n        - topic-test\n      sourceType: KAFKA_REPLICATOR_SOURCE\n      sourceTask:\n        peerInstanceId: ${peerInstanceId}\n        direction: push\n        replicationFactor: 3\n        taskNum: 2\n        provenanceHeaderEnabled: false\n        syncConsumerOffsetsEnabled: false\n        renameTopicEnabled: false\n        consumerStrategy: latest\n        compressionType: none\n        topicsMappings:\n          - topic-test:topic-test-mapping\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe kafka smart connect task can be imported using the kafka instance `instance_id` and `task_id` separated by a slash, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/dmsSmartConnectTaskV2:DmsSmartConnectTaskV2 test <instance_id>/<task_id>\n```\n\nNote that the imported state may not be identical to your resource definition, due to some attributes missing from\n\nthe API response. The missing attributes include: `start_later`, `destination_task.0.access_key`,\n\n`destination_task.0.secret_key` and `source_task.0.password`. It is generally recommended running `pulumi preview`\n\nafter importing a kafka smart connect task. You can then decide if changes should be applied to the kafka smart connect\n\ntask, or the resource definition should be updated to align with the kafka smart connect task. Also you can ignore\n\nchanges as below.\n\nhcl\n\nresource \"opentelekomcloud_dms_smart_connect_task_v2\" \"test\" {\n\n  lifecycle {\n\n    ignore_changes = [\n\n      destination_task.0.access_key, destination_task.0.secret_key, source_task.0.password,\n\n    ]\n\n  }\n\n}\n\n","inputProperties":{"destinationTask":{"$ref":"#/types/opentelekomcloud:index%2FDmsSmartConnectTaskV2DestinationTask:DmsSmartConnectTaskV2DestinationTask","description":"Specifies the destination configuration of a smart connect task.\nThe<span pulumi-lang-nodejs=\" destinationTask \" pulumi-lang-dotnet=\" DestinationTask \" pulumi-lang-go=\" destinationTask \" pulumi-lang-python=\" destination_task \" pulumi-lang-yaml=\" destinationTask \" pulumi-lang-java=\" destinationTask \"> destination_task </span>structure is documented below.\nChanging this parameter will create a new resource.\n\n<a name=<span pulumi-lang-nodejs=\"\"dmsSourceTask\"\" pulumi-lang-dotnet=\"\"DmsSourceTask\"\" pulumi-lang-go=\"\"dmsSourceTask\"\" pulumi-lang-python=\"\"dms_source_task\"\" pulumi-lang-yaml=\"\"dmsSourceTask\"\" pulumi-lang-java=\"\"dmsSourceTask\"\">\"dms_source_task\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`sourceTask`\" pulumi-lang-dotnet=\"`SourceTask`\" pulumi-lang-go=\"`sourceTask`\" pulumi-lang-python=\"`source_task`\" pulumi-lang-yaml=\"`sourceTask`\" pulumi-lang-java=\"`sourceTask`\">`source_task`</span> block supports:\n"},"destinationType":{"description":"Specifies the destination type of the smart connect task.\nValid values are **OBS_SINK** and **NONE**. Changing this parameter will create a new resource.\n","type":"string"},"dmsSmartConnectTaskV2Id":{"description":"The resource ID.\n","type":"string"},"instanceId":{"description":"Specifies the kafka instance ID.\nChanging this parameter will create a new resource.\n","type":"string"},"sourceTask":{"$ref":"#/types/opentelekomcloud:index%2FDmsSmartConnectTaskV2SourceTask:DmsSmartConnectTaskV2SourceTask","description":"Specifies the source configuration of a smart connect task.\nThe<span pulumi-lang-nodejs=\" sourceTask \" pulumi-lang-dotnet=\" SourceTask \" pulumi-lang-go=\" sourceTask \" pulumi-lang-python=\" source_task \" pulumi-lang-yaml=\" sourceTask \" pulumi-lang-java=\" sourceTask \"> source_task </span>structure is documented below.\nChanging this parameter will create a new resource.\n"},"sourceType":{"description":"Specifies the source type of the smart connect task. Valid values are\n**KAFKA_REPLICATOR_SOURCE** and **NONE**. Changing this parameter will create a new resource.\n","type":"string"},"startLater":{"description":"Specifies whether to start a task later.\nChanging this parameter will create a new resource.\n","type":"boolean"},"taskName":{"description":"Specifies the smart connect task name.\nChanging this parameter will create a new resource.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDmsSmartConnectTaskV2Timeouts:DmsSmartConnectTaskV2Timeouts"},"topics":{"description":"Specifies the topic names list of the smart connect task.\nChanging this parameter will create a new resource.\n","items":{"type":"string"},"type":"array"},"topicsRegex":{"description":"Specifies the regular expression of topic name for the smart connect task.\nChanging this parameter will create a new resource.\n\n> Exactly one of <span pulumi-lang-nodejs=\"`topics`\" pulumi-lang-dotnet=\"`Topics`\" pulumi-lang-go=\"`topics`\" pulumi-lang-python=\"`topics`\" pulumi-lang-yaml=\"`topics`\" pulumi-lang-java=\"`topics`\">`topics`</span>, <span pulumi-lang-nodejs=\"`topicsRegex`\" pulumi-lang-dotnet=\"`TopicsRegex`\" pulumi-lang-go=\"`topicsRegex`\" pulumi-lang-python=\"`topics_regex`\" pulumi-lang-yaml=\"`topicsRegex`\" pulumi-lang-java=\"`topicsRegex`\">`topics_regex`</span> should be specified.\n","type":"string"}},"properties":{"createdAt":{"description":"Indicates the creation time of the smart connect task.\n","type":"string"},"destinationTask":{"$ref":"#/types/opentelekomcloud:index%2FDmsSmartConnectTaskV2DestinationTask:DmsSmartConnectTaskV2DestinationTask","description":"Specifies the destination configuration of a smart connect task.\nThe<span pulumi-lang-nodejs=\" destinationTask \" pulumi-lang-dotnet=\" DestinationTask \" pulumi-lang-go=\" destinationTask \" pulumi-lang-python=\" destination_task \" pulumi-lang-yaml=\" destinationTask \" pulumi-lang-java=\" destinationTask \"> destination_task </span>structure is documented below.\nChanging this parameter will create a new resource.\n\n<a name=<span pulumi-lang-nodejs=\"\"dmsSourceTask\"\" pulumi-lang-dotnet=\"\"DmsSourceTask\"\" pulumi-lang-go=\"\"dmsSourceTask\"\" pulumi-lang-python=\"\"dms_source_task\"\" pulumi-lang-yaml=\"\"dmsSourceTask\"\" pulumi-lang-java=\"\"dmsSourceTask\"\">\"dms_source_task\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`sourceTask`\" pulumi-lang-dotnet=\"`SourceTask`\" pulumi-lang-go=\"`sourceTask`\" pulumi-lang-python=\"`source_task`\" pulumi-lang-yaml=\"`sourceTask`\" pulumi-lang-java=\"`sourceTask`\">`source_task`</span> block supports:\n"},"destinationType":{"description":"Specifies the destination type of the smart connect task.\nValid values are **OBS_SINK** and **NONE**. Changing this parameter will create a new resource.\n","type":"string"},"dmsSmartConnectTaskV2Id":{"description":"The resource ID.\n","type":"string"},"instanceId":{"description":"Specifies the kafka instance ID.\nChanging this parameter will create a new resource.\n","type":"string"},"region":{"description":"The region in which the resource is created.\n","type":"string"},"sourceTask":{"$ref":"#/types/opentelekomcloud:index%2FDmsSmartConnectTaskV2SourceTask:DmsSmartConnectTaskV2SourceTask","description":"Specifies the source configuration of a smart connect task.\nThe<span pulumi-lang-nodejs=\" sourceTask \" pulumi-lang-dotnet=\" SourceTask \" pulumi-lang-go=\" sourceTask \" pulumi-lang-python=\" source_task \" pulumi-lang-yaml=\" sourceTask \" pulumi-lang-java=\" sourceTask \"> source_task </span>structure is documented below.\nChanging this parameter will create a new resource.\n"},"sourceType":{"description":"Specifies the source type of the smart connect task. Valid values are\n**KAFKA_REPLICATOR_SOURCE** and **NONE**. Changing this parameter will create a new resource.\n","type":"string"},"startLater":{"description":"Specifies whether to start a task later.\nChanging this parameter will create a new resource.\n","type":"boolean"},"status":{"description":"Indicates the status of the smart connect task.\n","type":"string"},"taskName":{"description":"Specifies the smart connect task name.\nChanging this parameter will create a new resource.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDmsSmartConnectTaskV2Timeouts:DmsSmartConnectTaskV2Timeouts"},"topics":{"description":"Specifies the topic names list of the smart connect task.\nChanging this parameter will create a new resource.\n","items":{"type":"string"},"type":"array"},"topicsRegex":{"description":"Specifies the regular expression of topic name for the smart connect task.\nChanging this parameter will create a new resource.\n\n> Exactly one of <span pulumi-lang-nodejs=\"`topics`\" pulumi-lang-dotnet=\"`Topics`\" pulumi-lang-go=\"`topics`\" pulumi-lang-python=\"`topics`\" pulumi-lang-yaml=\"`topics`\" pulumi-lang-java=\"`topics`\">`topics`</span>, <span pulumi-lang-nodejs=\"`topicsRegex`\" pulumi-lang-dotnet=\"`TopicsRegex`\" pulumi-lang-go=\"`topicsRegex`\" pulumi-lang-python=\"`topics_regex`\" pulumi-lang-yaml=\"`topicsRegex`\" pulumi-lang-java=\"`topicsRegex`\">`topics_regex`</span> should be specified.\n","type":"string"}},"required":["createdAt","destinationType","dmsSmartConnectTaskV2Id","instanceId","region","sourceType","status","taskName"],"requiredInputs":["instanceId","taskName"],"stateInputs":{"description":"Input properties used for looking up and filtering DmsSmartConnectTaskV2 resources.\n","properties":{"createdAt":{"description":"Indicates the creation time of the smart connect task.\n","type":"string"},"destinationTask":{"$ref":"#/types/opentelekomcloud:index%2FDmsSmartConnectTaskV2DestinationTask:DmsSmartConnectTaskV2DestinationTask","description":"Specifies the destination configuration of a smart connect task.\nThe<span pulumi-lang-nodejs=\" destinationTask \" pulumi-lang-dotnet=\" DestinationTask \" pulumi-lang-go=\" destinationTask \" pulumi-lang-python=\" destination_task \" pulumi-lang-yaml=\" destinationTask \" pulumi-lang-java=\" destinationTask \"> destination_task </span>structure is documented below.\nChanging this parameter will create a new resource.\n\n<a name=<span pulumi-lang-nodejs=\"\"dmsSourceTask\"\" pulumi-lang-dotnet=\"\"DmsSourceTask\"\" pulumi-lang-go=\"\"dmsSourceTask\"\" pulumi-lang-python=\"\"dms_source_task\"\" pulumi-lang-yaml=\"\"dmsSourceTask\"\" pulumi-lang-java=\"\"dmsSourceTask\"\">\"dms_source_task\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`sourceTask`\" pulumi-lang-dotnet=\"`SourceTask`\" pulumi-lang-go=\"`sourceTask`\" pulumi-lang-python=\"`source_task`\" pulumi-lang-yaml=\"`sourceTask`\" pulumi-lang-java=\"`sourceTask`\">`source_task`</span> block supports:\n"},"destinationType":{"description":"Specifies the destination type of the smart connect task.\nValid values are **OBS_SINK** and **NONE**. Changing this parameter will create a new resource.\n","type":"string"},"dmsSmartConnectTaskV2Id":{"description":"The resource ID.\n","type":"string"},"instanceId":{"description":"Specifies the kafka instance ID.\nChanging this parameter will create a new resource.\n","type":"string"},"region":{"description":"The region in which the resource is created.\n","type":"string"},"sourceTask":{"$ref":"#/types/opentelekomcloud:index%2FDmsSmartConnectTaskV2SourceTask:DmsSmartConnectTaskV2SourceTask","description":"Specifies the source configuration of a smart connect task.\nThe<span pulumi-lang-nodejs=\" sourceTask \" pulumi-lang-dotnet=\" SourceTask \" pulumi-lang-go=\" sourceTask \" pulumi-lang-python=\" source_task \" pulumi-lang-yaml=\" sourceTask \" pulumi-lang-java=\" sourceTask \"> source_task </span>structure is documented below.\nChanging this parameter will create a new resource.\n"},"sourceType":{"description":"Specifies the source type of the smart connect task. Valid values are\n**KAFKA_REPLICATOR_SOURCE** and **NONE**. Changing this parameter will create a new resource.\n","type":"string"},"startLater":{"description":"Specifies whether to start a task later.\nChanging this parameter will create a new resource.\n","type":"boolean"},"status":{"description":"Indicates the status of the smart connect task.\n","type":"string"},"taskName":{"description":"Specifies the smart connect task name.\nChanging this parameter will create a new resource.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDmsSmartConnectTaskV2Timeouts:DmsSmartConnectTaskV2Timeouts"},"topics":{"description":"Specifies the topic names list of the smart connect task.\nChanging this parameter will create a new resource.\n","items":{"type":"string"},"type":"array"},"topicsRegex":{"description":"Specifies the regular expression of topic name for the smart connect task.\nChanging this parameter will create a new resource.\n\n> Exactly one of <span pulumi-lang-nodejs=\"`topics`\" pulumi-lang-dotnet=\"`Topics`\" pulumi-lang-go=\"`topics`\" pulumi-lang-python=\"`topics`\" pulumi-lang-yaml=\"`topics`\" pulumi-lang-java=\"`topics`\">`topics`</span>, <span pulumi-lang-nodejs=\"`topicsRegex`\" pulumi-lang-dotnet=\"`TopicsRegex`\" pulumi-lang-go=\"`topicsRegex`\" pulumi-lang-python=\"`topics_regex`\" pulumi-lang-yaml=\"`topicsRegex`\" pulumi-lang-java=\"`topicsRegex`\">`topics_regex`</span> should be specified.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/dmsSmartConnectV2:DmsSmartConnectV2":{"description":"Up-to-date reference of API arguments for DMS instance you can get at\n[documentation portal](https://docs.otc.t-systems.com/distributed-message-service/api-ref/apis_v2_recommended/smart_connect/index.html)\n\nManage DMS smart connect v2 resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst test = new opentelekomcloud.DmsSmartConnectV2(\"test\", {\n    instanceId: instanceId,\n    storageSpecCode: \"dms.physical.storage.ultra.v2\",\n    bandwidth: \"100MB\",\n    nodeCount: 2,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ntest = opentelekomcloud.DmsSmartConnectV2(\"test\",\n    instance_id=instance_id,\n    storage_spec_code=\"dms.physical.storage.ultra.v2\",\n    bandwidth=\"100MB\",\n    node_count=2)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var test = new Opentelekomcloud.DmsSmartConnectV2(\"test\", new()\n    {\n        InstanceId = instanceId,\n        StorageSpecCode = \"dms.physical.storage.ultra.v2\",\n        Bandwidth = \"100MB\",\n        NodeCount = 2,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\t_, err := opentelekomcloud.NewDmsSmartConnectV2(ctx, \"test\", &opentelekomcloud.DmsSmartConnectV2Args{\n\t\t\tInstanceId:      pulumi.Any(instanceId),\n\t\t\tStorageSpecCode: pulumi.String(\"dms.physical.storage.ultra.v2\"),\n\t\t\tBandwidth:       pulumi.String(\"100MB\"),\n\t\t\tNodeCount:       pulumi.Float64(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.DmsSmartConnectV2;\nimport com.pulumi.opentelekomcloud.DmsSmartConnectV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        var test = new DmsSmartConnectV2(\"test\", DmsSmartConnectV2Args.builder()\n            .instanceId(instanceId)\n            .storageSpecCode(\"dms.physical.storage.ultra.v2\")\n            .bandwidth(\"100MB\")\n            .nodeCount(2.0)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:DmsSmartConnectV2\n    properties:\n      instanceId: ${instanceId}\n      storageSpecCode: dms.physical.storage.ultra.v2\n      bandwidth: 100MB\n      nodeCount: 2\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"bandwidth":{"description":"Specifies the bandwidth of the connector.\n\nChanging this parameter will create a new resource.\n","type":"string"},"dmsSmartConnectV2Id":{"description":"The resource ID.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the DMS instance.\n\nChanging this parameter will create a new resource.\n","type":"string"},"nodeCount":{"description":"Specifies the node count of the connector. Defaults to 2 and minimum is 2.\n\nChanging this parameter will create a new resource.\n","type":"number"},"storageSpecCode":{"description":"Specifies the storage specification code of the connector.\n\nChanging this parameter will create a new resource.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDmsSmartConnectV2Timeouts:DmsSmartConnectV2Timeouts"}},"properties":{"bandwidth":{"description":"Specifies the bandwidth of the connector.\n\nChanging this parameter will create a new resource.\n","type":"string"},"dmsSmartConnectV2Id":{"description":"The resource ID.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the DMS instance.\n\nChanging this parameter will create a new resource.\n","type":"string"},"nodeCount":{"description":"Specifies the node count of the connector. Defaults to 2 and minimum is 2.\n\nChanging this parameter will create a new resource.\n","type":"number"},"region":{"description":"The DMS instance region\n","type":"string"},"storageSpecCode":{"description":"Specifies the storage specification code of the connector.\n\nChanging this parameter will create a new resource.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDmsSmartConnectV2Timeouts:DmsSmartConnectV2Timeouts"}},"required":["dmsSmartConnectV2Id","instanceId","region"],"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering DmsSmartConnectV2 resources.\n","properties":{"bandwidth":{"description":"Specifies the bandwidth of the connector.\n\nChanging this parameter will create a new resource.\n","type":"string"},"dmsSmartConnectV2Id":{"description":"The resource ID.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the DMS instance.\n\nChanging this parameter will create a new resource.\n","type":"string"},"nodeCount":{"description":"Specifies the node count of the connector. Defaults to 2 and minimum is 2.\n\nChanging this parameter will create a new resource.\n","type":"number"},"region":{"description":"The DMS instance region\n","type":"string"},"storageSpecCode":{"description":"Specifies the storage specification code of the connector.\n\nChanging this parameter will create a new resource.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDmsSmartConnectV2Timeouts:DmsSmartConnectV2Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/dmsTopicV1:DmsTopicV1":{"description":"Up-to-date reference of API arguments for DMS topic you can get at\n[documentation portal](https://docs.otc.t-systems.com/distributed-message-service/api-ref/out-of-date_apis/api_v1/apis_for_managing_instances)\n\nManages a DMS topic in the OpenTelekomCloud DMS Service (Kafka Premium/Platinum).\n\n~>\nDeprecated, use <span pulumi-lang-nodejs=\"`opentelekomcloud.DmsTopicV2`\" pulumi-lang-dotnet=\"`opentelekomcloud.DmsTopicV2`\" pulumi-lang-go=\"`DmsTopicV2`\" pulumi-lang-python=\"`DmsTopicV2`\" pulumi-lang-yaml=\"`opentelekomcloud.DmsTopicV2`\" pulumi-lang-java=\"`opentelekomcloud.DmsTopicV2`\">`opentelekomcloud.DmsTopicV2`</span> resource instead\n\n## Example Usage\n\n### Creating Dms Instance With Topic\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst secgroup1 = new opentelekomcloud.NetworkingSecgroupV2(\"secgroup_1\", {\n    name: \"secgroup_1\",\n    description: \"secgroup_1\",\n});\nconst az1 = opentelekomcloud.getDmsAzV1({\n    name: \"eu-de-01\",\n});\nconst product1 = opentelekomcloud.getDmsProductV1({\n    engine: \"kafka\",\n    version: \"2.3.0\",\n    instanceType: \"cluster\",\n    partitionNum: \"300\",\n    storage: \"600\",\n    storageSpecCode: \"dms.physical.storage.high\",\n});\nconst instance1 = new opentelekomcloud.DmsInstanceV1(\"instance_1\", {\n    name: \"kafka-test\",\n    engine: \"kafka\",\n    productId: product1.then(product1 => product1.id),\n    engineVersion: product1.then(product1 => product1.version),\n    specification: product1.then(product1 => product1.bandwidth),\n    partitionNum: product1.then(product1 => product1.partitionNum),\n    storageSpecCode: product1.then(product1 => product1.storageSpecCode),\n    storageSpace: product1.then(product1 => product1.storage),\n    availableZones: [az1.then(az1 => az1.id)],\n    securityGroupId: secgroup1.networkingSecgroupV2Id,\n    vpcId: vpcId,\n    subnetId: subnetId,\n    accessUser: accessUser,\n    password: password,\n});\nconst topic1 = new opentelekomcloud.DmsTopicV1(\"topic_1\", {\n    instanceId: opentelekomcloudDmsInstanceV1.instance1.id,\n    name: \"topic-test\",\n    partition: 10,\n    replication: 2,\n    syncReplication: true,\n    retentionTime: 80,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nsecgroup1 = opentelekomcloud.NetworkingSecgroupV2(\"secgroup_1\",\n    name=\"secgroup_1\",\n    description=\"secgroup_1\")\naz1 = opentelekomcloud.get_dms_az_v1(name=\"eu-de-01\")\nproduct1 = opentelekomcloud.get_dms_product_v1(engine=\"kafka\",\n    version=\"2.3.0\",\n    instance_type=\"cluster\",\n    partition_num=\"300\",\n    storage=\"600\",\n    storage_spec_code=\"dms.physical.storage.high\")\ninstance1 = opentelekomcloud.DmsInstanceV1(\"instance_1\",\n    name=\"kafka-test\",\n    engine=\"kafka\",\n    product_id=product1.id,\n    engine_version=product1.version,\n    specification=product1.bandwidth,\n    partition_num=product1.partition_num,\n    storage_spec_code=product1.storage_spec_code,\n    storage_space=product1.storage,\n    available_zones=[az1.id],\n    security_group_id=secgroup1.networking_secgroup_v2_id,\n    vpc_id=vpc_id,\n    subnet_id=subnet_id,\n    access_user=access_user,\n    password=password)\ntopic1 = opentelekomcloud.DmsTopicV1(\"topic_1\",\n    instance_id=opentelekomcloud_dms_instance_v1[\"instance1\"][\"id\"],\n    name=\"topic-test\",\n    partition=10,\n    replication=2,\n    sync_replication=True,\n    retention_time=80)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var secgroup1 = new Opentelekomcloud.NetworkingSecgroupV2(\"secgroup_1\", new()\n    {\n        Name = \"secgroup_1\",\n        Description = \"secgroup_1\",\n    });\n\n    var az1 = Opentelekomcloud.GetDmsAzV1.Invoke(new()\n    {\n        Name = \"eu-de-01\",\n    });\n\n    var product1 = Opentelekomcloud.GetDmsProductV1.Invoke(new()\n    {\n        Engine = \"kafka\",\n        Version = \"2.3.0\",\n        InstanceType = \"cluster\",\n        PartitionNum = \"300\",\n        Storage = \"600\",\n        StorageSpecCode = \"dms.physical.storage.high\",\n    });\n\n    var instance1 = new Opentelekomcloud.DmsInstanceV1(\"instance_1\", new()\n    {\n        Name = \"kafka-test\",\n        Engine = \"kafka\",\n        ProductId = product1.Apply(getDmsProductV1Result => getDmsProductV1Result.Id),\n        EngineVersion = product1.Apply(getDmsProductV1Result => getDmsProductV1Result.Version),\n        Specification = product1.Apply(getDmsProductV1Result => getDmsProductV1Result.Bandwidth),\n        PartitionNum = product1.Apply(getDmsProductV1Result => getDmsProductV1Result.PartitionNum),\n        StorageSpecCode = product1.Apply(getDmsProductV1Result => getDmsProductV1Result.StorageSpecCode),\n        StorageSpace = product1.Apply(getDmsProductV1Result => getDmsProductV1Result.Storage),\n        AvailableZones = new[]\n        {\n            az1.Apply(getDmsAzV1Result => getDmsAzV1Result.Id),\n        },\n        SecurityGroupId = secgroup1.NetworkingSecgroupV2Id,\n        VpcId = vpcId,\n        SubnetId = subnetId,\n        AccessUser = accessUser,\n        Password = password,\n    });\n\n    var topic1 = new Opentelekomcloud.DmsTopicV1(\"topic_1\", new()\n    {\n        InstanceId = opentelekomcloudDmsInstanceV1.Instance1.Id,\n        Name = \"topic-test\",\n        Partition = 10,\n        Replication = 2,\n        SyncReplication = true,\n        RetentionTime = 80,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsecgroup1, err := opentelekomcloud.NewNetworkingSecgroupV2(ctx, \"secgroup_1\", &opentelekomcloud.NetworkingSecgroupV2Args{\n\t\t\tName:        pulumi.String(\"secgroup_1\"),\n\t\t\tDescription: pulumi.String(\"secgroup_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\taz1, err := opentelekomcloud.GetDmsAzV1(ctx, &opentelekomcloud.GetDmsAzV1Args{\n\t\t\tName: pulumi.StringRef(\"eu-de-01\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproduct1, err := opentelekomcloud.GetDmsProductV1(ctx, &opentelekomcloud.GetDmsProductV1Args{\n\t\t\tEngine:          \"kafka\",\n\t\t\tVersion:         pulumi.StringRef(\"2.3.0\"),\n\t\t\tInstanceType:    \"cluster\",\n\t\t\tPartitionNum:    pulumi.StringRef(\"300\"),\n\t\t\tStorage:         pulumi.StringRef(\"600\"),\n\t\t\tStorageSpecCode: pulumi.StringRef(\"dms.physical.storage.high\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewDmsInstanceV1(ctx, \"instance_1\", &opentelekomcloud.DmsInstanceV1Args{\n\t\t\tName:            pulumi.String(\"kafka-test\"),\n\t\t\tEngine:          pulumi.String(\"kafka\"),\n\t\t\tProductId:       pulumi.String(product1.Id),\n\t\t\tEngineVersion:   pulumi.String(product1.Version),\n\t\t\tSpecification:   pulumi.String(product1.Bandwidth),\n\t\t\tPartitionNum:    pulumi.String(product1.PartitionNum),\n\t\t\tStorageSpecCode: pulumi.String(product1.StorageSpecCode),\n\t\t\tStorageSpace:    pulumi.String(product1.Storage),\n\t\t\tAvailableZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(az1.Id),\n\t\t\t},\n\t\t\tSecurityGroupId: secgroup1.NetworkingSecgroupV2Id,\n\t\t\tVpcId:           pulumi.Any(vpcId),\n\t\t\tSubnetId:        pulumi.Any(subnetId),\n\t\t\tAccessUser:      pulumi.Any(accessUser),\n\t\t\tPassword:        pulumi.Any(password),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewDmsTopicV1(ctx, \"topic_1\", &opentelekomcloud.DmsTopicV1Args{\n\t\t\tInstanceId:      pulumi.Any(opentelekomcloudDmsInstanceV1.Instance1.Id),\n\t\t\tName:            pulumi.String(\"topic-test\"),\n\t\t\tPartition:       pulumi.Float64(10),\n\t\t\tReplication:     pulumi.Float64(2),\n\t\t\tSyncReplication: pulumi.Bool(true),\n\t\t\tRetentionTime:   pulumi.Float64(80),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.NetworkingSecgroupV2;\nimport com.pulumi.opentelekomcloud.NetworkingSecgroupV2Args;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDmsAzV1Args;\nimport com.pulumi.opentelekomcloud.inputs.GetDmsProductV1Args;\nimport com.pulumi.opentelekomcloud.DmsInstanceV1;\nimport com.pulumi.opentelekomcloud.DmsInstanceV1Args;\nimport com.pulumi.opentelekomcloud.DmsTopicV1;\nimport com.pulumi.opentelekomcloud.DmsTopicV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var secgroup1 = new NetworkingSecgroupV2(\"secgroup1\", NetworkingSecgroupV2Args.builder()\n            .name(\"secgroup_1\")\n            .description(\"secgroup_1\")\n            .build());\n\n        final var az1 = OpentelekomcloudFunctions.getDmsAzV1(GetDmsAzV1Args.builder()\n            .name(\"eu-de-01\")\n            .build());\n\n        final var product1 = OpentelekomcloudFunctions.getDmsProductV1(GetDmsProductV1Args.builder()\n            .engine(\"kafka\")\n            .version(\"2.3.0\")\n            .instanceType(\"cluster\")\n            .partitionNum(\"300\")\n            .storage(\"600\")\n            .storageSpecCode(\"dms.physical.storage.high\")\n            .build());\n\n        var instance1 = new DmsInstanceV1(\"instance1\", DmsInstanceV1Args.builder()\n            .name(\"kafka-test\")\n            .engine(\"kafka\")\n            .productId(product1.id())\n            .engineVersion(product1.version())\n            .specification(product1.bandwidth())\n            .partitionNum(product1.partitionNum())\n            .storageSpecCode(product1.storageSpecCode())\n            .storageSpace(product1.storage())\n            .availableZones(az1.id())\n            .securityGroupId(secgroup1.networkingSecgroupV2Id())\n            .vpcId(vpcId)\n            .subnetId(subnetId)\n            .accessUser(accessUser)\n            .password(password)\n            .build());\n\n        var topic1 = new DmsTopicV1(\"topic1\", DmsTopicV1Args.builder()\n            .instanceId(opentelekomcloudDmsInstanceV1.instance1().id())\n            .name(\"topic-test\")\n            .partition(10.0)\n            .replication(2.0)\n            .syncReplication(true)\n            .retentionTime(80.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  secgroup1:\n    type: opentelekomcloud:NetworkingSecgroupV2\n    name: secgroup_1\n    properties:\n      name: secgroup_1\n      description: secgroup_1\n  instance1:\n    type: opentelekomcloud:DmsInstanceV1\n    name: instance_1\n    properties:\n      name: kafka-test\n      engine: kafka\n      productId: ${product1.id}\n      engineVersion: ${product1.version}\n      specification: ${product1.bandwidth}\n      partitionNum: ${product1.partitionNum}\n      storageSpecCode: ${product1.storageSpecCode}\n      storageSpace: ${product1.storage}\n      availableZones:\n        - ${az1.id}\n      securityGroupId: ${secgroup1.networkingSecgroupV2Id}\n      vpcId: ${vpcId}\n      subnetId: ${subnetId}\n      accessUser: ${accessUser}\n      password: ${password}\n  topic1:\n    type: opentelekomcloud:DmsTopicV1\n    name: topic_1\n    properties:\n      instanceId: ${opentelekomcloudDmsInstanceV1.instance1.id}\n      name: topic-test\n      partition: 10\n      replication: 2\n      syncReplication: true\n      retentionTime: 80\nvariables:\n  az1:\n    fn::invoke:\n      function: opentelekomcloud:getDmsAzV1\n      arguments:\n        name: eu-de-01\n  product1:\n    fn::invoke:\n      function: opentelekomcloud:getDmsProductV1\n      arguments:\n        engine: kafka\n        version: 2.3.0\n        instanceType: cluster\n        partitionNum: 300\n        storage: 600\n        storageSpecCode: dms.physical.storage.high\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"dmsTopicV1Id":{"type":"string"},"instanceId":{"description":"Indicates the ID of primary DMS instance.\n","type":"string"},"maxPartitions":{"description":"Total partitions number.\n","type":"number"},"name":{"description":"Indicates the name of a topic.\n","type":"string"},"partition":{"description":"Indicates the number of topic partitions,\nwhich is used to set the number of concurrently consumed messages.\nValue range: `1–20`. Default value: <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span>.\n","type":"number"},"remainPartitions":{"description":"Number of remaining partitions.\n","type":"number"},"replication":{"description":"Indicates the number of replicas,\nwhich is configured to ensure data reliability.\nValue range: `1–3`. Default value: <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span>.\n","type":"number"},"retentionTime":{"description":"Indicates the retention period of a message. Its default value is <span pulumi-lang-nodejs=\"`72`\" pulumi-lang-dotnet=\"`72`\" pulumi-lang-go=\"`72`\" pulumi-lang-python=\"`72`\" pulumi-lang-yaml=\"`72`\" pulumi-lang-java=\"`72`\">`72`</span>.\nValue range: `1–720`. Default value: <span pulumi-lang-nodejs=\"`72`\" pulumi-lang-dotnet=\"`72`\" pulumi-lang-go=\"`72`\" pulumi-lang-python=\"`72`\" pulumi-lang-yaml=\"`72`\" pulumi-lang-java=\"`72`\">`72`</span>. Unit: <span pulumi-lang-nodejs=\"`hour`\" pulumi-lang-dotnet=\"`Hour`\" pulumi-lang-go=\"`hour`\" pulumi-lang-python=\"`hour`\" pulumi-lang-yaml=\"`hour`\" pulumi-lang-java=\"`hour`\">`hour`</span>.\n","type":"number"},"size":{"description":"The partition size of the topic.\n","type":"number"},"syncMessageFlush":{"description":"Indicates whether to enable synchronous flushing.\nDefault value: <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Synchronous flushing compromises performance.\n","type":"boolean"},"syncReplication":{"description":"Indicates whether to enable synchronous replication.\nAfter this function is enabled, the <span pulumi-lang-nodejs=\"`acks`\" pulumi-lang-dotnet=\"`Acks`\" pulumi-lang-go=\"`acks`\" pulumi-lang-python=\"`acks`\" pulumi-lang-yaml=\"`acks`\" pulumi-lang-java=\"`acks`\">`acks`</span> parameter on the producer client must be set to `–1`.\nOtherwise, this parameter does not take effect.\n","type":"boolean"}},"properties":{"dmsTopicV1Id":{"type":"string"},"instanceId":{"description":"Indicates the ID of primary DMS instance.\n","type":"string"},"maxPartitions":{"description":"Total partitions number.\n","type":"number"},"name":{"description":"Indicates the name of a topic.\n","type":"string"},"partition":{"description":"Indicates the number of topic partitions,\nwhich is used to set the number of concurrently consumed messages.\nValue range: `1–20`. Default value: <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span>.\n","type":"number"},"remainPartitions":{"description":"Number of remaining partitions.\n","type":"number"},"replication":{"description":"Indicates the number of replicas,\nwhich is configured to ensure data reliability.\nValue range: `1–3`. Default value: <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span>.\n","type":"number"},"retentionTime":{"description":"Indicates the retention period of a message. Its default value is <span pulumi-lang-nodejs=\"`72`\" pulumi-lang-dotnet=\"`72`\" pulumi-lang-go=\"`72`\" pulumi-lang-python=\"`72`\" pulumi-lang-yaml=\"`72`\" pulumi-lang-java=\"`72`\">`72`</span>.\nValue range: `1–720`. Default value: <span pulumi-lang-nodejs=\"`72`\" pulumi-lang-dotnet=\"`72`\" pulumi-lang-go=\"`72`\" pulumi-lang-python=\"`72`\" pulumi-lang-yaml=\"`72`\" pulumi-lang-java=\"`72`\">`72`</span>. Unit: <span pulumi-lang-nodejs=\"`hour`\" pulumi-lang-dotnet=\"`Hour`\" pulumi-lang-go=\"`hour`\" pulumi-lang-python=\"`hour`\" pulumi-lang-yaml=\"`hour`\" pulumi-lang-java=\"`hour`\">`hour`</span>.\n","type":"number"},"size":{"description":"The partition size of the topic.\n","type":"number"},"syncMessageFlush":{"description":"Indicates whether to enable synchronous flushing.\nDefault value: <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Synchronous flushing compromises performance.\n","type":"boolean"},"syncReplication":{"description":"Indicates whether to enable synchronous replication.\nAfter this function is enabled, the <span pulumi-lang-nodejs=\"`acks`\" pulumi-lang-dotnet=\"`Acks`\" pulumi-lang-go=\"`acks`\" pulumi-lang-python=\"`acks`\" pulumi-lang-yaml=\"`acks`\" pulumi-lang-java=\"`acks`\">`acks`</span> parameter on the producer client must be set to `–1`.\nOtherwise, this parameter does not take effect.\n","type":"boolean"}},"required":["dmsTopicV1Id","instanceId","maxPartitions","name","partition","remainPartitions","replication","retentionTime","size","syncMessageFlush","syncReplication"],"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering DmsTopicV1 resources.\n","properties":{"dmsTopicV1Id":{"type":"string"},"instanceId":{"description":"Indicates the ID of primary DMS instance.\n","type":"string"},"maxPartitions":{"description":"Total partitions number.\n","type":"number"},"name":{"description":"Indicates the name of a topic.\n","type":"string"},"partition":{"description":"Indicates the number of topic partitions,\nwhich is used to set the number of concurrently consumed messages.\nValue range: `1–20`. Default value: <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span>.\n","type":"number"},"remainPartitions":{"description":"Number of remaining partitions.\n","type":"number"},"replication":{"description":"Indicates the number of replicas,\nwhich is configured to ensure data reliability.\nValue range: `1–3`. Default value: <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span>.\n","type":"number"},"retentionTime":{"description":"Indicates the retention period of a message. Its default value is <span pulumi-lang-nodejs=\"`72`\" pulumi-lang-dotnet=\"`72`\" pulumi-lang-go=\"`72`\" pulumi-lang-python=\"`72`\" pulumi-lang-yaml=\"`72`\" pulumi-lang-java=\"`72`\">`72`</span>.\nValue range: `1–720`. Default value: <span pulumi-lang-nodejs=\"`72`\" pulumi-lang-dotnet=\"`72`\" pulumi-lang-go=\"`72`\" pulumi-lang-python=\"`72`\" pulumi-lang-yaml=\"`72`\" pulumi-lang-java=\"`72`\">`72`</span>. Unit: <span pulumi-lang-nodejs=\"`hour`\" pulumi-lang-dotnet=\"`Hour`\" pulumi-lang-go=\"`hour`\" pulumi-lang-python=\"`hour`\" pulumi-lang-yaml=\"`hour`\" pulumi-lang-java=\"`hour`\">`hour`</span>.\n","type":"number"},"size":{"description":"The partition size of the topic.\n","type":"number"},"syncMessageFlush":{"description":"Indicates whether to enable synchronous flushing.\nDefault value: <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Synchronous flushing compromises performance.\n","type":"boolean"},"syncReplication":{"description":"Indicates whether to enable synchronous replication.\nAfter this function is enabled, the <span pulumi-lang-nodejs=\"`acks`\" pulumi-lang-dotnet=\"`Acks`\" pulumi-lang-go=\"`acks`\" pulumi-lang-python=\"`acks`\" pulumi-lang-yaml=\"`acks`\" pulumi-lang-java=\"`acks`\">`acks`</span> parameter on the producer client must be set to `–1`.\nOtherwise, this parameter does not take effect.\n","type":"boolean"}},"type":"object"},"type":"object"},"opentelekomcloud:index/dmsTopicV2:DmsTopicV2":{"description":"Up-to-date reference of API arguments for DMS topic you can get at\n[documentation portal](https://docs.otc.t-systems.com/distributed-message-service/api-ref/apis_v2_recommended/topic_management/index.html#topic-300000004)\n\nManages a DMS topic V2 in the OpenTelekomCloud DMS Service (Kafka Premium/Platinum).\n\n## Example Usage\n\n### Creating Dms Instance With Topic\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst secgroup1 = new opentelekomcloud.NetworkingSecgroupV2(\"secgroup_1\", {\n    name: \"secgroup_1\",\n    description: \"secgroup_1\",\n});\nconst az1 = opentelekomcloud.getDmsAzV1({\n    name: \"eu-de-01\",\n});\nconst product1 = opentelekomcloud.getDmsProductV1({\n    engine: \"kafka\",\n    version: \"2.3.0\",\n    instanceType: \"cluster\",\n    partitionNum: \"300\",\n    storage: \"600\",\n    storageSpecCode: \"dms.physical.storage.high\",\n});\nconst instance1 = new opentelekomcloud.DmsInstanceV2(\"instance_1\", {\n    name: \"kafka-test\",\n    engine: \"kafka\",\n    productId: product1.then(product1 => product1.id),\n    engineVersion: product1.then(product1 => product1.version),\n    specification: product1.then(product1 => product1.bandwidth),\n    partitionNum: product1.then(product1 => product1.partitionNum),\n    storageSpecCode: product1.then(product1 => product1.storageSpecCode),\n    storageSpace: product1.then(product1 => product1.storage),\n    availableZones: [az1.then(az1 => az1.id)],\n    securityGroupId: secgroup1.networkingSecgroupV2Id,\n    vpcId: vpcId,\n    subnetId: subnetId,\n    accessUser: accessUser,\n    password: password,\n});\nconst topic1 = new opentelekomcloud.DmsTopicV2(\"topic_1\", {\n    instanceId: opentelekomcloudDmsInstanceV1.instance1.id,\n    name: \"topic-test\",\n    partition: 10,\n    replication: 2,\n    syncReplication: true,\n    retentionTime: 80,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nsecgroup1 = opentelekomcloud.NetworkingSecgroupV2(\"secgroup_1\",\n    name=\"secgroup_1\",\n    description=\"secgroup_1\")\naz1 = opentelekomcloud.get_dms_az_v1(name=\"eu-de-01\")\nproduct1 = opentelekomcloud.get_dms_product_v1(engine=\"kafka\",\n    version=\"2.3.0\",\n    instance_type=\"cluster\",\n    partition_num=\"300\",\n    storage=\"600\",\n    storage_spec_code=\"dms.physical.storage.high\")\ninstance1 = opentelekomcloud.DmsInstanceV2(\"instance_1\",\n    name=\"kafka-test\",\n    engine=\"kafka\",\n    product_id=product1.id,\n    engine_version=product1.version,\n    specification=product1.bandwidth,\n    partition_num=product1.partition_num,\n    storage_spec_code=product1.storage_spec_code,\n    storage_space=product1.storage,\n    available_zones=[az1.id],\n    security_group_id=secgroup1.networking_secgroup_v2_id,\n    vpc_id=vpc_id,\n    subnet_id=subnet_id,\n    access_user=access_user,\n    password=password)\ntopic1 = opentelekomcloud.DmsTopicV2(\"topic_1\",\n    instance_id=opentelekomcloud_dms_instance_v1[\"instance1\"][\"id\"],\n    name=\"topic-test\",\n    partition=10,\n    replication=2,\n    sync_replication=True,\n    retention_time=80)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var secgroup1 = new Opentelekomcloud.NetworkingSecgroupV2(\"secgroup_1\", new()\n    {\n        Name = \"secgroup_1\",\n        Description = \"secgroup_1\",\n    });\n\n    var az1 = Opentelekomcloud.GetDmsAzV1.Invoke(new()\n    {\n        Name = \"eu-de-01\",\n    });\n\n    var product1 = Opentelekomcloud.GetDmsProductV1.Invoke(new()\n    {\n        Engine = \"kafka\",\n        Version = \"2.3.0\",\n        InstanceType = \"cluster\",\n        PartitionNum = \"300\",\n        Storage = \"600\",\n        StorageSpecCode = \"dms.physical.storage.high\",\n    });\n\n    var instance1 = new Opentelekomcloud.DmsInstanceV2(\"instance_1\", new()\n    {\n        Name = \"kafka-test\",\n        Engine = \"kafka\",\n        ProductId = product1.Apply(getDmsProductV1Result => getDmsProductV1Result.Id),\n        EngineVersion = product1.Apply(getDmsProductV1Result => getDmsProductV1Result.Version),\n        Specification = product1.Apply(getDmsProductV1Result => getDmsProductV1Result.Bandwidth),\n        PartitionNum = product1.Apply(getDmsProductV1Result => getDmsProductV1Result.PartitionNum),\n        StorageSpecCode = product1.Apply(getDmsProductV1Result => getDmsProductV1Result.StorageSpecCode),\n        StorageSpace = product1.Apply(getDmsProductV1Result => getDmsProductV1Result.Storage),\n        AvailableZones = new[]\n        {\n            az1.Apply(getDmsAzV1Result => getDmsAzV1Result.Id),\n        },\n        SecurityGroupId = secgroup1.NetworkingSecgroupV2Id,\n        VpcId = vpcId,\n        SubnetId = subnetId,\n        AccessUser = accessUser,\n        Password = password,\n    });\n\n    var topic1 = new Opentelekomcloud.DmsTopicV2(\"topic_1\", new()\n    {\n        InstanceId = opentelekomcloudDmsInstanceV1.Instance1.Id,\n        Name = \"topic-test\",\n        Partition = 10,\n        Replication = 2,\n        SyncReplication = true,\n        RetentionTime = 80,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsecgroup1, err := opentelekomcloud.NewNetworkingSecgroupV2(ctx, \"secgroup_1\", &opentelekomcloud.NetworkingSecgroupV2Args{\n\t\t\tName:        pulumi.String(\"secgroup_1\"),\n\t\t\tDescription: pulumi.String(\"secgroup_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\taz1, err := opentelekomcloud.GetDmsAzV1(ctx, &opentelekomcloud.GetDmsAzV1Args{\n\t\t\tName: pulumi.StringRef(\"eu-de-01\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproduct1, err := opentelekomcloud.GetDmsProductV1(ctx, &opentelekomcloud.GetDmsProductV1Args{\n\t\t\tEngine:          \"kafka\",\n\t\t\tVersion:         pulumi.StringRef(\"2.3.0\"),\n\t\t\tInstanceType:    \"cluster\",\n\t\t\tPartitionNum:    pulumi.StringRef(\"300\"),\n\t\t\tStorage:         pulumi.StringRef(\"600\"),\n\t\t\tStorageSpecCode: pulumi.StringRef(\"dms.physical.storage.high\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewDmsInstanceV2(ctx, \"instance_1\", &opentelekomcloud.DmsInstanceV2Args{\n\t\t\tName:            pulumi.String(\"kafka-test\"),\n\t\t\tEngine:          pulumi.String(\"kafka\"),\n\t\t\tProductId:       pulumi.String(product1.Id),\n\t\t\tEngineVersion:   pulumi.String(product1.Version),\n\t\t\tSpecification:   pulumi.String(product1.Bandwidth),\n\t\t\tPartitionNum:    pulumi.String(product1.PartitionNum),\n\t\t\tStorageSpecCode: pulumi.String(product1.StorageSpecCode),\n\t\t\tStorageSpace:    pulumi.String(product1.Storage),\n\t\t\tAvailableZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(az1.Id),\n\t\t\t},\n\t\t\tSecurityGroupId: secgroup1.NetworkingSecgroupV2Id,\n\t\t\tVpcId:           pulumi.Any(vpcId),\n\t\t\tSubnetId:        pulumi.Any(subnetId),\n\t\t\tAccessUser:      pulumi.Any(accessUser),\n\t\t\tPassword:        pulumi.Any(password),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewDmsTopicV2(ctx, \"topic_1\", &opentelekomcloud.DmsTopicV2Args{\n\t\t\tInstanceId:      pulumi.Any(opentelekomcloudDmsInstanceV1.Instance1.Id),\n\t\t\tName:            pulumi.String(\"topic-test\"),\n\t\t\tPartition:       pulumi.Float64(10),\n\t\t\tReplication:     pulumi.Float64(2),\n\t\t\tSyncReplication: pulumi.Bool(true),\n\t\t\tRetentionTime:   pulumi.Float64(80),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.NetworkingSecgroupV2;\nimport com.pulumi.opentelekomcloud.NetworkingSecgroupV2Args;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetDmsAzV1Args;\nimport com.pulumi.opentelekomcloud.inputs.GetDmsProductV1Args;\nimport com.pulumi.opentelekomcloud.DmsInstanceV2;\nimport com.pulumi.opentelekomcloud.DmsInstanceV2Args;\nimport com.pulumi.opentelekomcloud.DmsTopicV2;\nimport com.pulumi.opentelekomcloud.DmsTopicV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var secgroup1 = new NetworkingSecgroupV2(\"secgroup1\", NetworkingSecgroupV2Args.builder()\n            .name(\"secgroup_1\")\n            .description(\"secgroup_1\")\n            .build());\n\n        final var az1 = OpentelekomcloudFunctions.getDmsAzV1(GetDmsAzV1Args.builder()\n            .name(\"eu-de-01\")\n            .build());\n\n        final var product1 = OpentelekomcloudFunctions.getDmsProductV1(GetDmsProductV1Args.builder()\n            .engine(\"kafka\")\n            .version(\"2.3.0\")\n            .instanceType(\"cluster\")\n            .partitionNum(\"300\")\n            .storage(\"600\")\n            .storageSpecCode(\"dms.physical.storage.high\")\n            .build());\n\n        var instance1 = new DmsInstanceV2(\"instance1\", DmsInstanceV2Args.builder()\n            .name(\"kafka-test\")\n            .engine(\"kafka\")\n            .productId(product1.id())\n            .engineVersion(product1.version())\n            .specification(product1.bandwidth())\n            .partitionNum(product1.partitionNum())\n            .storageSpecCode(product1.storageSpecCode())\n            .storageSpace(product1.storage())\n            .availableZones(az1.id())\n            .securityGroupId(secgroup1.networkingSecgroupV2Id())\n            .vpcId(vpcId)\n            .subnetId(subnetId)\n            .accessUser(accessUser)\n            .password(password)\n            .build());\n\n        var topic1 = new DmsTopicV2(\"topic1\", DmsTopicV2Args.builder()\n            .instanceId(opentelekomcloudDmsInstanceV1.instance1().id())\n            .name(\"topic-test\")\n            .partition(10.0)\n            .replication(2.0)\n            .syncReplication(true)\n            .retentionTime(80.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  secgroup1:\n    type: opentelekomcloud:NetworkingSecgroupV2\n    name: secgroup_1\n    properties:\n      name: secgroup_1\n      description: secgroup_1\n  instance1:\n    type: opentelekomcloud:DmsInstanceV2\n    name: instance_1\n    properties:\n      name: kafka-test\n      engine: kafka\n      productId: ${product1.id}\n      engineVersion: ${product1.version}\n      specification: ${product1.bandwidth}\n      partitionNum: ${product1.partitionNum}\n      storageSpecCode: ${product1.storageSpecCode}\n      storageSpace: ${product1.storage}\n      availableZones:\n        - ${az1.id}\n      securityGroupId: ${secgroup1.networkingSecgroupV2Id}\n      vpcId: ${vpcId}\n      subnetId: ${subnetId}\n      accessUser: ${accessUser}\n      password: ${password}\n  topic1:\n    type: opentelekomcloud:DmsTopicV2\n    name: topic_1\n    properties:\n      instanceId: ${opentelekomcloudDmsInstanceV1.instance1.id}\n      name: topic-test\n      partition: 10\n      replication: 2\n      syncReplication: true\n      retentionTime: 80\nvariables:\n  az1:\n    fn::invoke:\n      function: opentelekomcloud:getDmsAzV1\n      arguments:\n        name: eu-de-01\n  product1:\n    fn::invoke:\n      function: opentelekomcloud:getDmsProductV1\n      arguments:\n        engine: kafka\n        version: 2.3.0\n        instanceType: cluster\n        partitionNum: 300\n        storage: 600\n        storageSpecCode: dms.physical.storage.high\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nDMS topics can be imported using their `topic_name` and related `instance_id`, separated by a slash, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/dmsTopicV2:DmsTopicV2 test_topic <instance_id>/<topic_name>\n```\n\n","inputProperties":{"dmsTopicV2Id":{"type":"string"},"instanceId":{"description":"Indicates the ID of primary DMS instance.\n","type":"string"},"maxPartitions":{"description":"Total partitions number.\n","type":"number"},"name":{"description":"Indicates the name of a topic.\n","type":"string"},"partition":{"description":"Indicates the number of topic partitions,\nwhich is used to set the number of concurrently consumed messages.\nValue range: `1–200`. Default value: <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span>.\n","type":"number"},"remainPartitions":{"description":"Number of remaining partitions.\n","type":"number"},"replication":{"description":"Indicates the number of replicas,\nwhich is configured to ensure data reliability.\nValue range: `1–3`. Default value: <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span>.\n","type":"number"},"retentionTime":{"description":"Indicates the retention period of a message. Its default value is <span pulumi-lang-nodejs=\"`72`\" pulumi-lang-dotnet=\"`72`\" pulumi-lang-go=\"`72`\" pulumi-lang-python=\"`72`\" pulumi-lang-yaml=\"`72`\" pulumi-lang-java=\"`72`\">`72`</span>.\nValue range: `1–720`. Default value: <span pulumi-lang-nodejs=\"`72`\" pulumi-lang-dotnet=\"`72`\" pulumi-lang-go=\"`72`\" pulumi-lang-python=\"`72`\" pulumi-lang-yaml=\"`72`\" pulumi-lang-java=\"`72`\">`72`</span>. Unit: <span pulumi-lang-nodejs=\"`hour`\" pulumi-lang-dotnet=\"`Hour`\" pulumi-lang-go=\"`hour`\" pulumi-lang-python=\"`hour`\" pulumi-lang-yaml=\"`hour`\" pulumi-lang-java=\"`hour`\">`hour`</span>.\n","type":"number"},"size":{"description":"The partition size of the topic.\n","type":"number"},"syncMessageFlush":{"description":"Indicates whether to enable synchronous flushing.\nDefault value: <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Synchronous flushing compromises performance.\n","type":"boolean"},"syncReplication":{"description":"Indicates whether to enable synchronous replication.\nAfter this function is enabled, the <span pulumi-lang-nodejs=\"`acks`\" pulumi-lang-dotnet=\"`Acks`\" pulumi-lang-go=\"`acks`\" pulumi-lang-python=\"`acks`\" pulumi-lang-yaml=\"`acks`\" pulumi-lang-java=\"`acks`\">`acks`</span> parameter on the producer client must be set to `–1`.\nOtherwise, this parameter does not take effect.\n","type":"boolean"}},"properties":{"dmsTopicV2Id":{"type":"string"},"instanceId":{"description":"Indicates the ID of primary DMS instance.\n","type":"string"},"maxPartitions":{"description":"Total partitions number.\n","type":"number"},"name":{"description":"Indicates the name of a topic.\n","type":"string"},"partition":{"description":"Indicates the number of topic partitions,\nwhich is used to set the number of concurrently consumed messages.\nValue range: `1–200`. Default value: <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span>.\n","type":"number"},"remainPartitions":{"description":"Number of remaining partitions.\n","type":"number"},"replication":{"description":"Indicates the number of replicas,\nwhich is configured to ensure data reliability.\nValue range: `1–3`. Default value: <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span>.\n","type":"number"},"retentionTime":{"description":"Indicates the retention period of a message. Its default value is <span pulumi-lang-nodejs=\"`72`\" pulumi-lang-dotnet=\"`72`\" pulumi-lang-go=\"`72`\" pulumi-lang-python=\"`72`\" pulumi-lang-yaml=\"`72`\" pulumi-lang-java=\"`72`\">`72`</span>.\nValue range: `1–720`. Default value: <span pulumi-lang-nodejs=\"`72`\" pulumi-lang-dotnet=\"`72`\" pulumi-lang-go=\"`72`\" pulumi-lang-python=\"`72`\" pulumi-lang-yaml=\"`72`\" pulumi-lang-java=\"`72`\">`72`</span>. Unit: <span pulumi-lang-nodejs=\"`hour`\" pulumi-lang-dotnet=\"`Hour`\" pulumi-lang-go=\"`hour`\" pulumi-lang-python=\"`hour`\" pulumi-lang-yaml=\"`hour`\" pulumi-lang-java=\"`hour`\">`hour`</span>.\n","type":"number"},"size":{"description":"The partition size of the topic.\n","type":"number"},"syncMessageFlush":{"description":"Indicates whether to enable synchronous flushing.\nDefault value: <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Synchronous flushing compromises performance.\n","type":"boolean"},"syncReplication":{"description":"Indicates whether to enable synchronous replication.\nAfter this function is enabled, the <span pulumi-lang-nodejs=\"`acks`\" pulumi-lang-dotnet=\"`Acks`\" pulumi-lang-go=\"`acks`\" pulumi-lang-python=\"`acks`\" pulumi-lang-yaml=\"`acks`\" pulumi-lang-java=\"`acks`\">`acks`</span> parameter on the producer client must be set to `–1`.\nOtherwise, this parameter does not take effect.\n","type":"boolean"}},"required":["dmsTopicV2Id","instanceId","maxPartitions","name","partition","remainPartitions","replication","retentionTime","size","syncMessageFlush","syncReplication"],"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering DmsTopicV2 resources.\n","properties":{"dmsTopicV2Id":{"type":"string"},"instanceId":{"description":"Indicates the ID of primary DMS instance.\n","type":"string"},"maxPartitions":{"description":"Total partitions number.\n","type":"number"},"name":{"description":"Indicates the name of a topic.\n","type":"string"},"partition":{"description":"Indicates the number of topic partitions,\nwhich is used to set the number of concurrently consumed messages.\nValue range: `1–200`. Default value: <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span>.\n","type":"number"},"remainPartitions":{"description":"Number of remaining partitions.\n","type":"number"},"replication":{"description":"Indicates the number of replicas,\nwhich is configured to ensure data reliability.\nValue range: `1–3`. Default value: <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span>.\n","type":"number"},"retentionTime":{"description":"Indicates the retention period of a message. Its default value is <span pulumi-lang-nodejs=\"`72`\" pulumi-lang-dotnet=\"`72`\" pulumi-lang-go=\"`72`\" pulumi-lang-python=\"`72`\" pulumi-lang-yaml=\"`72`\" pulumi-lang-java=\"`72`\">`72`</span>.\nValue range: `1–720`. Default value: <span pulumi-lang-nodejs=\"`72`\" pulumi-lang-dotnet=\"`72`\" pulumi-lang-go=\"`72`\" pulumi-lang-python=\"`72`\" pulumi-lang-yaml=\"`72`\" pulumi-lang-java=\"`72`\">`72`</span>. Unit: <span pulumi-lang-nodejs=\"`hour`\" pulumi-lang-dotnet=\"`Hour`\" pulumi-lang-go=\"`hour`\" pulumi-lang-python=\"`hour`\" pulumi-lang-yaml=\"`hour`\" pulumi-lang-java=\"`hour`\">`hour`</span>.\n","type":"number"},"size":{"description":"The partition size of the topic.\n","type":"number"},"syncMessageFlush":{"description":"Indicates whether to enable synchronous flushing.\nDefault value: <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Synchronous flushing compromises performance.\n","type":"boolean"},"syncReplication":{"description":"Indicates whether to enable synchronous replication.\nAfter this function is enabled, the <span pulumi-lang-nodejs=\"`acks`\" pulumi-lang-dotnet=\"`Acks`\" pulumi-lang-go=\"`acks`\" pulumi-lang-python=\"`acks`\" pulumi-lang-yaml=\"`acks`\" pulumi-lang-java=\"`acks`\">`acks`</span> parameter on the producer client must be set to `–1`.\nOtherwise, this parameter does not take effect.\n","type":"boolean"}},"type":"object"},"type":"object"},"opentelekomcloud:index/dmsUserPermissionV1:DmsUserPermissionV1":{"description":"Up-to-date reference of API arguments for DMS user permissions you can get at\n[documentation portal](https://docs.otc.t-systems.com/distributed-message-service/api-ref/apis_v2_recommended/user_management/index.html)\n\nManages a DMS topic permissions for users for the OpenTelekomCloud DMS Service Instances (Kafka Premium/Platinum).\n\n~>\n  Topic permission management is supported only when SASL is enabled for the Kafka instance.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst user1 = new opentelekomcloud.DmsUserV2(\"user_1\", {\n    instanceId: instanceId,\n    username: \"Test-user\",\n    password: \"Dmstest@123\",\n});\nconst user2 = new opentelekomcloud.DmsUserV2(\"user_2\", {\n    instanceId: instanceId,\n    username: \"Test-user2\",\n    password: \"Dmstest@123\",\n});\nconst perm1 = new opentelekomcloud.DmsUserPermissionV1(\"perm_1\", {\n    instanceId: instance1.id,\n    topicName: \"test-topic\",\n    policies: [\n        {\n            username: user1.dmsUserV2Id,\n            accessPolicy: \"all\",\n        },\n        {\n            username: user2.dmsUserV2Id,\n            accessPolicy: \"sub\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nuser1 = opentelekomcloud.DmsUserV2(\"user_1\",\n    instance_id=instance_id,\n    username=\"Test-user\",\n    password=\"Dmstest@123\")\nuser2 = opentelekomcloud.DmsUserV2(\"user_2\",\n    instance_id=instance_id,\n    username=\"Test-user2\",\n    password=\"Dmstest@123\")\nperm1 = opentelekomcloud.DmsUserPermissionV1(\"perm_1\",\n    instance_id=instance1[\"id\"],\n    topic_name=\"test-topic\",\n    policies=[\n        {\n            \"username\": user1.dms_user_v2_id,\n            \"access_policy\": \"all\",\n        },\n        {\n            \"username\": user2.dms_user_v2_id,\n            \"access_policy\": \"sub\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var user1 = new Opentelekomcloud.DmsUserV2(\"user_1\", new()\n    {\n        InstanceId = instanceId,\n        Username = \"Test-user\",\n        Password = \"Dmstest@123\",\n    });\n\n    var user2 = new Opentelekomcloud.DmsUserV2(\"user_2\", new()\n    {\n        InstanceId = instanceId,\n        Username = \"Test-user2\",\n        Password = \"Dmstest@123\",\n    });\n\n    var perm1 = new Opentelekomcloud.DmsUserPermissionV1(\"perm_1\", new()\n    {\n        InstanceId = instance1.Id,\n        TopicName = \"test-topic\",\n        Policies = new[]\n        {\n            new Opentelekomcloud.Inputs.DmsUserPermissionV1PolicyArgs\n            {\n                Username = user1.DmsUserV2Id,\n                AccessPolicy = \"all\",\n            },\n            new Opentelekomcloud.Inputs.DmsUserPermissionV1PolicyArgs\n            {\n                Username = user2.DmsUserV2Id,\n                AccessPolicy = \"sub\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tuser1, err := opentelekomcloud.NewDmsUserV2(ctx, \"user_1\", &opentelekomcloud.DmsUserV2Args{\n\t\t\tInstanceId: pulumi.Any(instanceId),\n\t\t\tUsername:   pulumi.String(\"Test-user\"),\n\t\t\tPassword:   pulumi.String(\"Dmstest@123\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuser2, err := opentelekomcloud.NewDmsUserV2(ctx, \"user_2\", &opentelekomcloud.DmsUserV2Args{\n\t\t\tInstanceId: pulumi.Any(instanceId),\n\t\t\tUsername:   pulumi.String(\"Test-user2\"),\n\t\t\tPassword:   pulumi.String(\"Dmstest@123\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewDmsUserPermissionV1(ctx, \"perm_1\", &opentelekomcloud.DmsUserPermissionV1Args{\n\t\t\tInstanceId: pulumi.Any(instance1.Id),\n\t\t\tTopicName:  pulumi.String(\"test-topic\"),\n\t\t\tPolicies: opentelekomcloud.DmsUserPermissionV1PolicyArray{\n\t\t\t\t&opentelekomcloud.DmsUserPermissionV1PolicyArgs{\n\t\t\t\t\tUsername:     user1.DmsUserV2Id,\n\t\t\t\t\tAccessPolicy: pulumi.String(\"all\"),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.DmsUserPermissionV1PolicyArgs{\n\t\t\t\t\tUsername:     user2.DmsUserV2Id,\n\t\t\t\t\tAccessPolicy: pulumi.String(\"sub\"),\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.opentelekomcloud.DmsUserV2;\nimport com.pulumi.opentelekomcloud.DmsUserV2Args;\nimport com.pulumi.opentelekomcloud.DmsUserPermissionV1;\nimport com.pulumi.opentelekomcloud.DmsUserPermissionV1Args;\nimport com.pulumi.opentelekomcloud.inputs.DmsUserPermissionV1PolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        var user1 = new DmsUserV2(\"user1\", DmsUserV2Args.builder()\n            .instanceId(instanceId)\n            .username(\"Test-user\")\n            .password(\"Dmstest@123\")\n            .build());\n\n        var user2 = new DmsUserV2(\"user2\", DmsUserV2Args.builder()\n            .instanceId(instanceId)\n            .username(\"Test-user2\")\n            .password(\"Dmstest@123\")\n            .build());\n\n        var perm1 = new DmsUserPermissionV1(\"perm1\", DmsUserPermissionV1Args.builder()\n            .instanceId(instance1.id())\n            .topicName(\"test-topic\")\n            .policies(            \n                DmsUserPermissionV1PolicyArgs.builder()\n                    .username(user1.dmsUserV2Id())\n                    .accessPolicy(\"all\")\n                    .build(),\n                DmsUserPermissionV1PolicyArgs.builder()\n                    .username(user2.dmsUserV2Id())\n                    .accessPolicy(\"sub\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\nresources:\n  user1:\n    type: opentelekomcloud:DmsUserV2\n    name: user_1\n    properties:\n      instanceId: ${instanceId}\n      username: Test-user\n      password: Dmstest@123\n  user2:\n    type: opentelekomcloud:DmsUserV2\n    name: user_2\n    properties:\n      instanceId: ${instanceId}\n      username: Test-user2\n      password: Dmstest@123\n  perm1:\n    type: opentelekomcloud:DmsUserPermissionV1\n    name: perm_1\n    properties:\n      instanceId: ${instance1.id}\n      topicName: test-topic\n      policies:\n        - username: ${user1.dmsUserV2Id}\n          accessPolicy: all\n        - username: ${user2.dmsUserV2Id}\n          accessPolicy: sub\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"dmsUserPermissionV1Id":{"type":"string"},"instanceId":{"description":"Indicates the ID of primary DMS instance.\n","type":"string"},"policies":{"description":"Indicates policy configuration for the topic.\nSupported fields:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDmsUserPermissionV1Policy:DmsUserPermissionV1Policy"},"type":"array"},"topicName":{"description":"Indicates the name of a topic.\n","type":"string"}},"properties":{"dmsUserPermissionV1Id":{"type":"string"},"instanceId":{"description":"Indicates the ID of primary DMS instance.\n","type":"string"},"policies":{"description":"Indicates policy configuration for the topic.\nSupported fields:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDmsUserPermissionV1Policy:DmsUserPermissionV1Policy"},"type":"array"},"topicName":{"description":"Indicates the name of a topic.\n","type":"string"},"topicType":{"description":"Indicates topic type. <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>: common topic; <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>: system (internal) topic.\n","type":"number"}},"required":["dmsUserPermissionV1Id","instanceId","policies","topicName","topicType"],"requiredInputs":["instanceId","policies","topicName"],"stateInputs":{"description":"Input properties used for looking up and filtering DmsUserPermissionV1 resources.\n","properties":{"dmsUserPermissionV1Id":{"type":"string"},"instanceId":{"description":"Indicates the ID of primary DMS instance.\n","type":"string"},"policies":{"description":"Indicates policy configuration for the topic.\nSupported fields:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDmsUserPermissionV1Policy:DmsUserPermissionV1Policy"},"type":"array"},"topicName":{"description":"Indicates the name of a topic.\n","type":"string"},"topicType":{"description":"Indicates topic type. <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>: common topic; <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>: system (internal) topic.\n","type":"number"}},"type":"object"},"type":"object"},"opentelekomcloud:index/dmsUserV2:DmsUserV2":{"description":"Up-to-date reference of API arguments for DMS user you can get at\n[documentation portal](https://docs.otc.t-systems.com/distributed-message-service/api-ref/apis_v2_recommended/user_management/index.html)\n\nManages a DMS user for the OpenTelekomCloud DMS Service Instances (Kafka Premium/Platinum).\n\n~>\n  User management is supported only when SASL is enabled for the Kafka instance.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst user1 = new opentelekomcloud.DmsUserV2(\"user_1\", {\n    instanceId: instanceId,\n    username: \"Test-user\",\n    password: \"Dmstest@123@\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nuser1 = opentelekomcloud.DmsUserV2(\"user_1\",\n    instance_id=instance_id,\n    username=\"Test-user\",\n    password=\"Dmstest@123@\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var user1 = new Opentelekomcloud.DmsUserV2(\"user_1\", new()\n    {\n        InstanceId = instanceId,\n        Username = \"Test-user\",\n        Password = \"Dmstest@123@\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\t_, err := opentelekomcloud.NewDmsUserV2(ctx, \"user_1\", &opentelekomcloud.DmsUserV2Args{\n\t\t\tInstanceId: pulumi.Any(instanceId),\n\t\t\tUsername:   pulumi.String(\"Test-user\"),\n\t\t\tPassword:   pulumi.String(\"Dmstest@123@\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.DmsUserV2;\nimport com.pulumi.opentelekomcloud.DmsUserV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        var user1 = new DmsUserV2(\"user1\", DmsUserV2Args.builder()\n            .instanceId(instanceId)\n            .username(\"Test-user\")\n            .password(\"Dmstest@123@\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\nresources:\n  user1:\n    type: opentelekomcloud:DmsUserV2\n    name: user_1\n    properties:\n      instanceId: ${instanceId}\n      username: Test-user\n      password: Dmstest@123@\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"dmsUserV2Id":{"type":"string"},"instanceId":{"description":"Indicates the ID of primary DMS instance.\n","type":"string"},"password":{"description":"Indicates the password of an instance. An instance password\nmust meet the following complexity requirements: Must be 8 to 32 characters long.\nMust contain at least 2 of the following character types: lowercase letters, uppercase\nletters, digits, and special characters (`~!@#$%^&*()-_=+\\|[{}]:'\",<.>/?`).\n","secret":true,"type":"string"},"username":{"description":"Indicates a username. A username consists of 4 to 64 characters\nand supports only letters, digits, and hyphens (-).\n","type":"string"}},"properties":{"creationTime":{"description":"Specifies the time when a user was created.\n","type":"number"},"defaultApp":{"description":"Specifies whether an application is the default application.\n","type":"boolean"},"dmsUserV2Id":{"type":"string"},"instanceId":{"description":"Indicates the ID of primary DMS instance.\n","type":"string"},"password":{"description":"Indicates the password of an instance. An instance password\nmust meet the following complexity requirements: Must be 8 to 32 characters long.\nMust contain at least 2 of the following character types: lowercase letters, uppercase\nletters, digits, and special characters (`~!@#$%^&*()-_=+\\|[{}]:'\",<.>/?`).\n","secret":true,"type":"string"},"role":{"description":"Specifies user role.\n","type":"string"},"username":{"description":"Indicates a username. A username consists of 4 to 64 characters\nand supports only letters, digits, and hyphens (-).\n","type":"string"}},"required":["creationTime","defaultApp","dmsUserV2Id","instanceId","password","role","username"],"requiredInputs":["instanceId","password","username"],"stateInputs":{"description":"Input properties used for looking up and filtering DmsUserV2 resources.\n","properties":{"creationTime":{"description":"Specifies the time when a user was created.\n","type":"number"},"defaultApp":{"description":"Specifies whether an application is the default application.\n","type":"boolean"},"dmsUserV2Id":{"type":"string"},"instanceId":{"description":"Indicates the ID of primary DMS instance.\n","type":"string"},"password":{"description":"Indicates the password of an instance. An instance password\nmust meet the following complexity requirements: Must be 8 to 32 characters long.\nMust contain at least 2 of the following character types: lowercase letters, uppercase\nletters, digits, and special characters (`~!@#$%^&*()-_=+\\|[{}]:'\",<.>/?`).\n","secret":true,"type":"string"},"role":{"description":"Specifies user role.\n","type":"string"},"username":{"description":"Indicates a username. A username consists of 4 to 64 characters\nand supports only letters, digits, and hyphens (-).\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/dnsPtrrecordV2:DnsPtrrecordV2":{"description":"Up-to-date reference of API arguments for DNS ptr record you can get at\n[documentation portal](https://docs.otc.t-systems.com/domain-name-service/api-ref/apis/ptr_record_management)\n\nManages a DNS PTR record in the OpenTelekomCloud DNS Service.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst fip1 = new opentelekomcloud.NetworkingFloatingipV2(\"fip_1\", {});\nconst ptr1 = new opentelekomcloud.DnsPtrrecordV2(\"ptr_1\", {\n    name: \"ptr.example.com.\",\n    description: \"An example PTR record\",\n    floatingipId: fip1.networkingFloatingipV2Id,\n    ttl: 3000,\n    tags: {\n        foo: \"bar\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nfip1 = opentelekomcloud.NetworkingFloatingipV2(\"fip_1\")\nptr1 = opentelekomcloud.DnsPtrrecordV2(\"ptr_1\",\n    name=\"ptr.example.com.\",\n    description=\"An example PTR record\",\n    floatingip_id=fip1.networking_floatingip_v2_id,\n    ttl=3000,\n    tags={\n        \"foo\": \"bar\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var fip1 = new Opentelekomcloud.NetworkingFloatingipV2(\"fip_1\");\n\n    var ptr1 = new Opentelekomcloud.DnsPtrrecordV2(\"ptr_1\", new()\n    {\n        Name = \"ptr.example.com.\",\n        Description = \"An example PTR record\",\n        FloatingipId = fip1.NetworkingFloatingipV2Id,\n        Ttl = 3000,\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfip1, err := opentelekomcloud.NewNetworkingFloatingipV2(ctx, \"fip_1\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewDnsPtrrecordV2(ctx, \"ptr_1\", &opentelekomcloud.DnsPtrrecordV2Args{\n\t\t\tName:         pulumi.String(\"ptr.example.com.\"),\n\t\t\tDescription:  pulumi.String(\"An example PTR record\"),\n\t\t\tFloatingipId: fip1.NetworkingFloatingipV2Id,\n\t\t\tTtl:          pulumi.Float64(3000),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\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.opentelekomcloud.NetworkingFloatingipV2;\nimport com.pulumi.opentelekomcloud.DnsPtrrecordV2;\nimport com.pulumi.opentelekomcloud.DnsPtrrecordV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var fip1 = new NetworkingFloatingipV2(\"fip1\");\n\n        var ptr1 = new DnsPtrrecordV2(\"ptr1\", DnsPtrrecordV2Args.builder()\n            .name(\"ptr.example.com.\")\n            .description(\"An example PTR record\")\n            .floatingipId(fip1.networkingFloatingipV2Id())\n            .ttl(3000.0)\n            .tags(Map.of(\"foo\", \"bar\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  fip1:\n    type: opentelekomcloud:NetworkingFloatingipV2\n    name: fip_1\n  ptr1:\n    type: opentelekomcloud:DnsPtrrecordV2\n    name: ptr_1\n    properties:\n      name: ptr.example.com.\n      description: An example PTR record\n      floatingipId: ${fip1.networkingFloatingipV2Id}\n      ttl: 3000\n      tags:\n        foo: bar\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nPTR records can be imported using region and floatingip/eip ID, separated by a colon(:), e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/dnsPtrrecordV2:DnsPtrrecordV2 ptr_1 eu-de:d90ce693-5ccf-4136-a0ed-152ce412b6b9\n```\n\n","inputProperties":{"description":{"description":"Description of the PTR record.\n","type":"string"},"dnsPtrrecordV2Id":{"description":"The PTR record ID, which is in {region}:{floatingip_id} format.\n","type":"string"},"floatingipId":{"description":"The ID of the FloatingIP/EIP.\n","type":"string"},"name":{"description":"Domain name of the PTR record. A domain name is case insensitive.\nUppercase letters will also be converted into lowercase letters.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the PTR record.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDnsPtrrecordV2Timeouts:DnsPtrrecordV2Timeouts"},"ttl":{"description":"The time to live (TTL) of the record set (in seconds). The value\nrange is 300–2147483647. The default value is 300.\n","type":"number"}},"properties":{"address":{"description":"The address of the FloatingIP/EIP.\n","type":"string"},"description":{"description":"Description of the PTR record.\n","type":"string"},"dnsPtrrecordV2Id":{"description":"The PTR record ID, which is in {region}:{floatingip_id} format.\n","type":"string"},"floatingipId":{"description":"The ID of the FloatingIP/EIP.\n","type":"string"},"name":{"description":"Domain name of the PTR record. A domain name is case insensitive.\nUppercase letters will also be converted into lowercase letters.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the PTR record.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDnsPtrrecordV2Timeouts:DnsPtrrecordV2Timeouts"},"ttl":{"description":"The time to live (TTL) of the record set (in seconds). The value\nrange is 300–2147483647. The default value is 300.\n","type":"number"}},"required":["address","dnsPtrrecordV2Id","floatingipId","name"],"requiredInputs":["floatingipId"],"stateInputs":{"description":"Input properties used for looking up and filtering DnsPtrrecordV2 resources.\n","properties":{"address":{"description":"The address of the FloatingIP/EIP.\n","type":"string"},"description":{"description":"Description of the PTR record.\n","type":"string"},"dnsPtrrecordV2Id":{"description":"The PTR record ID, which is in {region}:{floatingip_id} format.\n","type":"string"},"floatingipId":{"description":"The ID of the FloatingIP/EIP.\n","type":"string"},"name":{"description":"Domain name of the PTR record. A domain name is case insensitive.\nUppercase letters will also be converted into lowercase letters.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the PTR record.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDnsPtrrecordV2Timeouts:DnsPtrrecordV2Timeouts"},"ttl":{"description":"The time to live (TTL) of the record set (in seconds). The value\nrange is 300–2147483647. The default value is 300.\n","type":"number"}},"type":"object"},"type":"object"},"opentelekomcloud:index/dnsRecordsetV2:DnsRecordsetV2":{"description":"Up-to-date reference of API arguments for DNS recordset you can get at\n[documentation portal](https://docs.otc.t-systems.com/domain-name-service/api-ref/apis/record_set_management`)\n\nManages a DNS record set in the OpenTelekomCloud DNS Service.\n\n## Example Usage\n\n### Automatically detect the correct network\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst exampleZone = new opentelekomcloud.DnsZoneV2(\"example_zone\", {\n    name: \"example.com.\",\n    email: \"email2@example.com\",\n    description: \"a zone\",\n    ttl: 6000,\n    type: \"public\",\n});\nconst rsExampleCom = new opentelekomcloud.DnsRecordsetV2(\"rs_example_com\", {\n    zoneId: exampleZone.dnsZoneV2Id,\n    name: \"rs.example.com.\",\n    description: \"An example record set\",\n    ttl: 3000,\n    type: \"A\",\n    records: [\"10.0.0.1\"],\n});\nconst rsTxtExample = new opentelekomcloud.DnsRecordsetV2(\"rs_txt_example\", {\n    zoneId: zone1.id,\n    name: \"%[1]s\",\n    type: \"TXT\",\n    description: \"a record set\",\n    ttl: 300,\n    records: [\"v=spf1 include:my.example.try.com -all\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nexample_zone = opentelekomcloud.DnsZoneV2(\"example_zone\",\n    name=\"example.com.\",\n    email=\"email2@example.com\",\n    description=\"a zone\",\n    ttl=6000,\n    type=\"public\")\nrs_example_com = opentelekomcloud.DnsRecordsetV2(\"rs_example_com\",\n    zone_id=example_zone.dns_zone_v2_id,\n    name=\"rs.example.com.\",\n    description=\"An example record set\",\n    ttl=3000,\n    type=\"A\",\n    records=[\"10.0.0.1\"])\nrs_txt_example = opentelekomcloud.DnsRecordsetV2(\"rs_txt_example\",\n    zone_id=zone1[\"id\"],\n    name=\"%[1]s\",\n    type=\"TXT\",\n    description=\"a record set\",\n    ttl=300,\n    records=[\"v=spf1 include:my.example.try.com -all\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleZone = new Opentelekomcloud.DnsZoneV2(\"example_zone\", new()\n    {\n        Name = \"example.com.\",\n        Email = \"email2@example.com\",\n        Description = \"a zone\",\n        Ttl = 6000,\n        Type = \"public\",\n    });\n\n    var rsExampleCom = new Opentelekomcloud.DnsRecordsetV2(\"rs_example_com\", new()\n    {\n        ZoneId = exampleZone.DnsZoneV2Id,\n        Name = \"rs.example.com.\",\n        Description = \"An example record set\",\n        Ttl = 3000,\n        Type = \"A\",\n        Records = new[]\n        {\n            \"10.0.0.1\",\n        },\n    });\n\n    var rsTxtExample = new Opentelekomcloud.DnsRecordsetV2(\"rs_txt_example\", new()\n    {\n        ZoneId = zone1.Id,\n        Name = \"%[1]s\",\n        Type = \"TXT\",\n        Description = \"a record set\",\n        Ttl = 300,\n        Records = new[]\n        {\n            \"v=spf1 include:my.example.try.com -all\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleZone, err := opentelekomcloud.NewDnsZoneV2(ctx, \"example_zone\", &opentelekomcloud.DnsZoneV2Args{\n\t\t\tName:        pulumi.String(\"example.com.\"),\n\t\t\tEmail:       pulumi.String(\"email2@example.com\"),\n\t\t\tDescription: pulumi.String(\"a zone\"),\n\t\t\tTtl:         pulumi.Float64(6000),\n\t\t\tType:        pulumi.String(\"public\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewDnsRecordsetV2(ctx, \"rs_example_com\", &opentelekomcloud.DnsRecordsetV2Args{\n\t\t\tZoneId:      exampleZone.DnsZoneV2Id,\n\t\t\tName:        pulumi.String(\"rs.example.com.\"),\n\t\t\tDescription: pulumi.String(\"An example record set\"),\n\t\t\tTtl:         pulumi.Float64(3000),\n\t\t\tType:        pulumi.String(\"A\"),\n\t\t\tRecords: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewDnsRecordsetV2(ctx, \"rs_txt_example\", &opentelekomcloud.DnsRecordsetV2Args{\n\t\t\tZoneId:      pulumi.Any(zone1.Id),\n\t\t\tName:        pulumi.String(\"%[1]s\"),\n\t\t\tType:        pulumi.String(\"TXT\"),\n\t\t\tDescription: pulumi.String(\"a record set\"),\n\t\t\tTtl:         pulumi.Float64(300),\n\t\t\tRecords: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"v=spf1 include:my.example.try.com -all\"),\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.opentelekomcloud.DnsZoneV2;\nimport com.pulumi.opentelekomcloud.DnsZoneV2Args;\nimport com.pulumi.opentelekomcloud.DnsRecordsetV2;\nimport com.pulumi.opentelekomcloud.DnsRecordsetV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleZone = new DnsZoneV2(\"exampleZone\", DnsZoneV2Args.builder()\n            .name(\"example.com.\")\n            .email(\"email2@example.com\")\n            .description(\"a zone\")\n            .ttl(6000.0)\n            .type(\"public\")\n            .build());\n\n        var rsExampleCom = new DnsRecordsetV2(\"rsExampleCom\", DnsRecordsetV2Args.builder()\n            .zoneId(exampleZone.dnsZoneV2Id())\n            .name(\"rs.example.com.\")\n            .description(\"An example record set\")\n            .ttl(3000.0)\n            .type(\"A\")\n            .records(\"10.0.0.1\")\n            .build());\n\n        var rsTxtExample = new DnsRecordsetV2(\"rsTxtExample\", DnsRecordsetV2Args.builder()\n            .zoneId(zone1.id())\n            .name(\"%[1]s\")\n            .type(\"TXT\")\n            .description(\"a record set\")\n            .ttl(300.0)\n            .records(\"v=spf1 include:my.example.try.com -all\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleZone:\n    type: opentelekomcloud:DnsZoneV2\n    name: example_zone\n    properties:\n      name: example.com.\n      email: email2@example.com\n      description: a zone\n      ttl: 6000\n      type: public\n  rsExampleCom:\n    type: opentelekomcloud:DnsRecordsetV2\n    name: rs_example_com\n    properties:\n      zoneId: ${exampleZone.dnsZoneV2Id}\n      name: rs.example.com.\n      description: An example record set\n      ttl: 3000\n      type: A\n      records:\n        - 10.0.0.1\n  rsTxtExample:\n    type: opentelekomcloud:DnsRecordsetV2\n    name: rs_txt_example\n    properties:\n      zoneId: ${zone1.id}\n      name: '%[1]s'\n      type: TXT\n      description: a record set\n      ttl: 300\n      records:\n        - v=spf1 include:my.example.try.com -all\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThis resource can be imported by specifying the zone ID and recordset ID,\n\nseparated by a forward slash.\n\n```sh\n$ pulumi import opentelekomcloud:index/dnsRecordsetV2:DnsRecordsetV2 recordset_1 <zone_id>/<recordset_id>\n```\n\nImported key pairs are considered to be not shared.\n\n","inputProperties":{"description":{"description":"A description of the  record set.\n","type":"string"},"dnsRecordsetV2Id":{"type":"string"},"name":{"description":"The name of the record set. Changing this creates a new DNS  record set.\n\n> **Note:** The `.` at the end of the name.\n","type":"string"},"records":{"description":"An array of DNS records.\n","items":{"type":"string"},"type":"array"},"region":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The key/value pairs to associate with the zone.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDnsRecordsetV2Timeouts:DnsRecordsetV2Timeouts"},"ttl":{"description":"The time to live (TTL) of the record set.\n","type":"number"},"type":{"description":"The type of record set. Examples: \"A\", \"MX\".\nChanging this creates a new DNS  record set.\n","type":"string"},"valueSpecs":{"additionalProperties":{"type":"string"},"type":"object"},"zoneId":{"description":"The ID of the zone in which to create the record set.\nChanging this creates a new DNS  record set.\n","type":"string"}},"properties":{"description":{"description":"A description of the  record set.\n","type":"string"},"dnsRecordsetV2Id":{"type":"string"},"name":{"description":"The name of the record set. Changing this creates a new DNS  record set.\n\n> **Note:** The `.` at the end of the name.\n","type":"string"},"records":{"description":"An array of DNS records.\n","items":{"type":"string"},"type":"array"},"region":{"type":"string"},"shared":{"type":"boolean"},"tags":{"additionalProperties":{"type":"string"},"description":"The key/value pairs to associate with the zone.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDnsRecordsetV2Timeouts:DnsRecordsetV2Timeouts"},"ttl":{"description":"The time to live (TTL) of the record set.\n","type":"number"},"type":{"description":"The type of record set. Examples: \"A\", \"MX\".\nChanging this creates a new DNS  record set.\n","type":"string"},"valueSpecs":{"additionalProperties":{"type":"string"},"type":"object"},"zoneId":{"description":"The ID of the zone in which to create the record set.\nChanging this creates a new DNS  record set.\n","type":"string"}},"required":["dnsRecordsetV2Id","name","records","region","shared","type","zoneId"],"requiredInputs":["records","type","zoneId"],"stateInputs":{"description":"Input properties used for looking up and filtering DnsRecordsetV2 resources.\n","properties":{"description":{"description":"A description of the  record set.\n","type":"string"},"dnsRecordsetV2Id":{"type":"string"},"name":{"description":"The name of the record set. Changing this creates a new DNS  record set.\n\n> **Note:** The `.` at the end of the name.\n","type":"string"},"records":{"description":"An array of DNS records.\n","items":{"type":"string"},"type":"array"},"region":{"type":"string"},"shared":{"type":"boolean"},"tags":{"additionalProperties":{"type":"string"},"description":"The key/value pairs to associate with the zone.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDnsRecordsetV2Timeouts:DnsRecordsetV2Timeouts"},"ttl":{"description":"The time to live (TTL) of the record set.\n","type":"number"},"type":{"description":"The type of record set. Examples: \"A\", \"MX\".\nChanging this creates a new DNS  record set.\n","type":"string"},"valueSpecs":{"additionalProperties":{"type":"string"},"type":"object"},"zoneId":{"description":"The ID of the zone in which to create the record set.\nChanging this creates a new DNS  record set.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/dnsZoneV2:DnsZoneV2":{"description":"Up-to-date reference of API arguments for DNS zones you can get at\n[documentation portal (private zone)](https://docs.otc.t-systems.com/domain-name-service/api-ref/apis/private_zone_management) and\n[documentation portal (public zone)](https://docs.otc.t-systems.com/domain-name-service/api-ref/apis/public_zone_management)\n\nManages a DNS zone in the OpenTelekomCloud DNS Service.\n\n## Example Usage\n\n### Public Zone Configuration\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst publicExampleCom = new opentelekomcloud.DnsZoneV2(\"public_example_com\", {\n    name: \"public.example.com.\",\n    email: \"public@example.com\",\n    description: \"An example for public zone\",\n    ttl: 3000,\n    type: \"public\",\n    tags: {\n        foo: \"bar\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\npublic_example_com = opentelekomcloud.DnsZoneV2(\"public_example_com\",\n    name=\"public.example.com.\",\n    email=\"public@example.com\",\n    description=\"An example for public zone\",\n    ttl=3000,\n    type=\"public\",\n    tags={\n        \"foo\": \"bar\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var publicExampleCom = new Opentelekomcloud.DnsZoneV2(\"public_example_com\", new()\n    {\n        Name = \"public.example.com.\",\n        Email = \"public@example.com\",\n        Description = \"An example for public zone\",\n        Ttl = 3000,\n        Type = \"public\",\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewDnsZoneV2(ctx, \"public_example_com\", &opentelekomcloud.DnsZoneV2Args{\n\t\t\tName:        pulumi.String(\"public.example.com.\"),\n\t\t\tEmail:       pulumi.String(\"public@example.com\"),\n\t\t\tDescription: pulumi.String(\"An example for public zone\"),\n\t\t\tTtl:         pulumi.Float64(3000),\n\t\t\tType:        pulumi.String(\"public\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.DnsZoneV2;\nimport com.pulumi.opentelekomcloud.DnsZoneV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var publicExampleCom = new DnsZoneV2(\"publicExampleCom\", DnsZoneV2Args.builder()\n            .name(\"public.example.com.\")\n            .email(\"public@example.com\")\n            .description(\"An example for public zone\")\n            .ttl(3000.0)\n            .type(\"public\")\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  publicExampleCom:\n    type: opentelekomcloud:DnsZoneV2\n    name: public_example_com\n    properties:\n      name: public.example.com.\n      email: public@example.com\n      description: An example for public zone\n      ttl: 3000\n      type: public\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n### Private Zone Configuration\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst privateExampleCom = new opentelekomcloud.DnsZoneV2(\"private_example_com\", {\n    name: \"private.example.com.\",\n    email: \"private@example.com\",\n    description: \"An example for private zone\",\n    ttl: 3000,\n    type: \"private\",\n    routers: [{\n        routerId: vpcId,\n        routerRegion: region,\n    }],\n    tags: {\n        foo: \"bar\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nprivate_example_com = opentelekomcloud.DnsZoneV2(\"private_example_com\",\n    name=\"private.example.com.\",\n    email=\"private@example.com\",\n    description=\"An example for private zone\",\n    ttl=3000,\n    type=\"private\",\n    routers=[{\n        \"router_id\": vpc_id,\n        \"router_region\": region,\n    }],\n    tags={\n        \"foo\": \"bar\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var privateExampleCom = new Opentelekomcloud.DnsZoneV2(\"private_example_com\", new()\n    {\n        Name = \"private.example.com.\",\n        Email = \"private@example.com\",\n        Description = \"An example for private zone\",\n        Ttl = 3000,\n        Type = \"private\",\n        Routers = new[]\n        {\n            new Opentelekomcloud.Inputs.DnsZoneV2RouterArgs\n            {\n                RouterId = vpcId,\n                RouterRegion = region,\n            },\n        },\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewDnsZoneV2(ctx, \"private_example_com\", &opentelekomcloud.DnsZoneV2Args{\n\t\t\tName:        pulumi.String(\"private.example.com.\"),\n\t\t\tEmail:       pulumi.String(\"private@example.com\"),\n\t\t\tDescription: pulumi.String(\"An example for private zone\"),\n\t\t\tTtl:         pulumi.Float64(3000),\n\t\t\tType:        pulumi.String(\"private\"),\n\t\t\tRouters: opentelekomcloud.DnsZoneV2RouterArray{\n\t\t\t\t&opentelekomcloud.DnsZoneV2RouterArgs{\n\t\t\t\t\tRouterId:     pulumi.Any(vpcId),\n\t\t\t\t\tRouterRegion: pulumi.Any(region),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.DnsZoneV2;\nimport com.pulumi.opentelekomcloud.DnsZoneV2Args;\nimport com.pulumi.opentelekomcloud.inputs.DnsZoneV2RouterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var privateExampleCom = new DnsZoneV2(\"privateExampleCom\", DnsZoneV2Args.builder()\n            .name(\"private.example.com.\")\n            .email(\"private@example.com\")\n            .description(\"An example for private zone\")\n            .ttl(3000.0)\n            .type(\"private\")\n            .routers(DnsZoneV2RouterArgs.builder()\n                .routerId(vpcId)\n                .routerRegion(region)\n                .build())\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  privateExampleCom:\n    type: opentelekomcloud:DnsZoneV2\n    name: private_example_com\n    properties:\n      name: private.example.com.\n      email: private@example.com\n      description: An example for private zone\n      ttl: 3000\n      type: private\n      routers:\n        - routerId: ${vpcId}\n          routerRegion: ${region}\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n### Private Zone Configuration with multiple routers\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst privateExampleCom = new opentelekomcloud.DnsZoneV2(\"private_example_com\", {\n    name: \"private.example.com.\",\n    email: \"private@example.com\",\n    description: \"An example for private zone\",\n    ttl: 3000,\n    type: \"private\",\n    routers: [\n        {\n            routerId: vpcId1,\n            routerRegion: region,\n        },\n        {\n            routerId: vpcId2,\n            routerRegion: region,\n        },\n    ],\n    tags: {\n        foo: \"bar\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nprivate_example_com = opentelekomcloud.DnsZoneV2(\"private_example_com\",\n    name=\"private.example.com.\",\n    email=\"private@example.com\",\n    description=\"An example for private zone\",\n    ttl=3000,\n    type=\"private\",\n    routers=[\n        {\n            \"router_id\": vpc_id1,\n            \"router_region\": region,\n        },\n        {\n            \"router_id\": vpc_id2,\n            \"router_region\": region,\n        },\n    ],\n    tags={\n        \"foo\": \"bar\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var privateExampleCom = new Opentelekomcloud.DnsZoneV2(\"private_example_com\", new()\n    {\n        Name = \"private.example.com.\",\n        Email = \"private@example.com\",\n        Description = \"An example for private zone\",\n        Ttl = 3000,\n        Type = \"private\",\n        Routers = new[]\n        {\n            new Opentelekomcloud.Inputs.DnsZoneV2RouterArgs\n            {\n                RouterId = vpcId1,\n                RouterRegion = region,\n            },\n            new Opentelekomcloud.Inputs.DnsZoneV2RouterArgs\n            {\n                RouterId = vpcId2,\n                RouterRegion = region,\n            },\n        },\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewDnsZoneV2(ctx, \"private_example_com\", &opentelekomcloud.DnsZoneV2Args{\n\t\t\tName:        pulumi.String(\"private.example.com.\"),\n\t\t\tEmail:       pulumi.String(\"private@example.com\"),\n\t\t\tDescription: pulumi.String(\"An example for private zone\"),\n\t\t\tTtl:         pulumi.Float64(3000),\n\t\t\tType:        pulumi.String(\"private\"),\n\t\t\tRouters: opentelekomcloud.DnsZoneV2RouterArray{\n\t\t\t\t&opentelekomcloud.DnsZoneV2RouterArgs{\n\t\t\t\t\tRouterId:     pulumi.Any(vpcId1),\n\t\t\t\t\tRouterRegion: pulumi.Any(region),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.DnsZoneV2RouterArgs{\n\t\t\t\t\tRouterId:     pulumi.Any(vpcId2),\n\t\t\t\t\tRouterRegion: pulumi.Any(region),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.DnsZoneV2;\nimport com.pulumi.opentelekomcloud.DnsZoneV2Args;\nimport com.pulumi.opentelekomcloud.inputs.DnsZoneV2RouterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var privateExampleCom = new DnsZoneV2(\"privateExampleCom\", DnsZoneV2Args.builder()\n            .name(\"private.example.com.\")\n            .email(\"private@example.com\")\n            .description(\"An example for private zone\")\n            .ttl(3000.0)\n            .type(\"private\")\n            .routers(            \n                DnsZoneV2RouterArgs.builder()\n                    .routerId(vpcId1)\n                    .routerRegion(region)\n                    .build(),\n                DnsZoneV2RouterArgs.builder()\n                    .routerId(vpcId2)\n                    .routerRegion(region)\n                    .build())\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  privateExampleCom:\n    type: opentelekomcloud:DnsZoneV2\n    name: private_example_com\n    properties:\n      name: private.example.com.\n      email: private@example.com\n      description: An example for private zone\n      ttl: 3000\n      type: private\n      routers:\n        - routerId: ${vpcId1}\n          routerRegion: ${region}\n        - routerId: ${vpcId2}\n          routerRegion: ${region}\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThis resource can be imported by specifying the zone ID:\n\n```sh\n$ pulumi import opentelekomcloud:index/dnsZoneV2:DnsZoneV2 zone_1 <zone_id>\n```\n\n","inputProperties":{"description":{"description":"A description of the zone.\n","type":"string"},"dnsZoneV2Id":{"type":"string"},"email":{"description":"The email contact for the zone record.\n","type":"string"},"name":{"description":"The name of the zone.   Changing this creates a new DNS zone.\n> **Note:** The `.` at the end of the name.\n","type":"string"},"region":{"type":"string"},"routers":{"description":"The Routers(VPCs) configuration for the private zone.\nit is required when type is <span pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\">`private`</span>.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDnsZoneV2Router:DnsZoneV2Router"},"type":"array"},"tags":{"additionalProperties":{"type":"string"},"description":"The key/value pairs to associate with the zone.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDnsZoneV2Timeouts:DnsZoneV2Timeouts"},"ttl":{"description":"The time to live (TTL) of the zone.\n","type":"number"},"type":{"description":"The type of zone. Can either be <span pulumi-lang-nodejs=\"`public`\" pulumi-lang-dotnet=\"`Public`\" pulumi-lang-go=\"`public`\" pulumi-lang-python=\"`public`\" pulumi-lang-yaml=\"`public`\" pulumi-lang-java=\"`public`\">`public`</span> or <span pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\">`private`</span>.\nChanging this creates a new zone.\n","type":"string"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options. Changing this creates a new zone.\n","type":"object"}},"properties":{"description":{"description":"A description of the zone.\n","type":"string"},"dnsZoneV2Id":{"type":"string"},"email":{"description":"The email contact for the zone record.\n","type":"string"},"masters":{"description":"An array of master DNS servers.\n","items":{"type":"string"},"type":"array"},"name":{"description":"The name of the zone.   Changing this creates a new DNS zone.\n> **Note:** The `.` at the end of the name.\n","type":"string"},"region":{"type":"string"},"routers":{"description":"The Routers(VPCs) configuration for the private zone.\nit is required when type is <span pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\">`private`</span>.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDnsZoneV2Router:DnsZoneV2Router"},"type":"array"},"tags":{"additionalProperties":{"type":"string"},"description":"The key/value pairs to associate with the zone.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDnsZoneV2Timeouts:DnsZoneV2Timeouts"},"ttl":{"description":"The time to live (TTL) of the zone.\n","type":"number"},"type":{"description":"The type of zone. Can either be <span pulumi-lang-nodejs=\"`public`\" pulumi-lang-dotnet=\"`Public`\" pulumi-lang-go=\"`public`\" pulumi-lang-python=\"`public`\" pulumi-lang-yaml=\"`public`\" pulumi-lang-java=\"`public`\">`public`</span> or <span pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\">`private`</span>.\nChanging this creates a new zone.\n","type":"string"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options. Changing this creates a new zone.\n","type":"object"}},"required":["dnsZoneV2Id","masters","name","region"],"stateInputs":{"description":"Input properties used for looking up and filtering DnsZoneV2 resources.\n","properties":{"description":{"description":"A description of the zone.\n","type":"string"},"dnsZoneV2Id":{"type":"string"},"email":{"description":"The email contact for the zone record.\n","type":"string"},"masters":{"description":"An array of master DNS servers.\n","items":{"type":"string"},"type":"array"},"name":{"description":"The name of the zone.   Changing this creates a new DNS zone.\n> **Note:** The `.` at the end of the name.\n","type":"string"},"region":{"type":"string"},"routers":{"description":"The Routers(VPCs) configuration for the private zone.\nit is required when type is <span pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\">`private`</span>.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDnsZoneV2Router:DnsZoneV2Router"},"type":"array"},"tags":{"additionalProperties":{"type":"string"},"description":"The key/value pairs to associate with the zone.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDnsZoneV2Timeouts:DnsZoneV2Timeouts"},"ttl":{"description":"The time to live (TTL) of the zone.\n","type":"number"},"type":{"description":"The type of zone. Can either be <span pulumi-lang-nodejs=\"`public`\" pulumi-lang-dotnet=\"`Public`\" pulumi-lang-go=\"`public`\" pulumi-lang-python=\"`public`\" pulumi-lang-yaml=\"`public`\" pulumi-lang-java=\"`public`\">`public`</span> or <span pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\">`private`</span>.\nChanging this creates a new zone.\n","type":"string"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options. Changing this creates a new zone.\n","type":"object"}},"type":"object"},"type":"object"},"opentelekomcloud:index/drsTaskV3:DrsTaskV3":{"description":"Up-to-date reference of API arguments for DRS task you can get at\n[documentation portal](https://docs.otc.t-systems.com/data-replication-service/api-ref/api/public_api_management/index.html#drs-03-0101)\n\nManages DRS task resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Create a DRS task to migrate data using EIP (up direction)\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst source = new opentelekomcloud.RdsInstanceV3(\"source\", {});\nconst destination = new opentelekomcloud.RdsInstanceV3(\"destination\", {});\nconst migrationDown = new opentelekomcloud.DrsTaskV3(\"migration_down\", {\n    name: \"mysql-migration-up\",\n    type: \"migration\",\n    engineType: \"mysql\",\n    direction: \"up\",\n    netType: \"eip\",\n    migrationType: \"FULL_INCR_TRANS\",\n    description: \"mysql-migration-up\",\n    forceDestroy: true,\n    sourceDb: {\n        engineType: \"mysql\",\n        ip: source.publicIps.apply(publicIps => publicIps?.[0]),\n        port: 3306,\n        user: \"root\",\n        password: \"MySql_password123\",\n    },\n    destinationDb: {\n        ip: destination.publicIps.apply(publicIps => publicIps?.[0]),\n        port: 3306,\n        engineType: \"mysql\",\n        user: \"root\",\n        password: \"MySql_password123\",\n        instanceId: destination.rdsInstanceV3Id,\n        subnetId: destination.subnetId,\n    },\n    tags: {\n        key: \"mysql-migration-up\",\n    },\n    action: \"start\",\n    startTime: \"1640995200000\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nsource = opentelekomcloud.RdsInstanceV3(\"source\")\ndestination = opentelekomcloud.RdsInstanceV3(\"destination\")\nmigration_down = opentelekomcloud.DrsTaskV3(\"migration_down\",\n    name=\"mysql-migration-up\",\n    type=\"migration\",\n    engine_type=\"mysql\",\n    direction=\"up\",\n    net_type=\"eip\",\n    migration_type=\"FULL_INCR_TRANS\",\n    description=\"mysql-migration-up\",\n    force_destroy=True,\n    source_db={\n        \"engine_type\": \"mysql\",\n        \"ip\": source.public_ips[0],\n        \"port\": 3306,\n        \"user\": \"root\",\n        \"password\": \"MySql_password123\",\n    },\n    destination_db={\n        \"ip\": destination.public_ips[0],\n        \"port\": 3306,\n        \"engine_type\": \"mysql\",\n        \"user\": \"root\",\n        \"password\": \"MySql_password123\",\n        \"instance_id\": destination.rds_instance_v3_id,\n        \"subnet_id\": destination.subnet_id,\n    },\n    tags={\n        \"key\": \"mysql-migration-up\",\n    },\n    action=\"start\",\n    start_time=\"1640995200000\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var source = new Opentelekomcloud.RdsInstanceV3(\"source\");\n\n    var destination = new Opentelekomcloud.RdsInstanceV3(\"destination\");\n\n    var migrationDown = new Opentelekomcloud.DrsTaskV3(\"migration_down\", new()\n    {\n        Name = \"mysql-migration-up\",\n        Type = \"migration\",\n        EngineType = \"mysql\",\n        Direction = \"up\",\n        NetType = \"eip\",\n        MigrationType = \"FULL_INCR_TRANS\",\n        Description = \"mysql-migration-up\",\n        ForceDestroy = true,\n        SourceDb = new Opentelekomcloud.Inputs.DrsTaskV3SourceDbArgs\n        {\n            EngineType = \"mysql\",\n            Ip = source.PublicIps.Apply(publicIps => publicIps[0]),\n            Port = 3306,\n            User = \"root\",\n            Password = \"MySql_password123\",\n        },\n        DestinationDb = new Opentelekomcloud.Inputs.DrsTaskV3DestinationDbArgs\n        {\n            Ip = destination.PublicIps.Apply(publicIps => publicIps[0]),\n            Port = 3306,\n            EngineType = \"mysql\",\n            User = \"root\",\n            Password = \"MySql_password123\",\n            InstanceId = destination.RdsInstanceV3Id,\n            SubnetId = destination.SubnetId,\n        },\n        Tags = \n        {\n            { \"key\", \"mysql-migration-up\" },\n        },\n        Action = \"start\",\n        StartTime = \"1640995200000\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsource, err := opentelekomcloud.NewRdsInstanceV3(ctx, \"source\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdestination, err := opentelekomcloud.NewRdsInstanceV3(ctx, \"destination\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewDrsTaskV3(ctx, \"migration_down\", &opentelekomcloud.DrsTaskV3Args{\n\t\t\tName:          pulumi.String(\"mysql-migration-up\"),\n\t\t\tType:          pulumi.String(\"migration\"),\n\t\t\tEngineType:    pulumi.String(\"mysql\"),\n\t\t\tDirection:     pulumi.String(\"up\"),\n\t\t\tNetType:       pulumi.String(\"eip\"),\n\t\t\tMigrationType: pulumi.String(\"FULL_INCR_TRANS\"),\n\t\t\tDescription:   pulumi.String(\"mysql-migration-up\"),\n\t\t\tForceDestroy:  pulumi.Bool(true),\n\t\t\tSourceDb: &opentelekomcloud.DrsTaskV3SourceDbArgs{\n\t\t\t\tEngineType: pulumi.String(\"mysql\"),\n\t\t\t\tIp: source.PublicIps.ApplyT(func(publicIps interface{}) (*string, error) {\n\t\t\t\t\treturn &publicIps[0], nil\n\t\t\t\t}).(pulumi.StringPtrOutput),\n\t\t\t\tPort:     pulumi.Float64(3306),\n\t\t\t\tUser:     pulumi.String(\"root\"),\n\t\t\t\tPassword: pulumi.String(\"MySql_password123\"),\n\t\t\t},\n\t\t\tDestinationDb: &opentelekomcloud.DrsTaskV3DestinationDbArgs{\n\t\t\t\tIp: destination.PublicIps.ApplyT(func(publicIps interface{}) (*string, error) {\n\t\t\t\t\treturn &publicIps[0], nil\n\t\t\t\t}).(pulumi.StringPtrOutput),\n\t\t\t\tPort:       pulumi.Float64(3306),\n\t\t\t\tEngineType: pulumi.String(\"mysql\"),\n\t\t\t\tUser:       pulumi.String(\"root\"),\n\t\t\t\tPassword:   pulumi.String(\"MySql_password123\"),\n\t\t\t\tInstanceId: destination.RdsInstanceV3Id,\n\t\t\t\tSubnetId:   destination.SubnetId,\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"key\": pulumi.String(\"mysql-migration-up\"),\n\t\t\t},\n\t\t\tAction:    pulumi.String(\"start\"),\n\t\t\tStartTime: pulumi.String(\"1640995200000\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.RdsInstanceV3;\nimport com.pulumi.opentelekomcloud.DrsTaskV3;\nimport com.pulumi.opentelekomcloud.DrsTaskV3Args;\nimport com.pulumi.opentelekomcloud.inputs.DrsTaskV3SourceDbArgs;\nimport com.pulumi.opentelekomcloud.inputs.DrsTaskV3DestinationDbArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var source = new RdsInstanceV3(\"source\");\n\n        var destination = new RdsInstanceV3(\"destination\");\n\n        var migrationDown = new DrsTaskV3(\"migrationDown\", DrsTaskV3Args.builder()\n            .name(\"mysql-migration-up\")\n            .type(\"migration\")\n            .engineType(\"mysql\")\n            .direction(\"up\")\n            .netType(\"eip\")\n            .migrationType(\"FULL_INCR_TRANS\")\n            .description(\"mysql-migration-up\")\n            .forceDestroy(true)\n            .sourceDb(DrsTaskV3SourceDbArgs.builder()\n                .engineType(\"mysql\")\n                .ip(source.publicIps().applyValue(_publicIps -> _publicIps[0]))\n                .port(3306.0)\n                .user(\"root\")\n                .password(\"MySql_password123\")\n                .build())\n            .destinationDb(DrsTaskV3DestinationDbArgs.builder()\n                .ip(destination.publicIps().applyValue(_publicIps -> _publicIps[0]))\n                .port(3306.0)\n                .engineType(\"mysql\")\n                .user(\"root\")\n                .password(\"MySql_password123\")\n                .instanceId(destination.rdsInstanceV3Id())\n                .subnetId(destination.subnetId())\n                .build())\n            .tags(Map.of(\"key\", \"mysql-migration-up\"))\n            .action(\"start\")\n            .startTime(\"1640995200000\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  source:\n    type: opentelekomcloud:RdsInstanceV3\n  destination:\n    type: opentelekomcloud:RdsInstanceV3\n  migrationDown:\n    type: opentelekomcloud:DrsTaskV3\n    name: migration_down\n    properties:\n      name: mysql-migration-up\n      type: migration\n      engineType: mysql\n      direction: up\n      netType: eip\n      migrationType: FULL_INCR_TRANS\n      description: mysql-migration-up\n      forceDestroy: true\n      sourceDb:\n        engineType: mysql\n        ip: ${source.publicIps[0]}\n        port: 3306\n        user: root\n        password: MySql_password123\n      destinationDb:\n        ip: ${destination.publicIps[0]}\n        port: 3306\n        engineType: mysql\n        user: root\n        password: MySql_password123\n        instanceId: ${destination.rdsInstanceV3Id}\n        subnetId: ${destination.subnetId}\n      tags:\n        key: mysql-migration-up\n      action: start\n      startTime: '1640995200000'\n```\n<!--End PulumiCodeChooser -->\n\n### Create a DRS task to migrate data using VPC (down direction)\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst source = new opentelekomcloud.RdsInstanceV3(\"source\", {});\nconst destination = new opentelekomcloud.RdsInstanceV3(\"destination\", {});\nconst migrationDown = new opentelekomcloud.DrsTaskV3(\"migration_down\", {\n    name: \"mysql-migration-down\",\n    type: \"migration\",\n    engineType: \"mysql\",\n    direction: \"down\",\n    netType: \"vpc\",\n    forceDestroy: true,\n    sourceDb: {\n        engineType: \"mysql\",\n        ip: source.privateIps[0],\n        port: 3306,\n        user: \"root\",\n        password: \"MySql_password123\",\n        instanceId: source.rdsInstanceV3Id,\n        subnetId: sharedSubnet.networkId,\n    },\n    destinationDb: {\n        engineType: \"mysql\",\n        ip: destination.privateIps[0],\n        port: 3306,\n        user: \"root\",\n        password: \"MySql_password123\",\n        subnetId: sharedSubnet.networkId,\n        vpcId: sharedSubnet.vpcId,\n    },\n    destinationDbReadonly: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nsource = opentelekomcloud.RdsInstanceV3(\"source\")\ndestination = opentelekomcloud.RdsInstanceV3(\"destination\")\nmigration_down = opentelekomcloud.DrsTaskV3(\"migration_down\",\n    name=\"mysql-migration-down\",\n    type=\"migration\",\n    engine_type=\"mysql\",\n    direction=\"down\",\n    net_type=\"vpc\",\n    force_destroy=True,\n    source_db={\n        \"engine_type\": \"mysql\",\n        \"ip\": source.private_ips[0],\n        \"port\": 3306,\n        \"user\": \"root\",\n        \"password\": \"MySql_password123\",\n        \"instance_id\": source.rds_instance_v3_id,\n        \"subnet_id\": shared_subnet[\"networkId\"],\n    },\n    destination_db={\n        \"engine_type\": \"mysql\",\n        \"ip\": destination.private_ips[0],\n        \"port\": 3306,\n        \"user\": \"root\",\n        \"password\": \"MySql_password123\",\n        \"subnet_id\": shared_subnet[\"networkId\"],\n        \"vpc_id\": shared_subnet[\"vpcId\"],\n    },\n    destination_db_readonly=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var source = new Opentelekomcloud.RdsInstanceV3(\"source\");\n\n    var destination = new Opentelekomcloud.RdsInstanceV3(\"destination\");\n\n    var migrationDown = new Opentelekomcloud.DrsTaskV3(\"migration_down\", new()\n    {\n        Name = \"mysql-migration-down\",\n        Type = \"migration\",\n        EngineType = \"mysql\",\n        Direction = \"down\",\n        NetType = \"vpc\",\n        ForceDestroy = true,\n        SourceDb = new Opentelekomcloud.Inputs.DrsTaskV3SourceDbArgs\n        {\n            EngineType = \"mysql\",\n            Ip = source.PrivateIps.Apply(privateIps => privateIps[0]),\n            Port = 3306,\n            User = \"root\",\n            Password = \"MySql_password123\",\n            InstanceId = source.RdsInstanceV3Id,\n            SubnetId = sharedSubnet.NetworkId,\n        },\n        DestinationDb = new Opentelekomcloud.Inputs.DrsTaskV3DestinationDbArgs\n        {\n            EngineType = \"mysql\",\n            Ip = destination.PrivateIps.Apply(privateIps => privateIps[0]),\n            Port = 3306,\n            User = \"root\",\n            Password = \"MySql_password123\",\n            SubnetId = sharedSubnet.NetworkId,\n            VpcId = sharedSubnet.VpcId,\n        },\n        DestinationDbReadonly = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsource, err := opentelekomcloud.NewRdsInstanceV3(ctx, \"source\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdestination, err := opentelekomcloud.NewRdsInstanceV3(ctx, \"destination\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewDrsTaskV3(ctx, \"migration_down\", &opentelekomcloud.DrsTaskV3Args{\n\t\t\tName:         pulumi.String(\"mysql-migration-down\"),\n\t\t\tType:         pulumi.String(\"migration\"),\n\t\t\tEngineType:   pulumi.String(\"mysql\"),\n\t\t\tDirection:    pulumi.String(\"down\"),\n\t\t\tNetType:      pulumi.String(\"vpc\"),\n\t\t\tForceDestroy: pulumi.Bool(true),\n\t\t\tSourceDb: &opentelekomcloud.DrsTaskV3SourceDbArgs{\n\t\t\t\tEngineType: pulumi.String(\"mysql\"),\n\t\t\t\tIp: source.PrivateIps.ApplyT(func(privateIps []string) (string, error) {\n\t\t\t\t\treturn privateIps[0], nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\tPort:       pulumi.Float64(3306),\n\t\t\t\tUser:       pulumi.String(\"root\"),\n\t\t\t\tPassword:   pulumi.String(\"MySql_password123\"),\n\t\t\t\tInstanceId: source.RdsInstanceV3Id,\n\t\t\t\tSubnetId:   pulumi.Any(sharedSubnet.NetworkId),\n\t\t\t},\n\t\t\tDestinationDb: &opentelekomcloud.DrsTaskV3DestinationDbArgs{\n\t\t\t\tEngineType: pulumi.String(\"mysql\"),\n\t\t\t\tIp: destination.PrivateIps.ApplyT(func(privateIps []string) (string, error) {\n\t\t\t\t\treturn privateIps[0], nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\tPort:     pulumi.Float64(3306),\n\t\t\t\tUser:     pulumi.String(\"root\"),\n\t\t\t\tPassword: pulumi.String(\"MySql_password123\"),\n\t\t\t\tSubnetId: pulumi.Any(sharedSubnet.NetworkId),\n\t\t\t\tVpcId:    pulumi.Any(sharedSubnet.VpcId),\n\t\t\t},\n\t\t\tDestinationDbReadonly: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.RdsInstanceV3;\nimport com.pulumi.opentelekomcloud.DrsTaskV3;\nimport com.pulumi.opentelekomcloud.DrsTaskV3Args;\nimport com.pulumi.opentelekomcloud.inputs.DrsTaskV3SourceDbArgs;\nimport com.pulumi.opentelekomcloud.inputs.DrsTaskV3DestinationDbArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var source = new RdsInstanceV3(\"source\");\n\n        var destination = new RdsInstanceV3(\"destination\");\n\n        var migrationDown = new DrsTaskV3(\"migrationDown\", DrsTaskV3Args.builder()\n            .name(\"mysql-migration-down\")\n            .type(\"migration\")\n            .engineType(\"mysql\")\n            .direction(\"down\")\n            .netType(\"vpc\")\n            .forceDestroy(true)\n            .sourceDb(DrsTaskV3SourceDbArgs.builder()\n                .engineType(\"mysql\")\n                .ip(source.privateIps().applyValue(_privateIps -> _privateIps[0]))\n                .port(3306.0)\n                .user(\"root\")\n                .password(\"MySql_password123\")\n                .instanceId(source.rdsInstanceV3Id())\n                .subnetId(sharedSubnet.networkId())\n                .build())\n            .destinationDb(DrsTaskV3DestinationDbArgs.builder()\n                .engineType(\"mysql\")\n                .ip(destination.privateIps().applyValue(_privateIps -> _privateIps[0]))\n                .port(3306.0)\n                .user(\"root\")\n                .password(\"MySql_password123\")\n                .subnetId(sharedSubnet.networkId())\n                .vpcId(sharedSubnet.vpcId())\n                .build())\n            .destinationDbReadonly(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  source:\n    type: opentelekomcloud:RdsInstanceV3\n  destination:\n    type: opentelekomcloud:RdsInstanceV3\n  migrationDown:\n    type: opentelekomcloud:DrsTaskV3\n    name: migration_down\n    properties:\n      name: mysql-migration-down\n      type: migration\n      engineType: mysql\n      direction: down\n      netType: vpc\n      forceDestroy: true\n      sourceDb:\n        engineType: mysql\n        ip: ${source.privateIps[0]}\n        port: 3306\n        user: root\n        password: MySql_password123\n        instanceId: ${source.rdsInstanceV3Id}\n        subnetId: ${sharedSubnet.networkId}\n      destinationDb:\n        engineType: mysql\n        ip: ${destination.privateIps[0]}\n        port: 3306\n        user: root\n        password: MySql_password123\n        subnetId: ${sharedSubnet.networkId}\n        vpcId: ${sharedSubnet.vpcId}\n      destinationDbReadonly: false\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe DRS job can be imported by `id`. For example,\n\n```sh\n$ pulumi import opentelekomcloud:index/drsTaskV3:DrsTaskV3 test b11b407c-e604-4e8d-8bc4-92398320b847\n```\n\nNote that the imported state may not be identical to your resource definition, due to some attributes missing from the\n\nAPI response, security or some other reason. The missing attributes include: `source_db.0.password`, `destination_db.0.password`,\n\n`expired_days`, `migrate_definer`, `force_destroy`, `status`, `auto_renew`, `updated_at`, `policy_config`,\n\n`source_db.0.ip`, `destination_db.0.ip`, `engine_type`, `tags`, `status`, `net_type`, `start_time`, `action`.\n\nIt is generally recommended running `pulumi preview` after importing a job. You can then decide if changes should be\n\napplied to the job, or the resource definition should be updated to align with the job. Also you can ignore changes as below.\n\nresource \"opentelekomcloud_drs_job\" \"test\" {\n\n    ...\n\n  lifecycle {\n\n    ignore_changes = [\n\n      source_db.0.password,destination_db.0.password,\n\n    ]\n\n  }\n\n}\n\n","inputProperties":{"action":{"description":"Specifies the action of job. The options are as follows:\n+ **start**: Start the job. Available when job status is **WAITING_FOR_START**.\n\n> It will only take effect when **updating** a job.\n","type":"string"},"description":{"description":"Specifies the description of the job, which contain a\nmaximum of 256 characters, and certain special characters (including !<>&'\"\\\\) are not allowed.\n","type":"string"},"destinationDb":{"$ref":"#/types/opentelekomcloud:index%2FDrsTaskV3DestinationDb:DrsTaskV3DestinationDb","description":"Specifies the destination database configuration.\nThe <span pulumi-lang-nodejs=\"`dbInfo`\" pulumi-lang-dotnet=\"`DbInfo`\" pulumi-lang-go=\"`dbInfo`\" pulumi-lang-python=\"`db_info`\" pulumi-lang-yaml=\"`dbInfo`\" pulumi-lang-java=\"`dbInfo`\">`db_info`</span> object structure of the <span pulumi-lang-nodejs=\"`destinationDb`\" pulumi-lang-dotnet=\"`DestinationDb`\" pulumi-lang-go=\"`destinationDb`\" pulumi-lang-python=\"`destination_db`\" pulumi-lang-yaml=\"`destinationDb`\" pulumi-lang-java=\"`destinationDb`\">`destination_db`</span> is documented below.\nChanging this parameter will create a new resource.\n"},"destinationDbReadonly":{"description":"Specifies the destination DB instance as read-only helps\nensure the migration is successful. Once the migration is complete, the DB instance automatically changes to\nRead/Write. The default value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>. Changing this parameter will create a new resource.\n","type":"boolean"},"direction":{"description":"Specifies the direction of data flow.\nChanging this parameter will create a new resource. The options are as follows:\n+ **up**: To the cloud. The destination database must be a database in the current cloud.\n+ **down**: Out of the cloud. The source database must be a database in the current cloud.\n+ **non-dbs**: self-built database.\n","type":"string"},"drsTaskV3Id":{"description":"The resource ID in UUID format.\n","type":"string"},"engineType":{"description":"Specifies the migration engine type.\nChanging this parameter will create a new resource. The options are as follows:\n+ **mysql**:  MySQL migration, MySQL synchronization use.\n+ **mongodb**: Mongodb migration use.\n+ **cloudDataGuard-mysql**: Disaster recovery use.\n+ **gaussdbv5**: GaussDB (for openGauss) synchronization use.\n+ **mysql-to-kafka**: Synchronization from MySQL to Kafka use.\n+ **taurus-to-kafka**: Synchronization from GaussDB(for MySQL) to Kafka use.\n+ **gaussdbv5ha-to-kafka**: Synchronization from GaussDB primary/standby to Kafka use.\n+ **postgresql**: Synchronization from PostgreSQL to PostgreSQL use.\n","type":"string"},"expiredDays":{"description":"Specifies how many days after the task is abnormal, it will automatically\nend. The value ranges from 14 to 100. the default value is <span pulumi-lang-nodejs=\"`14`\" pulumi-lang-dotnet=\"`14`\" pulumi-lang-go=\"`14`\" pulumi-lang-python=\"`14`\" pulumi-lang-yaml=\"`14`\" pulumi-lang-java=\"`14`\">`14`</span>. Changing this parameter will create a new resource.\n","type":"number"},"forceDestroy":{"description":"Specifies whether to forcibly destroy the job even if it is running.\nThe default value is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"limitSpeeds":{"description":"Specifies the migration speed by setting a time period.\nThe default is no speed limit. The maximum length is 3. Structure is documented below.\nChanging this parameter will create a new resource.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDrsTaskV3LimitSpeed:DrsTaskV3LimitSpeed"},"type":"array"},"migrateDefiner":{"description":"Specifies whether to migrate the definers of all source database\nobjects to the <span pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\">`user`</span> of <span pulumi-lang-nodejs=\"`destinationDb`\" pulumi-lang-dotnet=\"`DestinationDb`\" pulumi-lang-go=\"`destinationDb`\" pulumi-lang-python=\"`destination_db`\" pulumi-lang-yaml=\"`destinationDb`\" pulumi-lang-java=\"`destinationDb`\">`destination_db`</span>. The default value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\nChanging this parameter will create a new resource.\n","type":"boolean"},"migrationType":{"description":"Specifies migration type.\nChanging this parameter will create a new resource. The options are as follows:\n+ **FULL_TRANS**: Full migration. Suitable for scenarios where services can be interrupted. It migrates all database\nobjects and data, in a non-system database, to a destination database at a time.\n+ **INCR_TRANS**: Incremental migration. Suitable for migration from an on-premises self-built database to a\ndestination cloud database, or from one cloud database to another in a different region.\n+ **FULL_INCR_TRANS**:  Full+Incremental migration. This allows to migrate data with minimal downtime. After a full\nmigration initializes the destination database, an incremental migration parses logs to ensure data consistency\nbetween the source and destination databases.\n\nThe default value is `FULL_INCR_TRANS`.\n","type":"string"},"multiWrite":{"description":"Specifies whether to enable multi write. It is mandatory when <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span>\nis `cloudDataGuard`. When the disaster recovery type is dual-active disaster recovery, set <span pulumi-lang-nodejs=\"`multiWrite`\" pulumi-lang-dotnet=\"`MultiWrite`\" pulumi-lang-go=\"`multiWrite`\" pulumi-lang-python=\"`multi_write`\" pulumi-lang-yaml=\"`multiWrite`\" pulumi-lang-java=\"`multiWrite`\">`multi_write`</span> to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>,\notherwise to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. The default value is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Changing this parameter will create a new resource.\n","type":"boolean"},"name":{"description":"Specifies the job name. The name consists of 4 to 50 characters, starting with\na letter. Only letters, digits, underscores (\\_) and hyphens (-) are allowed.\n","type":"string"},"netType":{"description":"Specifies the network type.\nChanging this parameter will create a new resource. The options are as follows:\n+ **eip**: suitable for migration from an on-premises or other cloud database to a destination cloud database.\nAn EIP will be automatically bound to the replication instance and released after the replication task is complete.\n+ **vpc**: suitable for migration from one cloud database to another.\n+ **vpn**: suitable for migration from an on-premises self-built database to a destination cloud database,\nor from one cloud database to another in a different region.\n\nThe default value is <span pulumi-lang-nodejs=\"`eip`\" pulumi-lang-dotnet=\"`Eip`\" pulumi-lang-go=\"`eip`\" pulumi-lang-python=\"`eip`\" pulumi-lang-yaml=\"`eip`\" pulumi-lang-java=\"`eip`\">`eip`</span>.\n","type":"string"},"nodeNum":{"type":"number"},"sourceDb":{"$ref":"#/types/opentelekomcloud:index%2FDrsTaskV3SourceDb:DrsTaskV3SourceDb","description":"Specifies the source database configuration.\nThe <span pulumi-lang-nodejs=\"`dbInfo`\" pulumi-lang-dotnet=\"`DbInfo`\" pulumi-lang-go=\"`dbInfo`\" pulumi-lang-python=\"`db_info`\" pulumi-lang-yaml=\"`dbInfo`\" pulumi-lang-java=\"`dbInfo`\">`db_info`</span> object structure of the <span pulumi-lang-nodejs=\"`sourceDb`\" pulumi-lang-dotnet=\"`SourceDb`\" pulumi-lang-go=\"`sourceDb`\" pulumi-lang-python=\"`source_db`\" pulumi-lang-yaml=\"`sourceDb`\" pulumi-lang-java=\"`sourceDb`\">`source_db`</span> is documented below.\nChanging this parameter will create a new resource.\n"},"startTime":{"description":"Specifies the time to start the job. The time format\nis `yyyy-MM-dd HH:mm:ss`. Start immediately by default. Changing this parameter will create a new resource.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value pairs to associate with the DRS job.\nChanging this parameter will create a new resource.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDrsTaskV3Timeouts:DrsTaskV3Timeouts"},"type":{"description":"Specifies the job type. Changing this parameter will create a new\nresource. The options are as follows:\n+ **migration**: Online Migration.\n+ **sync**: Data Synchronization.\n+ **cloudDataGuard**: Disaster Recovery.\n","type":"string"}},"properties":{"action":{"description":"Specifies the action of job. The options are as follows:\n+ **start**: Start the job. Available when job status is **WAITING_FOR_START**.\n\n> It will only take effect when **updating** a job.\n","type":"string"},"createdAt":{"description":"Create time. The format is ISO8601:YYYY-MM-DDThh:mm:ssZ\n","type":"string"},"description":{"description":"Specifies the description of the job, which contain a\nmaximum of 256 characters, and certain special characters (including !<>&'\"\\\\) are not allowed.\n","type":"string"},"destinationDb":{"$ref":"#/types/opentelekomcloud:index%2FDrsTaskV3DestinationDb:DrsTaskV3DestinationDb","description":"Specifies the destination database configuration.\nThe <span pulumi-lang-nodejs=\"`dbInfo`\" pulumi-lang-dotnet=\"`DbInfo`\" pulumi-lang-go=\"`dbInfo`\" pulumi-lang-python=\"`db_info`\" pulumi-lang-yaml=\"`dbInfo`\" pulumi-lang-java=\"`dbInfo`\">`db_info`</span> object structure of the <span pulumi-lang-nodejs=\"`destinationDb`\" pulumi-lang-dotnet=\"`DestinationDb`\" pulumi-lang-go=\"`destinationDb`\" pulumi-lang-python=\"`destination_db`\" pulumi-lang-yaml=\"`destinationDb`\" pulumi-lang-java=\"`destinationDb`\">`destination_db`</span> is documented below.\nChanging this parameter will create a new resource.\n"},"destinationDbReadonly":{"description":"Specifies the destination DB instance as read-only helps\nensure the migration is successful. Once the migration is complete, the DB instance automatically changes to\nRead/Write. The default value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>. Changing this parameter will create a new resource.\n","type":"boolean"},"direction":{"description":"Specifies the direction of data flow.\nChanging this parameter will create a new resource. The options are as follows:\n+ **up**: To the cloud. The destination database must be a database in the current cloud.\n+ **down**: Out of the cloud. The source database must be a database in the current cloud.\n+ **non-dbs**: self-built database.\n","type":"string"},"drsTaskV3Id":{"description":"The resource ID in UUID format.\n","type":"string"},"engineType":{"description":"Specifies the migration engine type.\nChanging this parameter will create a new resource. The options are as follows:\n+ **mysql**:  MySQL migration, MySQL synchronization use.\n+ **mongodb**: Mongodb migration use.\n+ **cloudDataGuard-mysql**: Disaster recovery use.\n+ **gaussdbv5**: GaussDB (for openGauss) synchronization use.\n+ **mysql-to-kafka**: Synchronization from MySQL to Kafka use.\n+ **taurus-to-kafka**: Synchronization from GaussDB(for MySQL) to Kafka use.\n+ **gaussdbv5ha-to-kafka**: Synchronization from GaussDB primary/standby to Kafka use.\n+ **postgresql**: Synchronization from PostgreSQL to PostgreSQL use.\n","type":"string"},"expiredDays":{"description":"Specifies how many days after the task is abnormal, it will automatically\nend. The value ranges from 14 to 100. the default value is <span pulumi-lang-nodejs=\"`14`\" pulumi-lang-dotnet=\"`14`\" pulumi-lang-go=\"`14`\" pulumi-lang-python=\"`14`\" pulumi-lang-yaml=\"`14`\" pulumi-lang-java=\"`14`\">`14`</span>. Changing this parameter will create a new resource.\n","type":"number"},"forceDestroy":{"description":"Specifies whether to forcibly destroy the job even if it is running.\nThe default value is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"limitSpeeds":{"description":"Specifies the migration speed by setting a time period.\nThe default is no speed limit. The maximum length is 3. Structure is documented below.\nChanging this parameter will create a new resource.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDrsTaskV3LimitSpeed:DrsTaskV3LimitSpeed"},"type":"array"},"migrateDefiner":{"description":"Specifies whether to migrate the definers of all source database\nobjects to the <span pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\">`user`</span> of <span pulumi-lang-nodejs=\"`destinationDb`\" pulumi-lang-dotnet=\"`DestinationDb`\" pulumi-lang-go=\"`destinationDb`\" pulumi-lang-python=\"`destination_db`\" pulumi-lang-yaml=\"`destinationDb`\" pulumi-lang-java=\"`destinationDb`\">`destination_db`</span>. The default value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\nChanging this parameter will create a new resource.\n","type":"boolean"},"migrationType":{"description":"Specifies migration type.\nChanging this parameter will create a new resource. The options are as follows:\n+ **FULL_TRANS**: Full migration. Suitable for scenarios where services can be interrupted. It migrates all database\nobjects and data, in a non-system database, to a destination database at a time.\n+ **INCR_TRANS**: Incremental migration. Suitable for migration from an on-premises self-built database to a\ndestination cloud database, or from one cloud database to another in a different region.\n+ **FULL_INCR_TRANS**:  Full+Incremental migration. This allows to migrate data with minimal downtime. After a full\nmigration initializes the destination database, an incremental migration parses logs to ensure data consistency\nbetween the source and destination databases.\n\nThe default value is `FULL_INCR_TRANS`.\n","type":"string"},"multiWrite":{"description":"Specifies whether to enable multi write. It is mandatory when <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span>\nis `cloudDataGuard`. When the disaster recovery type is dual-active disaster recovery, set <span pulumi-lang-nodejs=\"`multiWrite`\" pulumi-lang-dotnet=\"`MultiWrite`\" pulumi-lang-go=\"`multiWrite`\" pulumi-lang-python=\"`multi_write`\" pulumi-lang-yaml=\"`multiWrite`\" pulumi-lang-java=\"`multiWrite`\">`multi_write`</span> to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>,\notherwise to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. The default value is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Changing this parameter will create a new resource.\n","type":"boolean"},"name":{"description":"Specifies the job name. The name consists of 4 to 50 characters, starting with\na letter. Only letters, digits, underscores (\\_) and hyphens (-) are allowed.\n","type":"string"},"netType":{"description":"Specifies the network type.\nChanging this parameter will create a new resource. The options are as follows:\n+ **eip**: suitable for migration from an on-premises or other cloud database to a destination cloud database.\nAn EIP will be automatically bound to the replication instance and released after the replication task is complete.\n+ **vpc**: suitable for migration from one cloud database to another.\n+ **vpn**: suitable for migration from an on-premises self-built database to a destination cloud database,\nor from one cloud database to another in a different region.\n\nThe default value is <span pulumi-lang-nodejs=\"`eip`\" pulumi-lang-dotnet=\"`Eip`\" pulumi-lang-go=\"`eip`\" pulumi-lang-python=\"`eip`\" pulumi-lang-yaml=\"`eip`\" pulumi-lang-java=\"`eip`\">`eip`</span>.\n","type":"string"},"nodeNum":{"type":"number"},"privateIp":{"description":"Private IP.\n","type":"string"},"publicIp":{"description":"Public IP.\n","type":"string"},"region":{"description":"The region in which to create the resource.\n","type":"string"},"securityGroupId":{"description":"The security group ID to which the DRS instance belongs.\n","type":"string"},"sourceDb":{"$ref":"#/types/opentelekomcloud:index%2FDrsTaskV3SourceDb:DrsTaskV3SourceDb","description":"Specifies the source database configuration.\nThe <span pulumi-lang-nodejs=\"`dbInfo`\" pulumi-lang-dotnet=\"`DbInfo`\" pulumi-lang-go=\"`dbInfo`\" pulumi-lang-python=\"`db_info`\" pulumi-lang-yaml=\"`dbInfo`\" pulumi-lang-java=\"`dbInfo`\">`db_info`</span> object structure of the <span pulumi-lang-nodejs=\"`sourceDb`\" pulumi-lang-dotnet=\"`SourceDb`\" pulumi-lang-go=\"`sourceDb`\" pulumi-lang-python=\"`source_db`\" pulumi-lang-yaml=\"`sourceDb`\" pulumi-lang-java=\"`sourceDb`\">`source_db`</span> is documented below.\nChanging this parameter will create a new resource.\n"},"startTime":{"description":"Specifies the time to start the job. The time format\nis `yyyy-MM-dd HH:mm:ss`. Start immediately by default. Changing this parameter will create a new resource.\n","type":"string"},"status":{"description":"Status.\n","type":"string"},"subnetId":{"description":"The subnet ID to which the DRS instance belongs.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value pairs to associate with the DRS job.\nChanging this parameter will create a new resource.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDrsTaskV3Timeouts:DrsTaskV3Timeouts"},"type":{"description":"Specifies the job type. Changing this parameter will create a new\nresource. The options are as follows:\n+ **migration**: Online Migration.\n+ **sync**: Data Synchronization.\n+ **cloudDataGuard**: Disaster Recovery.\n","type":"string"},"vpcId":{"description":"The VPC ID to which the DRS instance belongs.\n","type":"string"}},"required":["createdAt","destinationDb","direction","drsTaskV3Id","engineType","name","privateIp","publicIp","region","securityGroupId","sourceDb","status","subnetId","type","vpcId"],"requiredInputs":["destinationDb","direction","engineType","sourceDb","type"],"stateInputs":{"description":"Input properties used for looking up and filtering DrsTaskV3 resources.\n","properties":{"action":{"description":"Specifies the action of job. The options are as follows:\n+ **start**: Start the job. Available when job status is **WAITING_FOR_START**.\n\n> It will only take effect when **updating** a job.\n","type":"string"},"createdAt":{"description":"Create time. The format is ISO8601:YYYY-MM-DDThh:mm:ssZ\n","type":"string"},"description":{"description":"Specifies the description of the job, which contain a\nmaximum of 256 characters, and certain special characters (including !<>&'\"\\\\) are not allowed.\n","type":"string"},"destinationDb":{"$ref":"#/types/opentelekomcloud:index%2FDrsTaskV3DestinationDb:DrsTaskV3DestinationDb","description":"Specifies the destination database configuration.\nThe <span pulumi-lang-nodejs=\"`dbInfo`\" pulumi-lang-dotnet=\"`DbInfo`\" pulumi-lang-go=\"`dbInfo`\" pulumi-lang-python=\"`db_info`\" pulumi-lang-yaml=\"`dbInfo`\" pulumi-lang-java=\"`dbInfo`\">`db_info`</span> object structure of the <span pulumi-lang-nodejs=\"`destinationDb`\" pulumi-lang-dotnet=\"`DestinationDb`\" pulumi-lang-go=\"`destinationDb`\" pulumi-lang-python=\"`destination_db`\" pulumi-lang-yaml=\"`destinationDb`\" pulumi-lang-java=\"`destinationDb`\">`destination_db`</span> is documented below.\nChanging this parameter will create a new resource.\n"},"destinationDbReadonly":{"description":"Specifies the destination DB instance as read-only helps\nensure the migration is successful. Once the migration is complete, the DB instance automatically changes to\nRead/Write. The default value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>. Changing this parameter will create a new resource.\n","type":"boolean"},"direction":{"description":"Specifies the direction of data flow.\nChanging this parameter will create a new resource. The options are as follows:\n+ **up**: To the cloud. The destination database must be a database in the current cloud.\n+ **down**: Out of the cloud. The source database must be a database in the current cloud.\n+ **non-dbs**: self-built database.\n","type":"string"},"drsTaskV3Id":{"description":"The resource ID in UUID format.\n","type":"string"},"engineType":{"description":"Specifies the migration engine type.\nChanging this parameter will create a new resource. The options are as follows:\n+ **mysql**:  MySQL migration, MySQL synchronization use.\n+ **mongodb**: Mongodb migration use.\n+ **cloudDataGuard-mysql**: Disaster recovery use.\n+ **gaussdbv5**: GaussDB (for openGauss) synchronization use.\n+ **mysql-to-kafka**: Synchronization from MySQL to Kafka use.\n+ **taurus-to-kafka**: Synchronization from GaussDB(for MySQL) to Kafka use.\n+ **gaussdbv5ha-to-kafka**: Synchronization from GaussDB primary/standby to Kafka use.\n+ **postgresql**: Synchronization from PostgreSQL to PostgreSQL use.\n","type":"string"},"expiredDays":{"description":"Specifies how many days after the task is abnormal, it will automatically\nend. The value ranges from 14 to 100. the default value is <span pulumi-lang-nodejs=\"`14`\" pulumi-lang-dotnet=\"`14`\" pulumi-lang-go=\"`14`\" pulumi-lang-python=\"`14`\" pulumi-lang-yaml=\"`14`\" pulumi-lang-java=\"`14`\">`14`</span>. Changing this parameter will create a new resource.\n","type":"number"},"forceDestroy":{"description":"Specifies whether to forcibly destroy the job even if it is running.\nThe default value is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"limitSpeeds":{"description":"Specifies the migration speed by setting a time period.\nThe default is no speed limit. The maximum length is 3. Structure is documented below.\nChanging this parameter will create a new resource.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDrsTaskV3LimitSpeed:DrsTaskV3LimitSpeed"},"type":"array"},"migrateDefiner":{"description":"Specifies whether to migrate the definers of all source database\nobjects to the <span pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\">`user`</span> of <span pulumi-lang-nodejs=\"`destinationDb`\" pulumi-lang-dotnet=\"`DestinationDb`\" pulumi-lang-go=\"`destinationDb`\" pulumi-lang-python=\"`destination_db`\" pulumi-lang-yaml=\"`destinationDb`\" pulumi-lang-java=\"`destinationDb`\">`destination_db`</span>. The default value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\nChanging this parameter will create a new resource.\n","type":"boolean"},"migrationType":{"description":"Specifies migration type.\nChanging this parameter will create a new resource. The options are as follows:\n+ **FULL_TRANS**: Full migration. Suitable for scenarios where services can be interrupted. It migrates all database\nobjects and data, in a non-system database, to a destination database at a time.\n+ **INCR_TRANS**: Incremental migration. Suitable for migration from an on-premises self-built database to a\ndestination cloud database, or from one cloud database to another in a different region.\n+ **FULL_INCR_TRANS**:  Full+Incremental migration. This allows to migrate data with minimal downtime. After a full\nmigration initializes the destination database, an incremental migration parses logs to ensure data consistency\nbetween the source and destination databases.\n\nThe default value is `FULL_INCR_TRANS`.\n","type":"string"},"multiWrite":{"description":"Specifies whether to enable multi write. It is mandatory when <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span>\nis `cloudDataGuard`. When the disaster recovery type is dual-active disaster recovery, set <span pulumi-lang-nodejs=\"`multiWrite`\" pulumi-lang-dotnet=\"`MultiWrite`\" pulumi-lang-go=\"`multiWrite`\" pulumi-lang-python=\"`multi_write`\" pulumi-lang-yaml=\"`multiWrite`\" pulumi-lang-java=\"`multiWrite`\">`multi_write`</span> to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>,\notherwise to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. The default value is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Changing this parameter will create a new resource.\n","type":"boolean"},"name":{"description":"Specifies the job name. The name consists of 4 to 50 characters, starting with\na letter. Only letters, digits, underscores (\\_) and hyphens (-) are allowed.\n","type":"string"},"netType":{"description":"Specifies the network type.\nChanging this parameter will create a new resource. The options are as follows:\n+ **eip**: suitable for migration from an on-premises or other cloud database to a destination cloud database.\nAn EIP will be automatically bound to the replication instance and released after the replication task is complete.\n+ **vpc**: suitable for migration from one cloud database to another.\n+ **vpn**: suitable for migration from an on-premises self-built database to a destination cloud database,\nor from one cloud database to another in a different region.\n\nThe default value is <span pulumi-lang-nodejs=\"`eip`\" pulumi-lang-dotnet=\"`Eip`\" pulumi-lang-go=\"`eip`\" pulumi-lang-python=\"`eip`\" pulumi-lang-yaml=\"`eip`\" pulumi-lang-java=\"`eip`\">`eip`</span>.\n","type":"string"},"nodeNum":{"type":"number"},"privateIp":{"description":"Private IP.\n","type":"string"},"publicIp":{"description":"Public IP.\n","type":"string"},"region":{"description":"The region in which to create the resource.\n","type":"string"},"securityGroupId":{"description":"The security group ID to which the DRS instance belongs.\n","type":"string"},"sourceDb":{"$ref":"#/types/opentelekomcloud:index%2FDrsTaskV3SourceDb:DrsTaskV3SourceDb","description":"Specifies the source database configuration.\nThe <span pulumi-lang-nodejs=\"`dbInfo`\" pulumi-lang-dotnet=\"`DbInfo`\" pulumi-lang-go=\"`dbInfo`\" pulumi-lang-python=\"`db_info`\" pulumi-lang-yaml=\"`dbInfo`\" pulumi-lang-java=\"`dbInfo`\">`db_info`</span> object structure of the <span pulumi-lang-nodejs=\"`sourceDb`\" pulumi-lang-dotnet=\"`SourceDb`\" pulumi-lang-go=\"`sourceDb`\" pulumi-lang-python=\"`source_db`\" pulumi-lang-yaml=\"`sourceDb`\" pulumi-lang-java=\"`sourceDb`\">`source_db`</span> is documented below.\nChanging this parameter will create a new resource.\n"},"startTime":{"description":"Specifies the time to start the job. The time format\nis `yyyy-MM-dd HH:mm:ss`. Start immediately by default. Changing this parameter will create a new resource.\n","type":"string"},"status":{"description":"Status.\n","type":"string"},"subnetId":{"description":"The subnet ID to which the DRS instance belongs.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value pairs to associate with the DRS job.\nChanging this parameter will create a new resource.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDrsTaskV3Timeouts:DrsTaskV3Timeouts"},"type":{"description":"Specifies the job type. Changing this parameter will create a new\nresource. The options are as follows:\n+ **migration**: Online Migration.\n+ **sync**: Data Synchronization.\n+ **cloudDataGuard**: Disaster Recovery.\n","type":"string"},"vpcId":{"description":"The VPC ID to which the DRS instance belongs.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/dwsClusterV1:DwsClusterV1":{"description":"Up-to-date reference of API arguments for DWS cluster you can get at\n[documentation portal](https://docs.otc.t-systems.com/data-warehouse-service/api-ref/api_description/cluster_management_apis)\n\nManages Cluster in the Data Warehouse Service.\n\n## Example Usage\n\n### Dws Cluster Example\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst availabilityZone = config.requireObject<any>(\"availabilityZone\");\nconst networkId = config.requireObject<any>(\"networkId\");\nconst vpcId = config.requireObject<any>(\"vpcId\");\nconst securityGroupId = config.requireObject<any>(\"securityGroupId\");\nconst cluster1 = new opentelekomcloud.DwsClusterV1(\"cluster_1\", {\n    name: \"my_dws_cluster\",\n    userName: \"dbadmin\",\n    userPwd: \"#dbadmin123\",\n    nodeType: \"dws.m3.xlarge\",\n    numberOfNode: 3,\n    networkId: networkId,\n    securityGroupId: securityGroupId,\n    vpcId: vpcId,\n    availabilityZone: availabilityZone,\n    port: 8899,\n    publicIp: {\n        publicBindType: \"auto_assign\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\navailability_zone = config.require_object(\"availabilityZone\")\nnetwork_id = config.require_object(\"networkId\")\nvpc_id = config.require_object(\"vpcId\")\nsecurity_group_id = config.require_object(\"securityGroupId\")\ncluster1 = opentelekomcloud.DwsClusterV1(\"cluster_1\",\n    name=\"my_dws_cluster\",\n    user_name=\"dbadmin\",\n    user_pwd=\"#dbadmin123\",\n    node_type=\"dws.m3.xlarge\",\n    number_of_node=3,\n    network_id=network_id,\n    security_group_id=security_group_id,\n    vpc_id=vpc_id,\n    availability_zone=availability_zone,\n    port=8899,\n    public_ip={\n        \"public_bind_type\": \"auto_assign\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var availabilityZone = config.RequireObject<dynamic>(\"availabilityZone\");\n    var networkId = config.RequireObject<dynamic>(\"networkId\");\n    var vpcId = config.RequireObject<dynamic>(\"vpcId\");\n    var securityGroupId = config.RequireObject<dynamic>(\"securityGroupId\");\n    var cluster1 = new Opentelekomcloud.DwsClusterV1(\"cluster_1\", new()\n    {\n        Name = \"my_dws_cluster\",\n        UserName = \"dbadmin\",\n        UserPwd = \"#dbadmin123\",\n        NodeType = \"dws.m3.xlarge\",\n        NumberOfNode = 3,\n        NetworkId = networkId,\n        SecurityGroupId = securityGroupId,\n        VpcId = vpcId,\n        AvailabilityZone = availabilityZone,\n        Port = 8899,\n        PublicIp = new Opentelekomcloud.Inputs.DwsClusterV1PublicIpArgs\n        {\n            PublicBindType = \"auto_assign\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tavailabilityZone := cfg.RequireObject(\"availabilityZone\")\n\t\tnetworkId := cfg.RequireObject(\"networkId\")\n\t\tvpcId := cfg.RequireObject(\"vpcId\")\n\t\tsecurityGroupId := cfg.RequireObject(\"securityGroupId\")\n\t\t_, err := opentelekomcloud.NewDwsClusterV1(ctx, \"cluster_1\", &opentelekomcloud.DwsClusterV1Args{\n\t\t\tName:             pulumi.String(\"my_dws_cluster\"),\n\t\t\tUserName:         pulumi.String(\"dbadmin\"),\n\t\t\tUserPwd:          pulumi.String(\"#dbadmin123\"),\n\t\t\tNodeType:         pulumi.String(\"dws.m3.xlarge\"),\n\t\t\tNumberOfNode:     pulumi.Float64(3),\n\t\t\tNetworkId:        pulumi.Any(networkId),\n\t\t\tSecurityGroupId:  pulumi.Any(securityGroupId),\n\t\t\tVpcId:            pulumi.Any(vpcId),\n\t\t\tAvailabilityZone: pulumi.Any(availabilityZone),\n\t\t\tPort:             pulumi.Float64(8899),\n\t\t\tPublicIp: &opentelekomcloud.DwsClusterV1PublicIpArgs{\n\t\t\t\tPublicBindType: pulumi.String(\"auto_assign\"),\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.opentelekomcloud.DwsClusterV1;\nimport com.pulumi.opentelekomcloud.DwsClusterV1Args;\nimport com.pulumi.opentelekomcloud.inputs.DwsClusterV1PublicIpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] 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\");\n        final var networkId = config.get(\"networkId\");\n        final var vpcId = config.get(\"vpcId\");\n        final var securityGroupId = config.get(\"securityGroupId\");\n        var cluster1 = new DwsClusterV1(\"cluster1\", DwsClusterV1Args.builder()\n            .name(\"my_dws_cluster\")\n            .userName(\"dbadmin\")\n            .userPwd(\"#dbadmin123\")\n            .nodeType(\"dws.m3.xlarge\")\n            .numberOfNode(3.0)\n            .networkId(networkId)\n            .securityGroupId(securityGroupId)\n            .vpcId(vpcId)\n            .availabilityZone(availabilityZone)\n            .port(8899.0)\n            .publicIp(DwsClusterV1PublicIpArgs.builder()\n                .publicBindType(\"auto_assign\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  availabilityZone:\n    type: dynamic\n  networkId:\n    type: dynamic\n  vpcId:\n    type: dynamic\n  securityGroupId:\n    type: dynamic\nresources:\n  cluster1:\n    type: opentelekomcloud:DwsClusterV1\n    name: cluster_1\n    properties:\n      name: my_dws_cluster\n      userName: dbadmin\n      userPwd: '#dbadmin123'\n      nodeType: dws.m3.xlarge\n      numberOfNode: 3\n      networkId: ${networkId}\n      securityGroupId: ${securityGroupId}\n      vpcId: ${vpcId}\n      availabilityZone: ${availabilityZone}\n      port: 8899\n      publicIp:\n        publicBindType: auto_assign\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCluster can be imported using the following format:\n\n```sh\n$ pulumi import opentelekomcloud:index/dwsClusterV1:DwsClusterV1 cluster_1 4ca46bf1-5c61-48ff-b4f3-0ad4e5e3ba90\n```\n\nNote that the imported state may not be identical to your resource definition, due to some attributes missing from the\n\nAPI response, security or some other reason. The missing attributes include: `user_pwd`, `number_of_cn`.\n\nIt is generally recommended running `pulumi preview` after importing a cluster.\n\nYou can then decide if changes should be applied to the cluster, or the resource definition\n\nshould be updated to align with the cluster. Also you can ignore changes as below.\n\nresource \"opentelekomcloud_dws_cluster_v1\" \"cluster_1\" {\n\n    ...\n\n  lifecycle {\n\n    ignore_changes = [\n\n      user_pwd, number_of_cn,\n\n    ]\n\n  }\n\n}\n\n","inputProperties":{"availabilityZone":{"description":"AZ in a cluster.\n","type":"string"},"dwsClusterV1Id":{"description":"Cluster ID\n","type":"string"},"endpoints":{"description":"View the private network connection information about the cluster. Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDwsClusterV1Endpoint:DwsClusterV1Endpoint"},"type":"array"},"keepLastManualSnapshot":{"type":"number"},"name":{"description":"Cluster name, which must be unique and contains 4 to 64 characters, which\nconsist of letters, digits, hyphens(-), or underscores(_) only and must start with a letter.\n","type":"string"},"networkId":{"description":"Network ID, which is used for configuring cluster network.\n","type":"string"},"nodeType":{"description":"Node type.\n","type":"string"},"numberOfCn":{"type":"number"},"numberOfNode":{"description":"Number of nodes in a cluster. The value ranges from 3 to 32. When expanding,\nadd at least 3 nodes.\n","type":"number"},"port":{"description":"Service port of a cluster (8000 to 10000). The default value is 8000.\n","type":"number"},"publicEndpoints":{"description":"Public network connection information about the cluster. If the value is not specified, the\npublic network connection information is not used by default Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDwsClusterV1PublicEndpoint:DwsClusterV1PublicEndpoint"},"type":"array"},"publicIp":{"$ref":"#/types/opentelekomcloud:index%2FDwsClusterV1PublicIp:DwsClusterV1PublicIp","description":"A nested object resource Structure is documented below.\n"},"securityGroupId":{"description":"ID of a security group. The ID is used for configuring cluster\nnetwork.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDwsClusterV1Timeouts:DwsClusterV1Timeouts"},"userName":{"description":"Administrator username for logging in to a data warehouse cluster The\nadministrator username must:  Consist of lowercase letters, digits, or underscores. Start with a lowercase letter or\nan underscore. Contain 1 to 63 characters. Cannot be a keyword of the DWS database.\n","type":"string"},"userPwd":{"description":"Administrator password for logging in to a data warehouse cluster A password\nmust conform to the following rules:  Contains 8 to 32 characters. Cannot be the same as the username or the username\nwritten in reverse order. Contains three types of the following:\nLowercase letters Uppercase letters Digits Special characters\n~!@#%^&*()-_=+|[{}];:,<.>/?\n","secret":true,"type":"string"},"vpcId":{"description":"VPC ID, which is used for configuring cluster network.\n","type":"string"}},"properties":{"availabilityZone":{"description":"AZ in a cluster.\n","type":"string"},"created":{"description":"Cluster creation time. The format is ISO8601:YYYY-MM-DDThh:mm:ssZ\n","type":"string"},"dwsClusterV1Id":{"description":"Cluster ID\n","type":"string"},"endpoints":{"description":"View the private network connection information about the cluster. Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDwsClusterV1Endpoint:DwsClusterV1Endpoint"},"type":"array"},"keepLastManualSnapshot":{"type":"number"},"name":{"description":"Cluster name, which must be unique and contains 4 to 64 characters, which\nconsist of letters, digits, hyphens(-), or underscores(_) only and must start with a letter.\n","type":"string"},"networkId":{"description":"Network ID, which is used for configuring cluster network.\n","type":"string"},"nodeType":{"description":"Node type.\n","type":"string"},"numberOfCn":{"type":"number"},"numberOfNode":{"description":"Number of nodes in a cluster. The value ranges from 3 to 32. When expanding,\nadd at least 3 nodes.\n","type":"number"},"port":{"description":"Service port of a cluster (8000 to 10000). The default value is 8000.\n","type":"number"},"privateIps":{"description":"List of private network IP address.\n","items":{"type":"string"},"type":"array"},"publicEndpoints":{"description":"Public network connection information about the cluster. If the value is not specified, the\npublic network connection information is not used by default Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDwsClusterV1PublicEndpoint:DwsClusterV1PublicEndpoint"},"type":"array"},"publicIp":{"$ref":"#/types/opentelekomcloud:index%2FDwsClusterV1PublicIp:DwsClusterV1PublicIp","description":"A nested object resource Structure is documented below.\n"},"recentEvent":{"description":"The recent event number.\n","type":"number"},"securityGroupId":{"description":"ID of a security group. The ID is used for configuring cluster\nnetwork.\n","type":"string"},"status":{"description":"Cluster status, which can be one of the following:  CREATING AVAILABLE UNAVAILABLE CREATION FAILED.\n","type":"string"},"subStatus":{"description":"Sub-status of clusters in the AVAILABLE state. The value can be one of the following:  NORMAL READONLY\nREDISTRIBUTING REDISTRIBUTION-FAILURE UNBALANCED UNBALANCED | READONLY DEGRADED DEGRADED | READONLY DEGRADED |\nUNBALANCED UNBALANCED | REDISTRIBUTING UNBALANCED | REDISTRIBUTION-FAILURE READONLY | REDISTRIBUTION-FAILURE\nUNBALANCED | READONLY | REDISTRIBUTION-FAILURE DEGRADED | REDISTRIBUTION-FAILURE DEGRADED | UNBALANCED |\nREDISTRIBUTION-FAILURE DEGRADED | UNBALANCED | READONLY | REDISTRIBUTION-FAILURE DEGRADED | UNBALANCED | READONLY\n","type":"string"},"taskStatus":{"description":"Cluster management task. The value can be one of the following:\nRESTORING SNAPSHOTTING GROWING REBOOTING SETTING_CONFIGURATION CONFIGURING_EXT_DATASOURCE DELETING_EXT_DATASOURCE\nREBOOT_FAILURE RESIZE_FAILURE\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDwsClusterV1Timeouts:DwsClusterV1Timeouts"},"updated":{"description":"Last modification time of a cluster. The format is ISO8601:YYYY-MM-DDThh:mm:ssZ\n","type":"string"},"userName":{"description":"Administrator username for logging in to a data warehouse cluster The\nadministrator username must:  Consist of lowercase letters, digits, or underscores. Start with a lowercase letter or\nan underscore. Contain 1 to 63 characters. Cannot be a keyword of the DWS database.\n","type":"string"},"userPwd":{"description":"Administrator password for logging in to a data warehouse cluster A password\nmust conform to the following rules:  Contains 8 to 32 characters. Cannot be the same as the username or the username\nwritten in reverse order. Contains three types of the following:\nLowercase letters Uppercase letters Digits Special characters\n~!@#%^&*()-_=+|[{}];:,<.>/?\n","secret":true,"type":"string"},"version":{"description":"Data warehouse version.\n","type":"string"},"vpcId":{"description":"VPC ID, which is used for configuring cluster network.\n","type":"string"}},"required":["availabilityZone","created","dwsClusterV1Id","keepLastManualSnapshot","name","networkId","nodeType","numberOfNode","port","privateIps","recentEvent","securityGroupId","status","subStatus","taskStatus","updated","userName","userPwd","version","vpcId"],"requiredInputs":["networkId","nodeType","numberOfNode","securityGroupId","userName","userPwd","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering DwsClusterV1 resources.\n","properties":{"availabilityZone":{"description":"AZ in a cluster.\n","type":"string"},"created":{"description":"Cluster creation time. The format is ISO8601:YYYY-MM-DDThh:mm:ssZ\n","type":"string"},"dwsClusterV1Id":{"description":"Cluster ID\n","type":"string"},"endpoints":{"description":"View the private network connection information about the cluster. Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDwsClusterV1Endpoint:DwsClusterV1Endpoint"},"type":"array"},"keepLastManualSnapshot":{"type":"number"},"name":{"description":"Cluster name, which must be unique and contains 4 to 64 characters, which\nconsist of letters, digits, hyphens(-), or underscores(_) only and must start with a letter.\n","type":"string"},"networkId":{"description":"Network ID, which is used for configuring cluster network.\n","type":"string"},"nodeType":{"description":"Node type.\n","type":"string"},"numberOfCn":{"type":"number"},"numberOfNode":{"description":"Number of nodes in a cluster. The value ranges from 3 to 32. When expanding,\nadd at least 3 nodes.\n","type":"number"},"port":{"description":"Service port of a cluster (8000 to 10000). The default value is 8000.\n","type":"number"},"privateIps":{"description":"List of private network IP address.\n","items":{"type":"string"},"type":"array"},"publicEndpoints":{"description":"Public network connection information about the cluster. If the value is not specified, the\npublic network connection information is not used by default Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FDwsClusterV1PublicEndpoint:DwsClusterV1PublicEndpoint"},"type":"array"},"publicIp":{"$ref":"#/types/opentelekomcloud:index%2FDwsClusterV1PublicIp:DwsClusterV1PublicIp","description":"A nested object resource Structure is documented below.\n"},"recentEvent":{"description":"The recent event number.\n","type":"number"},"securityGroupId":{"description":"ID of a security group. The ID is used for configuring cluster\nnetwork.\n","type":"string"},"status":{"description":"Cluster status, which can be one of the following:  CREATING AVAILABLE UNAVAILABLE CREATION FAILED.\n","type":"string"},"subStatus":{"description":"Sub-status of clusters in the AVAILABLE state. The value can be one of the following:  NORMAL READONLY\nREDISTRIBUTING REDISTRIBUTION-FAILURE UNBALANCED UNBALANCED | READONLY DEGRADED DEGRADED | READONLY DEGRADED |\nUNBALANCED UNBALANCED | REDISTRIBUTING UNBALANCED | REDISTRIBUTION-FAILURE READONLY | REDISTRIBUTION-FAILURE\nUNBALANCED | READONLY | REDISTRIBUTION-FAILURE DEGRADED | REDISTRIBUTION-FAILURE DEGRADED | UNBALANCED |\nREDISTRIBUTION-FAILURE DEGRADED | UNBALANCED | READONLY | REDISTRIBUTION-FAILURE DEGRADED | UNBALANCED | READONLY\n","type":"string"},"taskStatus":{"description":"Cluster management task. The value can be one of the following:\nRESTORING SNAPSHOTTING GROWING REBOOTING SETTING_CONFIGURATION CONFIGURING_EXT_DATASOURCE DELETING_EXT_DATASOURCE\nREBOOT_FAILURE RESIZE_FAILURE\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FDwsClusterV1Timeouts:DwsClusterV1Timeouts"},"updated":{"description":"Last modification time of a cluster. The format is ISO8601:YYYY-MM-DDThh:mm:ssZ\n","type":"string"},"userName":{"description":"Administrator username for logging in to a data warehouse cluster The\nadministrator username must:  Consist of lowercase letters, digits, or underscores. Start with a lowercase letter or\nan underscore. Contain 1 to 63 characters. Cannot be a keyword of the DWS database.\n","type":"string"},"userPwd":{"description":"Administrator password for logging in to a data warehouse cluster A password\nmust conform to the following rules:  Contains 8 to 32 characters. Cannot be the same as the username or the username\nwritten in reverse order. Contains three types of the following:\nLowercase letters Uppercase letters Digits Special characters\n~!@#%^&*()-_=+|[{}];:,<.>/?\n","secret":true,"type":"string"},"version":{"description":"Data warehouse version.\n","type":"string"},"vpcId":{"description":"VPC ID, which is used for configuring cluster network.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/ecsInstanceV1:EcsInstanceV1":{"description":"Up-to-date reference of API arguments for ECS instance you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-cloud-server/api-ref/apis_recommended/lifecycle_management)\n\nManages a V1 ECS instance resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Basic Instance\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst basic = new opentelekomcloud.EcsInstanceV1(\"basic\", {\n    name: \"server_1\",\n    imageId: \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavor: \"s2.large.2\",\n    vpcId: \"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\",\n    nics: [{\n        networkId: \"55534eaa-533a-419d-9b40-ec427ea7195a\",\n    }],\n    availabilityZone: \"eu-de-01\",\n    keyName: \"KeyPair-test\",\n    tags: {\n        muh: \"kuh\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nbasic = opentelekomcloud.EcsInstanceV1(\"basic\",\n    name=\"server_1\",\n    image_id=\"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavor=\"s2.large.2\",\n    vpc_id=\"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\",\n    nics=[{\n        \"network_id\": \"55534eaa-533a-419d-9b40-ec427ea7195a\",\n    }],\n    availability_zone=\"eu-de-01\",\n    key_name=\"KeyPair-test\",\n    tags={\n        \"muh\": \"kuh\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var basic = new Opentelekomcloud.EcsInstanceV1(\"basic\", new()\n    {\n        Name = \"server_1\",\n        ImageId = \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n        Flavor = \"s2.large.2\",\n        VpcId = \"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\",\n        Nics = new[]\n        {\n            new Opentelekomcloud.Inputs.EcsInstanceV1NicArgs\n            {\n                NetworkId = \"55534eaa-533a-419d-9b40-ec427ea7195a\",\n            },\n        },\n        AvailabilityZone = \"eu-de-01\",\n        KeyName = \"KeyPair-test\",\n        Tags = \n        {\n            { \"muh\", \"kuh\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewEcsInstanceV1(ctx, \"basic\", &opentelekomcloud.EcsInstanceV1Args{\n\t\t\tName:    pulumi.String(\"server_1\"),\n\t\t\tImageId: pulumi.String(\"ad091b52-742f-469e-8f3c-fd81cadf0743\"),\n\t\t\tFlavor:  pulumi.String(\"s2.large.2\"),\n\t\t\tVpcId:   pulumi.String(\"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\"),\n\t\t\tNics: opentelekomcloud.EcsInstanceV1NicArray{\n\t\t\t\t&opentelekomcloud.EcsInstanceV1NicArgs{\n\t\t\t\t\tNetworkId: pulumi.String(\"55534eaa-533a-419d-9b40-ec427ea7195a\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAvailabilityZone: pulumi.String(\"eu-de-01\"),\n\t\t\tKeyName:          pulumi.String(\"KeyPair-test\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"muh\": pulumi.String(\"kuh\"),\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.opentelekomcloud.EcsInstanceV1;\nimport com.pulumi.opentelekomcloud.EcsInstanceV1Args;\nimport com.pulumi.opentelekomcloud.inputs.EcsInstanceV1NicArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var basic = new EcsInstanceV1(\"basic\", EcsInstanceV1Args.builder()\n            .name(\"server_1\")\n            .imageId(\"ad091b52-742f-469e-8f3c-fd81cadf0743\")\n            .flavor(\"s2.large.2\")\n            .vpcId(\"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\")\n            .nics(EcsInstanceV1NicArgs.builder()\n                .networkId(\"55534eaa-533a-419d-9b40-ec427ea7195a\")\n                .build())\n            .availabilityZone(\"eu-de-01\")\n            .keyName(\"KeyPair-test\")\n            .tags(Map.of(\"muh\", \"kuh\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  basic:\n    type: opentelekomcloud:EcsInstanceV1\n    properties:\n      name: server_1\n      imageId: ad091b52-742f-469e-8f3c-fd81cadf0743\n      flavor: s2.large.2\n      vpcId: 8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\n      nics:\n        - networkId: 55534eaa-533a-419d-9b40-ec427ea7195a\n      availabilityZone: eu-de-01\n      keyName: KeyPair-test\n      tags:\n        muh: kuh\n```\n<!--End PulumiCodeChooser -->\n\n### Basic Instance with security group\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst secgroup1 = new opentelekomcloud.ComputeSecgroupV2(\"secgroup_1\", {name: \"ecs_secgroup\"});\nconst basic = new opentelekomcloud.EcsInstanceV1(\"basic\", {\n    name: \"server_1\",\n    imageId: \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavor: \"s2.large.2\",\n    vpcId: \"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\",\n    nics: [{\n        networkId: \"55534eaa-533a-419d-9b40-ec427ea7195a\",\n    }],\n    securityGroups: [secgroup1.computeSecgroupV2Id],\n    availabilityZone: \"eu-de-01\",\n    keyName: \"KeyPair-test\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nsecgroup1 = opentelekomcloud.ComputeSecgroupV2(\"secgroup_1\", name=\"ecs_secgroup\")\nbasic = opentelekomcloud.EcsInstanceV1(\"basic\",\n    name=\"server_1\",\n    image_id=\"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavor=\"s2.large.2\",\n    vpc_id=\"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\",\n    nics=[{\n        \"network_id\": \"55534eaa-533a-419d-9b40-ec427ea7195a\",\n    }],\n    security_groups=[secgroup1.compute_secgroup_v2_id],\n    availability_zone=\"eu-de-01\",\n    key_name=\"KeyPair-test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var secgroup1 = new Opentelekomcloud.ComputeSecgroupV2(\"secgroup_1\", new()\n    {\n        Name = \"ecs_secgroup\",\n    });\n\n    var basic = new Opentelekomcloud.EcsInstanceV1(\"basic\", new()\n    {\n        Name = \"server_1\",\n        ImageId = \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n        Flavor = \"s2.large.2\",\n        VpcId = \"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\",\n        Nics = new[]\n        {\n            new Opentelekomcloud.Inputs.EcsInstanceV1NicArgs\n            {\n                NetworkId = \"55534eaa-533a-419d-9b40-ec427ea7195a\",\n            },\n        },\n        SecurityGroups = new[]\n        {\n            secgroup1.ComputeSecgroupV2Id,\n        },\n        AvailabilityZone = \"eu-de-01\",\n        KeyName = \"KeyPair-test\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsecgroup1, err := opentelekomcloud.NewComputeSecgroupV2(ctx, \"secgroup_1\", &opentelekomcloud.ComputeSecgroupV2Args{\n\t\t\tName: pulumi.String(\"ecs_secgroup\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewEcsInstanceV1(ctx, \"basic\", &opentelekomcloud.EcsInstanceV1Args{\n\t\t\tName:    pulumi.String(\"server_1\"),\n\t\t\tImageId: pulumi.String(\"ad091b52-742f-469e-8f3c-fd81cadf0743\"),\n\t\t\tFlavor:  pulumi.String(\"s2.large.2\"),\n\t\t\tVpcId:   pulumi.String(\"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\"),\n\t\t\tNics: opentelekomcloud.EcsInstanceV1NicArray{\n\t\t\t\t&opentelekomcloud.EcsInstanceV1NicArgs{\n\t\t\t\t\tNetworkId: pulumi.String(\"55534eaa-533a-419d-9b40-ec427ea7195a\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tsecgroup1.ComputeSecgroupV2Id,\n\t\t\t},\n\t\t\tAvailabilityZone: pulumi.String(\"eu-de-01\"),\n\t\t\tKeyName:          pulumi.String(\"KeyPair-test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ComputeSecgroupV2;\nimport com.pulumi.opentelekomcloud.ComputeSecgroupV2Args;\nimport com.pulumi.opentelekomcloud.EcsInstanceV1;\nimport com.pulumi.opentelekomcloud.EcsInstanceV1Args;\nimport com.pulumi.opentelekomcloud.inputs.EcsInstanceV1NicArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var secgroup1 = new ComputeSecgroupV2(\"secgroup1\", ComputeSecgroupV2Args.builder()\n            .name(\"ecs_secgroup\")\n            .build());\n\n        var basic = new EcsInstanceV1(\"basic\", EcsInstanceV1Args.builder()\n            .name(\"server_1\")\n            .imageId(\"ad091b52-742f-469e-8f3c-fd81cadf0743\")\n            .flavor(\"s2.large.2\")\n            .vpcId(\"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\")\n            .nics(EcsInstanceV1NicArgs.builder()\n                .networkId(\"55534eaa-533a-419d-9b40-ec427ea7195a\")\n                .build())\n            .securityGroups(secgroup1.computeSecgroupV2Id())\n            .availabilityZone(\"eu-de-01\")\n            .keyName(\"KeyPair-test\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  secgroup1:\n    type: opentelekomcloud:ComputeSecgroupV2\n    name: secgroup_1\n    properties:\n      name: ecs_secgroup\n  basic:\n    type: opentelekomcloud:EcsInstanceV1\n    properties:\n      name: server_1\n      imageId: ad091b52-742f-469e-8f3c-fd81cadf0743\n      flavor: s2.large.2\n      vpcId: 8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\n      nics:\n        - networkId: 55534eaa-533a-419d-9b40-ec427ea7195a\n      securityGroups:\n        - ${secgroup1.computeSecgroupV2Id}\n      availabilityZone: eu-de-01\n      keyName: KeyPair-test\n```\n<!--End PulumiCodeChooser -->\n\n### Instance with Data Disks\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst basic = new opentelekomcloud.EcsInstanceV1(\"basic\", {\n    name: \"server_1\",\n    imageId: \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavor: \"s2.large.2\",\n    vpcId: \"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\",\n    nics: [{\n        networkId: \"55534eaa-533a-419d-9b40-ec427ea7195a\",\n    }],\n    systemDiskType: \"SAS\",\n    systemDiskSize: 40,\n    dataDisks: [\n        {\n            type: \"SATA\",\n            size: 10,\n        },\n        {\n            type: \"SAS\",\n            size: 20,\n        },\n    ],\n    deleteDisksOnTermination: true,\n    availabilityZone: \"eu-de-01\",\n    keyName: \"KeyPair-test\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nbasic = opentelekomcloud.EcsInstanceV1(\"basic\",\n    name=\"server_1\",\n    image_id=\"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavor=\"s2.large.2\",\n    vpc_id=\"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\",\n    nics=[{\n        \"network_id\": \"55534eaa-533a-419d-9b40-ec427ea7195a\",\n    }],\n    system_disk_type=\"SAS\",\n    system_disk_size=40,\n    data_disks=[\n        {\n            \"type\": \"SATA\",\n            \"size\": 10,\n        },\n        {\n            \"type\": \"SAS\",\n            \"size\": 20,\n        },\n    ],\n    delete_disks_on_termination=True,\n    availability_zone=\"eu-de-01\",\n    key_name=\"KeyPair-test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var basic = new Opentelekomcloud.EcsInstanceV1(\"basic\", new()\n    {\n        Name = \"server_1\",\n        ImageId = \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n        Flavor = \"s2.large.2\",\n        VpcId = \"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\",\n        Nics = new[]\n        {\n            new Opentelekomcloud.Inputs.EcsInstanceV1NicArgs\n            {\n                NetworkId = \"55534eaa-533a-419d-9b40-ec427ea7195a\",\n            },\n        },\n        SystemDiskType = \"SAS\",\n        SystemDiskSize = 40,\n        DataDisks = new[]\n        {\n            new Opentelekomcloud.Inputs.EcsInstanceV1DataDiskArgs\n            {\n                Type = \"SATA\",\n                Size = 10,\n            },\n            new Opentelekomcloud.Inputs.EcsInstanceV1DataDiskArgs\n            {\n                Type = \"SAS\",\n                Size = 20,\n            },\n        },\n        DeleteDisksOnTermination = true,\n        AvailabilityZone = \"eu-de-01\",\n        KeyName = \"KeyPair-test\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewEcsInstanceV1(ctx, \"basic\", &opentelekomcloud.EcsInstanceV1Args{\n\t\t\tName:    pulumi.String(\"server_1\"),\n\t\t\tImageId: pulumi.String(\"ad091b52-742f-469e-8f3c-fd81cadf0743\"),\n\t\t\tFlavor:  pulumi.String(\"s2.large.2\"),\n\t\t\tVpcId:   pulumi.String(\"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\"),\n\t\t\tNics: opentelekomcloud.EcsInstanceV1NicArray{\n\t\t\t\t&opentelekomcloud.EcsInstanceV1NicArgs{\n\t\t\t\t\tNetworkId: pulumi.String(\"55534eaa-533a-419d-9b40-ec427ea7195a\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSystemDiskType: pulumi.String(\"SAS\"),\n\t\t\tSystemDiskSize: pulumi.Float64(40),\n\t\t\tDataDisks: opentelekomcloud.EcsInstanceV1DataDiskArray{\n\t\t\t\t&opentelekomcloud.EcsInstanceV1DataDiskArgs{\n\t\t\t\t\tType: pulumi.String(\"SATA\"),\n\t\t\t\t\tSize: pulumi.Float64(10),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.EcsInstanceV1DataDiskArgs{\n\t\t\t\t\tType: pulumi.String(\"SAS\"),\n\t\t\t\t\tSize: pulumi.Float64(20),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDeleteDisksOnTermination: pulumi.Bool(true),\n\t\t\tAvailabilityZone:         pulumi.String(\"eu-de-01\"),\n\t\t\tKeyName:                  pulumi.String(\"KeyPair-test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.EcsInstanceV1;\nimport com.pulumi.opentelekomcloud.EcsInstanceV1Args;\nimport com.pulumi.opentelekomcloud.inputs.EcsInstanceV1NicArgs;\nimport com.pulumi.opentelekomcloud.inputs.EcsInstanceV1DataDiskArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var basic = new EcsInstanceV1(\"basic\", EcsInstanceV1Args.builder()\n            .name(\"server_1\")\n            .imageId(\"ad091b52-742f-469e-8f3c-fd81cadf0743\")\n            .flavor(\"s2.large.2\")\n            .vpcId(\"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\")\n            .nics(EcsInstanceV1NicArgs.builder()\n                .networkId(\"55534eaa-533a-419d-9b40-ec427ea7195a\")\n                .build())\n            .systemDiskType(\"SAS\")\n            .systemDiskSize(40.0)\n            .dataDisks(            \n                EcsInstanceV1DataDiskArgs.builder()\n                    .type(\"SATA\")\n                    .size(10.0)\n                    .build(),\n                EcsInstanceV1DataDiskArgs.builder()\n                    .type(\"SAS\")\n                    .size(20.0)\n                    .build())\n            .deleteDisksOnTermination(true)\n            .availabilityZone(\"eu-de-01\")\n            .keyName(\"KeyPair-test\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  basic:\n    type: opentelekomcloud:EcsInstanceV1\n    properties:\n      name: server_1\n      imageId: ad091b52-742f-469e-8f3c-fd81cadf0743\n      flavor: s2.large.2\n      vpcId: 8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\n      nics:\n        - networkId: 55534eaa-533a-419d-9b40-ec427ea7195a\n      systemDiskType: SAS\n      systemDiskSize: 40\n      dataDisks:\n        - type: SATA\n          size: '10'\n        - type: SAS\n          size: '20'\n      deleteDisksOnTermination: true\n      availabilityZone: eu-de-01\n      keyName: KeyPair-test\n```\n<!--End PulumiCodeChooser -->\n\n### Instance With Attached Volume\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst myvol = new opentelekomcloud.BlockstorageVolumeV2(\"myvol\", {\n    name: \"myvol\",\n    size: 1,\n});\nconst basic = new opentelekomcloud.EcsInstanceV1(\"basic\", {\n    name: \"server_1\",\n    imageId: \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavor: \"s2.large.2\",\n    vpcId: \"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\",\n    nics: [{\n        networkId: \"55534eaa-533a-419d-9b40-ec427ea7195a\",\n    }],\n    availabilityZone: \"eu-de-01\",\n    keyName: \"KeyPair-test\",\n});\nconst attached = new opentelekomcloud.ComputeVolumeAttachV2(\"attached\", {\n    instanceId: basic.ecsInstanceV1Id,\n    volumeId: myvol.blockstorageVolumeV2Id,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nmyvol = opentelekomcloud.BlockstorageVolumeV2(\"myvol\",\n    name=\"myvol\",\n    size=1)\nbasic = opentelekomcloud.EcsInstanceV1(\"basic\",\n    name=\"server_1\",\n    image_id=\"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavor=\"s2.large.2\",\n    vpc_id=\"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\",\n    nics=[{\n        \"network_id\": \"55534eaa-533a-419d-9b40-ec427ea7195a\",\n    }],\n    availability_zone=\"eu-de-01\",\n    key_name=\"KeyPair-test\")\nattached = opentelekomcloud.ComputeVolumeAttachV2(\"attached\",\n    instance_id=basic.ecs_instance_v1_id,\n    volume_id=myvol.blockstorage_volume_v2_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var myvol = new Opentelekomcloud.BlockstorageVolumeV2(\"myvol\", new()\n    {\n        Name = \"myvol\",\n        Size = 1,\n    });\n\n    var basic = new Opentelekomcloud.EcsInstanceV1(\"basic\", new()\n    {\n        Name = \"server_1\",\n        ImageId = \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n        Flavor = \"s2.large.2\",\n        VpcId = \"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\",\n        Nics = new[]\n        {\n            new Opentelekomcloud.Inputs.EcsInstanceV1NicArgs\n            {\n                NetworkId = \"55534eaa-533a-419d-9b40-ec427ea7195a\",\n            },\n        },\n        AvailabilityZone = \"eu-de-01\",\n        KeyName = \"KeyPair-test\",\n    });\n\n    var attached = new Opentelekomcloud.ComputeVolumeAttachV2(\"attached\", new()\n    {\n        InstanceId = basic.EcsInstanceV1Id,\n        VolumeId = myvol.BlockstorageVolumeV2Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyvol, err := opentelekomcloud.NewBlockstorageVolumeV2(ctx, \"myvol\", &opentelekomcloud.BlockstorageVolumeV2Args{\n\t\t\tName: pulumi.String(\"myvol\"),\n\t\t\tSize: pulumi.Float64(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbasic, err := opentelekomcloud.NewEcsInstanceV1(ctx, \"basic\", &opentelekomcloud.EcsInstanceV1Args{\n\t\t\tName:    pulumi.String(\"server_1\"),\n\t\t\tImageId: pulumi.String(\"ad091b52-742f-469e-8f3c-fd81cadf0743\"),\n\t\t\tFlavor:  pulumi.String(\"s2.large.2\"),\n\t\t\tVpcId:   pulumi.String(\"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\"),\n\t\t\tNics: opentelekomcloud.EcsInstanceV1NicArray{\n\t\t\t\t&opentelekomcloud.EcsInstanceV1NicArgs{\n\t\t\t\t\tNetworkId: pulumi.String(\"55534eaa-533a-419d-9b40-ec427ea7195a\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAvailabilityZone: pulumi.String(\"eu-de-01\"),\n\t\t\tKeyName:          pulumi.String(\"KeyPair-test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewComputeVolumeAttachV2(ctx, \"attached\", &opentelekomcloud.ComputeVolumeAttachV2Args{\n\t\t\tInstanceId: basic.EcsInstanceV1Id,\n\t\t\tVolumeId:   myvol.BlockstorageVolumeV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.BlockstorageVolumeV2;\nimport com.pulumi.opentelekomcloud.BlockstorageVolumeV2Args;\nimport com.pulumi.opentelekomcloud.EcsInstanceV1;\nimport com.pulumi.opentelekomcloud.EcsInstanceV1Args;\nimport com.pulumi.opentelekomcloud.inputs.EcsInstanceV1NicArgs;\nimport com.pulumi.opentelekomcloud.ComputeVolumeAttachV2;\nimport com.pulumi.opentelekomcloud.ComputeVolumeAttachV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myvol = new BlockstorageVolumeV2(\"myvol\", BlockstorageVolumeV2Args.builder()\n            .name(\"myvol\")\n            .size(1.0)\n            .build());\n\n        var basic = new EcsInstanceV1(\"basic\", EcsInstanceV1Args.builder()\n            .name(\"server_1\")\n            .imageId(\"ad091b52-742f-469e-8f3c-fd81cadf0743\")\n            .flavor(\"s2.large.2\")\n            .vpcId(\"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\")\n            .nics(EcsInstanceV1NicArgs.builder()\n                .networkId(\"55534eaa-533a-419d-9b40-ec427ea7195a\")\n                .build())\n            .availabilityZone(\"eu-de-01\")\n            .keyName(\"KeyPair-test\")\n            .build());\n\n        var attached = new ComputeVolumeAttachV2(\"attached\", ComputeVolumeAttachV2Args.builder()\n            .instanceId(basic.ecsInstanceV1Id())\n            .volumeId(myvol.blockstorageVolumeV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myvol:\n    type: opentelekomcloud:BlockstorageVolumeV2\n    properties:\n      name: myvol\n      size: 1\n  basic:\n    type: opentelekomcloud:EcsInstanceV1\n    properties:\n      name: server_1\n      imageId: ad091b52-742f-469e-8f3c-fd81cadf0743\n      flavor: s2.large.2\n      vpcId: 8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\n      nics:\n        - networkId: 55534eaa-533a-419d-9b40-ec427ea7195a\n      availabilityZone: eu-de-01\n      keyName: KeyPair-test\n  attached:\n    type: opentelekomcloud:ComputeVolumeAttachV2\n    properties:\n      instanceId: ${basic.ecsInstanceV1Id}\n      volumeId: ${myvol.blockstorageVolumeV2Id}\n```\n<!--End PulumiCodeChooser -->\n\n### Instance With Multiple Networks\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst _this = new opentelekomcloud.NetworkingFloatingipV2(\"this\", {pool: \"admin_external_net\"});\nconst thisEcsInstanceV1 = new opentelekomcloud.EcsInstanceV1(\"this\", {\n    name: \"server_1\",\n    imageId: \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavor: \"s2.large.2\",\n    vpcId: \"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\",\n    nics: [\n        {\n            networkId: \"55534eaa-533a-419d-9b40-ec427ea7195a\",\n        },\n        {\n            networkId: \"2c0a74a9-4395-4e62-a17b-e3e86fbf66b7\",\n        },\n    ],\n    availabilityZone: \"eu-de-01\",\n    keyName: \"KeyPair-test\",\n});\nconst thisNetworkingFloatingipAssociateV2 = new opentelekomcloud.NetworkingFloatingipAssociateV2(\"this\", {\n    floatingIp: _this.address,\n    portId: thisEcsInstanceV1.nics.apply(nics => nics[0].portId),\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nthis = opentelekomcloud.NetworkingFloatingipV2(\"this\", pool=\"admin_external_net\")\nthis_ecs_instance_v1 = opentelekomcloud.EcsInstanceV1(\"this\",\n    name=\"server_1\",\n    image_id=\"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavor=\"s2.large.2\",\n    vpc_id=\"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\",\n    nics=[\n        {\n            \"network_id\": \"55534eaa-533a-419d-9b40-ec427ea7195a\",\n        },\n        {\n            \"network_id\": \"2c0a74a9-4395-4e62-a17b-e3e86fbf66b7\",\n        },\n    ],\n    availability_zone=\"eu-de-01\",\n    key_name=\"KeyPair-test\")\nthis_networking_floatingip_associate_v2 = opentelekomcloud.NetworkingFloatingipAssociateV2(\"this\",\n    floating_ip=this.address,\n    port_id=this_ecs_instance_v1.nics[0].port_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var @this = new Opentelekomcloud.NetworkingFloatingipV2(\"this\", new()\n    {\n        Pool = \"admin_external_net\",\n    });\n\n    var thisEcsInstanceV1 = new Opentelekomcloud.EcsInstanceV1(\"this\", new()\n    {\n        Name = \"server_1\",\n        ImageId = \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n        Flavor = \"s2.large.2\",\n        VpcId = \"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\",\n        Nics = new[]\n        {\n            new Opentelekomcloud.Inputs.EcsInstanceV1NicArgs\n            {\n                NetworkId = \"55534eaa-533a-419d-9b40-ec427ea7195a\",\n            },\n            new Opentelekomcloud.Inputs.EcsInstanceV1NicArgs\n            {\n                NetworkId = \"2c0a74a9-4395-4e62-a17b-e3e86fbf66b7\",\n            },\n        },\n        AvailabilityZone = \"eu-de-01\",\n        KeyName = \"KeyPair-test\",\n    });\n\n    var thisNetworkingFloatingipAssociateV2 = new Opentelekomcloud.NetworkingFloatingipAssociateV2(\"this\", new()\n    {\n        FloatingIp = @this.Address,\n        PortId = thisEcsInstanceV1.Nics.Apply(nics => nics[0].PortId),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthis, err := opentelekomcloud.NewNetworkingFloatingipV2(ctx, \"this\", &opentelekomcloud.NetworkingFloatingipV2Args{\n\t\t\tPool: pulumi.String(\"admin_external_net\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthisEcsInstanceV1, err := opentelekomcloud.NewEcsInstanceV1(ctx, \"this\", &opentelekomcloud.EcsInstanceV1Args{\n\t\t\tName:    pulumi.String(\"server_1\"),\n\t\t\tImageId: pulumi.String(\"ad091b52-742f-469e-8f3c-fd81cadf0743\"),\n\t\t\tFlavor:  pulumi.String(\"s2.large.2\"),\n\t\t\tVpcId:   pulumi.String(\"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\"),\n\t\t\tNics: opentelekomcloud.EcsInstanceV1NicArray{\n\t\t\t\t&opentelekomcloud.EcsInstanceV1NicArgs{\n\t\t\t\t\tNetworkId: pulumi.String(\"55534eaa-533a-419d-9b40-ec427ea7195a\"),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.EcsInstanceV1NicArgs{\n\t\t\t\t\tNetworkId: pulumi.String(\"2c0a74a9-4395-4e62-a17b-e3e86fbf66b7\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAvailabilityZone: pulumi.String(\"eu-de-01\"),\n\t\t\tKeyName:          pulumi.String(\"KeyPair-test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewNetworkingFloatingipAssociateV2(ctx, \"this\", &opentelekomcloud.NetworkingFloatingipAssociateV2Args{\n\t\t\tFloatingIp: this.Address,\n\t\t\tPortId: pulumi.String(thisEcsInstanceV1.Nics.ApplyT(func(nics []opentelekomcloud.EcsInstanceV1Nic) (*string, error) {\n\t\t\t\treturn &nics[0].PortId, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.NetworkingFloatingipV2;\nimport com.pulumi.opentelekomcloud.NetworkingFloatingipV2Args;\nimport com.pulumi.opentelekomcloud.EcsInstanceV1;\nimport com.pulumi.opentelekomcloud.EcsInstanceV1Args;\nimport com.pulumi.opentelekomcloud.inputs.EcsInstanceV1NicArgs;\nimport com.pulumi.opentelekomcloud.NetworkingFloatingipAssociateV2;\nimport com.pulumi.opentelekomcloud.NetworkingFloatingipAssociateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var this_ = new NetworkingFloatingipV2(\"this\", NetworkingFloatingipV2Args.builder()\n            .pool(\"admin_external_net\")\n            .build());\n\n        var thisEcsInstanceV1 = new EcsInstanceV1(\"thisEcsInstanceV1\", EcsInstanceV1Args.builder()\n            .name(\"server_1\")\n            .imageId(\"ad091b52-742f-469e-8f3c-fd81cadf0743\")\n            .flavor(\"s2.large.2\")\n            .vpcId(\"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\")\n            .nics(            \n                EcsInstanceV1NicArgs.builder()\n                    .networkId(\"55534eaa-533a-419d-9b40-ec427ea7195a\")\n                    .build(),\n                EcsInstanceV1NicArgs.builder()\n                    .networkId(\"2c0a74a9-4395-4e62-a17b-e3e86fbf66b7\")\n                    .build())\n            .availabilityZone(\"eu-de-01\")\n            .keyName(\"KeyPair-test\")\n            .build());\n\n        var thisNetworkingFloatingipAssociateV2 = new NetworkingFloatingipAssociateV2(\"thisNetworkingFloatingipAssociateV2\", NetworkingFloatingipAssociateV2Args.builder()\n            .floatingIp(this_.address())\n            .portId(thisEcsInstanceV1.nics().applyValue(_nics -> _nics[0].portId()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  this:\n    type: opentelekomcloud:NetworkingFloatingipV2\n    properties:\n      pool: admin_external_net\n  thisEcsInstanceV1:\n    type: opentelekomcloud:EcsInstanceV1\n    name: this\n    properties:\n      name: server_1\n      imageId: ad091b52-742f-469e-8f3c-fd81cadf0743\n      flavor: s2.large.2\n      vpcId: 8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\n      nics:\n        - networkId: 55534eaa-533a-419d-9b40-ec427ea7195a\n        - networkId: 2c0a74a9-4395-4e62-a17b-e3e86fbf66b7\n      availabilityZone: eu-de-01\n      keyName: KeyPair-test\n  thisNetworkingFloatingipAssociateV2:\n    type: opentelekomcloud:NetworkingFloatingipAssociateV2\n    name: this\n    properties:\n      floatingIp: ${this.address}\n      portId: ${thisEcsInstanceV1.nics[0].portId}\n```\n<!--End PulumiCodeChooser -->\n\n### Instance with User Data (cloud-init)\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst basic = new opentelekomcloud.EcsInstanceV1(\"basic\", {\n    name: \"server_1\",\n    imageId: \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavor: \"s2.large.2\",\n    vpcId: \"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\",\n    nics: [{\n        networkId: \"55534eaa-533a-419d-9b40-ec427ea7195a\",\n    }],\n    userData: `#cloud-config\nhostname: server_1.example.com\nfqdn: server_1.example.com`,\n    keyName: \"KeyPair-test\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nbasic = opentelekomcloud.EcsInstanceV1(\"basic\",\n    name=\"server_1\",\n    image_id=\"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavor=\"s2.large.2\",\n    vpc_id=\"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\",\n    nics=[{\n        \"network_id\": \"55534eaa-533a-419d-9b40-ec427ea7195a\",\n    }],\n    user_data=\"\"\"#cloud-config\nhostname: server_1.example.com\nfqdn: server_1.example.com\"\"\",\n    key_name=\"KeyPair-test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var basic = new Opentelekomcloud.EcsInstanceV1(\"basic\", new()\n    {\n        Name = \"server_1\",\n        ImageId = \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n        Flavor = \"s2.large.2\",\n        VpcId = \"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\",\n        Nics = new[]\n        {\n            new Opentelekomcloud.Inputs.EcsInstanceV1NicArgs\n            {\n                NetworkId = \"55534eaa-533a-419d-9b40-ec427ea7195a\",\n            },\n        },\n        UserData = @\"#cloud-config\nhostname: server_1.example.com\nfqdn: server_1.example.com\",\n        KeyName = \"KeyPair-test\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewEcsInstanceV1(ctx, \"basic\", &opentelekomcloud.EcsInstanceV1Args{\n\t\t\tName:    pulumi.String(\"server_1\"),\n\t\t\tImageId: pulumi.String(\"ad091b52-742f-469e-8f3c-fd81cadf0743\"),\n\t\t\tFlavor:  pulumi.String(\"s2.large.2\"),\n\t\t\tVpcId:   pulumi.String(\"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\"),\n\t\t\tNics: opentelekomcloud.EcsInstanceV1NicArray{\n\t\t\t\t&opentelekomcloud.EcsInstanceV1NicArgs{\n\t\t\t\t\tNetworkId: pulumi.String(\"55534eaa-533a-419d-9b40-ec427ea7195a\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tUserData: pulumi.String(\"#cloud-config\\nhostname: server_1.example.com\\nfqdn: server_1.example.com\"),\n\t\t\tKeyName:  pulumi.String(\"KeyPair-test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.EcsInstanceV1;\nimport com.pulumi.opentelekomcloud.EcsInstanceV1Args;\nimport com.pulumi.opentelekomcloud.inputs.EcsInstanceV1NicArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var basic = new EcsInstanceV1(\"basic\", EcsInstanceV1Args.builder()\n            .name(\"server_1\")\n            .imageId(\"ad091b52-742f-469e-8f3c-fd81cadf0743\")\n            .flavor(\"s2.large.2\")\n            .vpcId(\"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\")\n            .nics(EcsInstanceV1NicArgs.builder()\n                .networkId(\"55534eaa-533a-419d-9b40-ec427ea7195a\")\n                .build())\n            .userData(\"\"\"\n#cloud-config\nhostname: server_1.example.com\nfqdn: server_1.example.com            \"\"\")\n            .keyName(\"KeyPair-test\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  basic:\n    type: opentelekomcloud:EcsInstanceV1\n    properties:\n      name: server_1\n      imageId: ad091b52-742f-469e-8f3c-fd81cadf0743\n      flavor: s2.large.2\n      vpcId: 8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\n      nics:\n        - networkId: 55534eaa-533a-419d-9b40-ec427ea7195a\n      userData: |-\n        #cloud-config\n        hostname: server_1.example.com\n        fqdn: server_1.example.com\n      keyName: KeyPair-test\n```\n<!--End PulumiCodeChooser -->\n\n> <span pulumi-lang-nodejs=\"`userData`\" pulumi-lang-dotnet=\"`UserData`\" pulumi-lang-go=\"`userData`\" pulumi-lang-python=\"`user_data`\" pulumi-lang-yaml=\"`userData`\" pulumi-lang-java=\"`userData`\">`user_data`</span> can come from a variety of sources: inline, read in from the <span pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\">`file`</span>\nfunction, or the <span pulumi-lang-nodejs=\"`templateCloudinitConfig`\" pulumi-lang-dotnet=\"`TemplateCloudinitConfig`\" pulumi-lang-go=\"`templateCloudinitConfig`\" pulumi-lang-python=\"`template_cloudinit_config`\" pulumi-lang-yaml=\"`templateCloudinitConfig`\" pulumi-lang-java=\"`templateCloudinitConfig`\">`template_cloudinit_config`</span> resource.\n\n### Instance with scheduler hints\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst sg1 = new opentelekomcloud.ComputeServergroupV2(\"sg_1\", {\n    name: \"sg_1\",\n    policies: [\"anti-affinity\"],\n});\nconst basic = new opentelekomcloud.EcsInstanceV1(\"basic\", {\n    name: \"server_1\",\n    imageId: \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavor: \"s2.large.2\",\n    vpcId: \"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\",\n    nics: [{\n        networkId: \"55534eaa-533a-419d-9b40-ec427ea7195a\",\n    }],\n    availabilityZone: \"eu-de-01\",\n    keyName: \"KeyPair-test\",\n    osSchedulerHints: [{\n        group: sg1.computeServergroupV2Id,\n        tenancy: \"shared\",\n    }],\n    tags: {\n        muh: \"kuh\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nsg1 = opentelekomcloud.ComputeServergroupV2(\"sg_1\",\n    name=\"sg_1\",\n    policies=[\"anti-affinity\"])\nbasic = opentelekomcloud.EcsInstanceV1(\"basic\",\n    name=\"server_1\",\n    image_id=\"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n    flavor=\"s2.large.2\",\n    vpc_id=\"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\",\n    nics=[{\n        \"network_id\": \"55534eaa-533a-419d-9b40-ec427ea7195a\",\n    }],\n    availability_zone=\"eu-de-01\",\n    key_name=\"KeyPair-test\",\n    os_scheduler_hints=[{\n        \"group\": sg1.compute_servergroup_v2_id,\n        \"tenancy\": \"shared\",\n    }],\n    tags={\n        \"muh\": \"kuh\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var sg1 = new Opentelekomcloud.ComputeServergroupV2(\"sg_1\", new()\n    {\n        Name = \"sg_1\",\n        Policies = new[]\n        {\n            \"anti-affinity\",\n        },\n    });\n\n    var basic = new Opentelekomcloud.EcsInstanceV1(\"basic\", new()\n    {\n        Name = \"server_1\",\n        ImageId = \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n        Flavor = \"s2.large.2\",\n        VpcId = \"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\",\n        Nics = new[]\n        {\n            new Opentelekomcloud.Inputs.EcsInstanceV1NicArgs\n            {\n                NetworkId = \"55534eaa-533a-419d-9b40-ec427ea7195a\",\n            },\n        },\n        AvailabilityZone = \"eu-de-01\",\n        KeyName = \"KeyPair-test\",\n        OsSchedulerHints = new[]\n        {\n            new Opentelekomcloud.Inputs.EcsInstanceV1OsSchedulerHintArgs\n            {\n                Group = sg1.ComputeServergroupV2Id,\n                Tenancy = \"shared\",\n            },\n        },\n        Tags = \n        {\n            { \"muh\", \"kuh\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsg1, err := opentelekomcloud.NewComputeServergroupV2(ctx, \"sg_1\", &opentelekomcloud.ComputeServergroupV2Args{\n\t\t\tName: pulumi.String(\"sg_1\"),\n\t\t\tPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"anti-affinity\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewEcsInstanceV1(ctx, \"basic\", &opentelekomcloud.EcsInstanceV1Args{\n\t\t\tName:    pulumi.String(\"server_1\"),\n\t\t\tImageId: pulumi.String(\"ad091b52-742f-469e-8f3c-fd81cadf0743\"),\n\t\t\tFlavor:  pulumi.String(\"s2.large.2\"),\n\t\t\tVpcId:   pulumi.String(\"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\"),\n\t\t\tNics: opentelekomcloud.EcsInstanceV1NicArray{\n\t\t\t\t&opentelekomcloud.EcsInstanceV1NicArgs{\n\t\t\t\t\tNetworkId: pulumi.String(\"55534eaa-533a-419d-9b40-ec427ea7195a\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAvailabilityZone: pulumi.String(\"eu-de-01\"),\n\t\t\tKeyName:          pulumi.String(\"KeyPair-test\"),\n\t\t\tOsSchedulerHints: opentelekomcloud.EcsInstanceV1OsSchedulerHintArray{\n\t\t\t\t&opentelekomcloud.EcsInstanceV1OsSchedulerHintArgs{\n\t\t\t\t\tGroup:   sg1.ComputeServergroupV2Id,\n\t\t\t\t\tTenancy: pulumi.String(\"shared\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"muh\": pulumi.String(\"kuh\"),\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.opentelekomcloud.ComputeServergroupV2;\nimport com.pulumi.opentelekomcloud.ComputeServergroupV2Args;\nimport com.pulumi.opentelekomcloud.EcsInstanceV1;\nimport com.pulumi.opentelekomcloud.EcsInstanceV1Args;\nimport com.pulumi.opentelekomcloud.inputs.EcsInstanceV1NicArgs;\nimport com.pulumi.opentelekomcloud.inputs.EcsInstanceV1OsSchedulerHintArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var sg1 = new ComputeServergroupV2(\"sg1\", ComputeServergroupV2Args.builder()\n            .name(\"sg_1\")\n            .policies(\"anti-affinity\")\n            .build());\n\n        var basic = new EcsInstanceV1(\"basic\", EcsInstanceV1Args.builder()\n            .name(\"server_1\")\n            .imageId(\"ad091b52-742f-469e-8f3c-fd81cadf0743\")\n            .flavor(\"s2.large.2\")\n            .vpcId(\"8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\")\n            .nics(EcsInstanceV1NicArgs.builder()\n                .networkId(\"55534eaa-533a-419d-9b40-ec427ea7195a\")\n                .build())\n            .availabilityZone(\"eu-de-01\")\n            .keyName(\"KeyPair-test\")\n            .osSchedulerHints(EcsInstanceV1OsSchedulerHintArgs.builder()\n                .group(sg1.computeServergroupV2Id())\n                .tenancy(\"shared\")\n                .build())\n            .tags(Map.of(\"muh\", \"kuh\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  sg1:\n    type: opentelekomcloud:ComputeServergroupV2\n    name: sg_1\n    properties:\n      name: sg_1\n      policies:\n        - anti-affinity\n  basic:\n    type: opentelekomcloud:EcsInstanceV1\n    properties:\n      name: server_1\n      imageId: ad091b52-742f-469e-8f3c-fd81cadf0743\n      flavor: s2.large.2\n      vpcId: 8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235\n      nics:\n        - networkId: 55534eaa-533a-419d-9b40-ec427ea7195a\n      availabilityZone: eu-de-01\n      keyName: KeyPair-test\n      osSchedulerHints:\n        - group: ${sg1.computeServergroupV2Id}\n          tenancy: shared\n      tags:\n        muh: kuh\n```\n<!--End PulumiCodeChooser -->\n\n### Instance with encrypted disks\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst ecs = new opentelekomcloud.EcsInstanceV1(\"ecs\", {\n    name: hostName,\n    flavor: flavorName,\n    availabilityZone: az,\n    securityGroups: [_default.id],\n    vpcId: vpcId,\n    imageId: imageId,\n    autoRecovery: true,\n    nics: [{\n        networkId: vpcSubnetworkId,\n        ipAddress: privateIp,\n    }],\n    systemDiskType: diskType,\n    systemDiskSize: diskSize,\n    systemDiskKmsId: keyDiskEncryption,\n    deleteDisksOnTermination: true,\n    dataDisks: [{\n        type: \"SSD\",\n        size: 40,\n        kmsId: keyDiskEncryption,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\necs = opentelekomcloud.EcsInstanceV1(\"ecs\",\n    name=host_name,\n    flavor=flavor_name,\n    availability_zone=az,\n    security_groups=[default[\"id\"]],\n    vpc_id=vpc_id,\n    image_id=image_id,\n    auto_recovery=True,\n    nics=[{\n        \"network_id\": vpc_subnetwork_id,\n        \"ip_address\": private_ip,\n    }],\n    system_disk_type=disk_type,\n    system_disk_size=disk_size,\n    system_disk_kms_id=key_disk_encryption,\n    delete_disks_on_termination=True,\n    data_disks=[{\n        \"type\": \"SSD\",\n        \"size\": 40,\n        \"kms_id\": key_disk_encryption,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var ecs = new Opentelekomcloud.EcsInstanceV1(\"ecs\", new()\n    {\n        Name = hostName,\n        Flavor = flavorName,\n        AvailabilityZone = az,\n        SecurityGroups = new[]\n        {\n            @default.Id,\n        },\n        VpcId = vpcId,\n        ImageId = imageId,\n        AutoRecovery = true,\n        Nics = new[]\n        {\n            new Opentelekomcloud.Inputs.EcsInstanceV1NicArgs\n            {\n                NetworkId = vpcSubnetworkId,\n                IpAddress = privateIp,\n            },\n        },\n        SystemDiskType = diskType,\n        SystemDiskSize = diskSize,\n        SystemDiskKmsId = keyDiskEncryption,\n        DeleteDisksOnTermination = true,\n        DataDisks = new[]\n        {\n            new Opentelekomcloud.Inputs.EcsInstanceV1DataDiskArgs\n            {\n                Type = \"SSD\",\n                Size = 40,\n                KmsId = keyDiskEncryption,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewEcsInstanceV1(ctx, \"ecs\", &opentelekomcloud.EcsInstanceV1Args{\n\t\t\tName:             pulumi.Any(hostName),\n\t\t\tFlavor:           pulumi.Any(flavorName),\n\t\t\tAvailabilityZone: pulumi.Any(az),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\t_default.Id,\n\t\t\t},\n\t\t\tVpcId:        pulumi.Any(vpcId),\n\t\t\tImageId:      pulumi.Any(imageId),\n\t\t\tAutoRecovery: pulumi.Bool(true),\n\t\t\tNics: opentelekomcloud.EcsInstanceV1NicArray{\n\t\t\t\t&opentelekomcloud.EcsInstanceV1NicArgs{\n\t\t\t\t\tNetworkId: pulumi.Any(vpcSubnetworkId),\n\t\t\t\t\tIpAddress: pulumi.Any(privateIp),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSystemDiskType:           pulumi.Any(diskType),\n\t\t\tSystemDiskSize:           pulumi.Any(diskSize),\n\t\t\tSystemDiskKmsId:          pulumi.Any(keyDiskEncryption),\n\t\t\tDeleteDisksOnTermination: pulumi.Bool(true),\n\t\t\tDataDisks: opentelekomcloud.EcsInstanceV1DataDiskArray{\n\t\t\t\t&opentelekomcloud.EcsInstanceV1DataDiskArgs{\n\t\t\t\t\tType:  pulumi.String(\"SSD\"),\n\t\t\t\t\tSize:  pulumi.Float64(40),\n\t\t\t\t\tKmsId: pulumi.Any(keyDiskEncryption),\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.opentelekomcloud.EcsInstanceV1;\nimport com.pulumi.opentelekomcloud.EcsInstanceV1Args;\nimport com.pulumi.opentelekomcloud.inputs.EcsInstanceV1NicArgs;\nimport com.pulumi.opentelekomcloud.inputs.EcsInstanceV1DataDiskArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var ecs = new EcsInstanceV1(\"ecs\", EcsInstanceV1Args.builder()\n            .name(hostName)\n            .flavor(flavorName)\n            .availabilityZone(az)\n            .securityGroups(default_.id())\n            .vpcId(vpcId)\n            .imageId(imageId)\n            .autoRecovery(true)\n            .nics(EcsInstanceV1NicArgs.builder()\n                .networkId(vpcSubnetworkId)\n                .ipAddress(privateIp)\n                .build())\n            .systemDiskType(diskType)\n            .systemDiskSize(diskSize)\n            .systemDiskKmsId(keyDiskEncryption)\n            .deleteDisksOnTermination(true)\n            .dataDisks(EcsInstanceV1DataDiskArgs.builder()\n                .type(\"SSD\")\n                .size(40.0)\n                .kmsId(keyDiskEncryption)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ecs:\n    type: opentelekomcloud:EcsInstanceV1\n    properties:\n      name: ${hostName}\n      flavor: ${flavorName}\n      availabilityZone: ${az}\n      securityGroups:\n        - ${default.id}\n      vpcId: ${vpcId}\n      imageId: ${imageId}\n      autoRecovery: true\n      nics:\n        - networkId: ${vpcSubnetworkId}\n          ipAddress: ${privateIp}\n      systemDiskType: ${diskType}\n      systemDiskSize: ${diskSize}\n      systemDiskKmsId: ${keyDiskEncryption}\n      deleteDisksOnTermination: true\n      dataDisks:\n        - type: SSD\n          size: 40\n          kmsId: ${keyDiskEncryption}\n```\n<!--End PulumiCodeChooser -->\n\n~>\n  Encrypted disks requires EVS to be authorized to use KMS keys. The easiest way is to create an encrypted\n  instance  via the console - this should be done only once per project. Another way is to use an agency,\n  same way it's done for CCE.\n\n## Import\n\nInstances can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/ecsInstanceV1:EcsInstanceV1 instance_1 d90ce693-5ccf-4136-a0ed-152ce412b6b9\n```\n\n","inputProperties":{"autoRecovery":{"description":"Whether configure automatic recovery of an instance.\n","type":"boolean"},"availabilityZone":{"description":"The availability zone in which to create the server.\n\n> **NOTE:**\nIf this parameter is not specified, the system automatically selects an AZ.\n\nChanging this creates a new server.\n","type":"string"},"dataDisks":{"description":"An array of one or more data disks to attach to the\ninstance. The <span pulumi-lang-nodejs=\"`dataDisks`\" pulumi-lang-dotnet=\"`DataDisks`\" pulumi-lang-go=\"`dataDisks`\" pulumi-lang-python=\"`data_disks`\" pulumi-lang-yaml=\"`dataDisks`\" pulumi-lang-java=\"`dataDisks`\">`data_disks`</span> object structure is documented below. Changing this\ncreates a new server.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FEcsInstanceV1DataDisk:EcsInstanceV1DataDisk"},"type":"array"},"deleteDisksOnTermination":{"description":"Delete the data disks upon termination of the instance.\nDefaults to false. Changing this creates a new server.\n","type":"boolean"},"ecsInstanceV1Id":{"type":"string"},"flavor":{"description":"The name of the desired flavor for the server.\n","type":"string"},"imageId":{"description":"The ID of the desired image for the server. Changing this creates a new server.\n","type":"string"},"keyName":{"description":"The name of a key pair to put on the server. The key\npair must already be created and associated with the tenant's account.\nChanging this creates a new server.\n","type":"string"},"metadata":{"$ref":"#/types/opentelekomcloud:index%2FEcsInstanceV1Metadata:EcsInstanceV1Metadata","description":"Metadata key/value pairs to associate with the instance.\n"},"name":{"description":"A unique name for the instance.\n","type":"string"},"nics":{"description":"An array of one or more networks to attach to the\ninstance. The nics object structure is documented below. Changing this\ncreates a new server.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FEcsInstanceV1Nic:EcsInstanceV1Nic"},"type":"array"},"osSchedulerHints":{"description":"Schedules ECSs, for example, by configuring an ECS group. The <span pulumi-lang-nodejs=\"`osSchedulerHints`\" pulumi-lang-dotnet=\"`OsSchedulerHints`\" pulumi-lang-go=\"`osSchedulerHints`\" pulumi-lang-python=\"`os_scheduler_hints`\" pulumi-lang-yaml=\"`osSchedulerHints`\" pulumi-lang-java=\"`osSchedulerHints`\">`os_scheduler_hints`</span> object structure is documented below. Changing this creates a new server.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FEcsInstanceV1OsSchedulerHint:EcsInstanceV1OsSchedulerHint"},"type":"array"},"password":{"description":"The administrative password to assign to the server.\nChanging this creates a new server.\n","secret":true,"type":"string"},"securityGroups":{"description":"An array of one or more security group IDs\nto associate with the server. If this parameter is left blank, the <span pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\">`default`</span>\nsecurity group is bound to the ECS by default.\n","items":{"type":"string"},"type":"array"},"systemDiskKmsId":{"description":"The Encryption KMS ID of the system disk. Changing this\ncreates a new server.\n","type":"string"},"systemDiskSize":{"description":"The system disk size in GB, The value range is 1 to 1024.\nChanging this creates a new server.\n","type":"number"},"systemDiskType":{"description":"The system disk type of the server.\nChanging this creates a new server. Options are limited depending on AZ. Default: `SSD`. Available options are:\n* `SAS`: high I/O disk type. Available for all AZs.\n* `SSD`: ultra-high I/O disk type. Available for all AZs.\n* `GPSSD`: the general purpose SSD type\n* `ESSD`: extreme SSD disk type.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FEcsInstanceV1Timeouts:EcsInstanceV1Timeouts"},"tpmEnabled":{"description":"Specifies whether to enable vTPM on the ECS. Defaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\nCurrently, only `Pi5e` instance types support TPM.\n\n> **NOTE:** Changing this parameter will cause the server to be automatically stopped, updated, and started again.\n","type":"boolean"},"userData":{"description":"The user data to provide when launching the instance.\nChanging this creates a new server.\n","type":"string"},"vpcId":{"description":"The ID of the desired VPC for the server. Changing this creates a new server.\n","type":"string"}},"properties":{"autoRecovery":{"description":"Whether configure automatic recovery of an instance.\n","type":"boolean"},"availabilityZone":{"description":"The availability zone in which to create the server.\n\n> **NOTE:**\nIf this parameter is not specified, the system automatically selects an AZ.\n\nChanging this creates a new server.\n","type":"string"},"dataDisks":{"description":"An array of one or more data disks to attach to the\ninstance. The <span pulumi-lang-nodejs=\"`dataDisks`\" pulumi-lang-dotnet=\"`DataDisks`\" pulumi-lang-go=\"`dataDisks`\" pulumi-lang-python=\"`data_disks`\" pulumi-lang-yaml=\"`dataDisks`\" pulumi-lang-java=\"`dataDisks`\">`data_disks`</span> object structure is documented below. Changing this\ncreates a new server.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FEcsInstanceV1DataDisk:EcsInstanceV1DataDisk"},"type":"array"},"deleteDisksOnTermination":{"description":"Delete the data disks upon termination of the instance.\nDefaults to false. Changing this creates a new server.\n","type":"boolean"},"ecsInstanceV1Id":{"type":"string"},"flavor":{"description":"The name of the desired flavor for the server.\n","type":"string"},"imageId":{"description":"The ID of the desired image for the server. Changing this creates a new server.\n","type":"string"},"keyName":{"description":"The name of a key pair to put on the server. The key\npair must already be created and associated with the tenant's account.\nChanging this creates a new server.\n","type":"string"},"metadata":{"$ref":"#/types/opentelekomcloud:index%2FEcsInstanceV1Metadata:EcsInstanceV1Metadata","description":"Metadata key/value pairs to associate with the instance.\n"},"name":{"description":"A unique name for the instance.\n","type":"string"},"nics":{"description":"An array of one or more networks to attach to the\ninstance. The nics object structure is documented below. Changing this\ncreates a new server.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FEcsInstanceV1Nic:EcsInstanceV1Nic"},"type":"array"},"osSchedulerHints":{"description":"Schedules ECSs, for example, by configuring an ECS group. The <span pulumi-lang-nodejs=\"`osSchedulerHints`\" pulumi-lang-dotnet=\"`OsSchedulerHints`\" pulumi-lang-go=\"`osSchedulerHints`\" pulumi-lang-python=\"`os_scheduler_hints`\" pulumi-lang-yaml=\"`osSchedulerHints`\" pulumi-lang-java=\"`osSchedulerHints`\">`os_scheduler_hints`</span> object structure is documented below. Changing this creates a new server.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FEcsInstanceV1OsSchedulerHint:EcsInstanceV1OsSchedulerHint"},"type":"array"},"password":{"description":"The administrative password to assign to the server.\nChanging this creates a new server.\n","secret":true,"type":"string"},"securityGroups":{"description":"An array of one or more security group IDs\nto associate with the server. If this parameter is left blank, the <span pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\">`default`</span>\nsecurity group is bound to the ECS by default.\n","items":{"type":"string"},"type":"array"},"systemDiskId":{"description":"(String) The ID of the system disk.\n","type":"string"},"systemDiskKmsId":{"description":"The Encryption KMS ID of the system disk. Changing this\ncreates a new server.\n","type":"string"},"systemDiskSize":{"description":"The system disk size in GB, The value range is 1 to 1024.\nChanging this creates a new server.\n","type":"number"},"systemDiskType":{"description":"The system disk type of the server.\nChanging this creates a new server. Options are limited depending on AZ. Default: `SSD`. Available options are:\n* `SAS`: high I/O disk type. Available for all AZs.\n* `SSD`: ultra-high I/O disk type. Available for all AZs.\n* `GPSSD`: the general purpose SSD type\n* `ESSD`: extreme SSD disk type.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FEcsInstanceV1Timeouts:EcsInstanceV1Timeouts"},"tpmEnabled":{"description":"Specifies whether to enable vTPM on the ECS. Defaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\nCurrently, only `Pi5e` instance types support TPM.\n\n> **NOTE:** Changing this parameter will cause the server to be automatically stopped, updated, and started again.\n","type":"boolean"},"userData":{"description":"The user data to provide when launching the instance.\nChanging this creates a new server.\n","type":"string"},"volumesAttacheds":{"items":{"$ref":"#/types/opentelekomcloud:index%2FEcsInstanceV1VolumesAttached:EcsInstanceV1VolumesAttached"},"type":"array"},"vpcId":{"description":"The ID of the desired VPC for the server. Changing this creates a new server.\n","type":"string"}},"required":["autoRecovery","availabilityZone","ecsInstanceV1Id","flavor","imageId","name","nics","securityGroups","systemDiskId","systemDiskSize","systemDiskType","tpmEnabled","volumesAttacheds","vpcId"],"requiredInputs":["flavor","imageId","nics","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering EcsInstanceV1 resources.\n","properties":{"autoRecovery":{"description":"Whether configure automatic recovery of an instance.\n","type":"boolean"},"availabilityZone":{"description":"The availability zone in which to create the server.\n\n> **NOTE:**\nIf this parameter is not specified, the system automatically selects an AZ.\n\nChanging this creates a new server.\n","type":"string"},"dataDisks":{"description":"An array of one or more data disks to attach to the\ninstance. The <span pulumi-lang-nodejs=\"`dataDisks`\" pulumi-lang-dotnet=\"`DataDisks`\" pulumi-lang-go=\"`dataDisks`\" pulumi-lang-python=\"`data_disks`\" pulumi-lang-yaml=\"`dataDisks`\" pulumi-lang-java=\"`dataDisks`\">`data_disks`</span> object structure is documented below. Changing this\ncreates a new server.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FEcsInstanceV1DataDisk:EcsInstanceV1DataDisk"},"type":"array"},"deleteDisksOnTermination":{"description":"Delete the data disks upon termination of the instance.\nDefaults to false. Changing this creates a new server.\n","type":"boolean"},"ecsInstanceV1Id":{"type":"string"},"flavor":{"description":"The name of the desired flavor for the server.\n","type":"string"},"imageId":{"description":"The ID of the desired image for the server. Changing this creates a new server.\n","type":"string"},"keyName":{"description":"The name of a key pair to put on the server. The key\npair must already be created and associated with the tenant's account.\nChanging this creates a new server.\n","type":"string"},"metadata":{"$ref":"#/types/opentelekomcloud:index%2FEcsInstanceV1Metadata:EcsInstanceV1Metadata","description":"Metadata key/value pairs to associate with the instance.\n"},"name":{"description":"A unique name for the instance.\n","type":"string"},"nics":{"description":"An array of one or more networks to attach to the\ninstance. The nics object structure is documented below. Changing this\ncreates a new server.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FEcsInstanceV1Nic:EcsInstanceV1Nic"},"type":"array"},"osSchedulerHints":{"description":"Schedules ECSs, for example, by configuring an ECS group. The <span pulumi-lang-nodejs=\"`osSchedulerHints`\" pulumi-lang-dotnet=\"`OsSchedulerHints`\" pulumi-lang-go=\"`osSchedulerHints`\" pulumi-lang-python=\"`os_scheduler_hints`\" pulumi-lang-yaml=\"`osSchedulerHints`\" pulumi-lang-java=\"`osSchedulerHints`\">`os_scheduler_hints`</span> object structure is documented below. Changing this creates a new server.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FEcsInstanceV1OsSchedulerHint:EcsInstanceV1OsSchedulerHint"},"type":"array"},"password":{"description":"The administrative password to assign to the server.\nChanging this creates a new server.\n","secret":true,"type":"string"},"securityGroups":{"description":"An array of one or more security group IDs\nto associate with the server. If this parameter is left blank, the <span pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\">`default`</span>\nsecurity group is bound to the ECS by default.\n","items":{"type":"string"},"type":"array"},"systemDiskId":{"description":"(String) The ID of the system disk.\n","type":"string"},"systemDiskKmsId":{"description":"The Encryption KMS ID of the system disk. Changing this\ncreates a new server.\n","type":"string"},"systemDiskSize":{"description":"The system disk size in GB, The value range is 1 to 1024.\nChanging this creates a new server.\n","type":"number"},"systemDiskType":{"description":"The system disk type of the server.\nChanging this creates a new server. Options are limited depending on AZ. Default: `SSD`. Available options are:\n* `SAS`: high I/O disk type. Available for all AZs.\n* `SSD`: ultra-high I/O disk type. Available for all AZs.\n* `GPSSD`: the general purpose SSD type\n* `ESSD`: extreme SSD disk type.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FEcsInstanceV1Timeouts:EcsInstanceV1Timeouts"},"tpmEnabled":{"description":"Specifies whether to enable vTPM on the ECS. Defaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\nCurrently, only `Pi5e` instance types support TPM.\n\n> **NOTE:** Changing this parameter will cause the server to be automatically stopped, updated, and started again.\n","type":"boolean"},"userData":{"description":"The user data to provide when launching the instance.\nChanging this creates a new server.\n","type":"string"},"volumesAttacheds":{"items":{"$ref":"#/types/opentelekomcloud:index%2FEcsInstanceV1VolumesAttached:EcsInstanceV1VolumesAttached"},"type":"array"},"vpcId":{"description":"The ID of the desired VPC for the server. Changing this creates a new server.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/enterpriseVpnConnectionMonitorV5:EnterpriseVpnConnectionMonitorV5":{"inputProperties":{"connectionId":{"type":"string"},"enterpriseVpnConnectionMonitorV5Id":{"type":"string"}},"properties":{"connectionId":{"type":"string"},"destinationIp":{"type":"string"},"enterpriseVpnConnectionMonitorV5Id":{"type":"string"},"region":{"type":"string"},"sourceIp":{"type":"string"},"status":{"type":"string"}},"required":["connectionId","destinationIp","enterpriseVpnConnectionMonitorV5Id","region","sourceIp","status"],"requiredInputs":["connectionId"],"stateInputs":{"description":"Input properties used for looking up and filtering EnterpriseVpnConnectionMonitorV5 resources.\n","properties":{"connectionId":{"type":"string"},"destinationIp":{"type":"string"},"enterpriseVpnConnectionMonitorV5Id":{"type":"string"},"region":{"type":"string"},"sourceIp":{"type":"string"},"status":{"type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/enterpriseVpnConnectionV5:EnterpriseVpnConnectionV5":{"inputProperties":{"customerGatewayId":{"type":"string"},"enableNqa":{"type":"boolean"},"enterpriseVpnConnectionV5Id":{"type":"string"},"gatewayId":{"type":"string"},"gatewayIp":{"type":"string"},"haRole":{"type":"string"},"ikepolicy":{"$ref":"#/types/opentelekomcloud:index%2FEnterpriseVpnConnectionV5Ikepolicy:EnterpriseVpnConnectionV5Ikepolicy"},"ipsecpolicy":{"$ref":"#/types/opentelekomcloud:index%2FEnterpriseVpnConnectionV5Ipsecpolicy:EnterpriseVpnConnectionV5Ipsecpolicy"},"name":{"type":"string"},"peerSubnets":{"items":{"type":"string"},"type":"array"},"policyRules":{"items":{"$ref":"#/types/opentelekomcloud:index%2FEnterpriseVpnConnectionV5PolicyRule:EnterpriseVpnConnectionV5PolicyRule"},"type":"array"},"psk":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FEnterpriseVpnConnectionV5Timeouts:EnterpriseVpnConnectionV5Timeouts"},"tunnelLocalAddress":{"type":"string"},"tunnelPeerAddress":{"type":"string"},"vpnType":{"type":"string"}},"properties":{"createdAt":{"type":"string"},"customerGatewayId":{"type":"string"},"enableNqa":{"type":"boolean"},"enterpriseVpnConnectionV5Id":{"type":"string"},"gatewayId":{"type":"string"},"gatewayIp":{"type":"string"},"haRole":{"type":"string"},"ikepolicy":{"$ref":"#/types/opentelekomcloud:index%2FEnterpriseVpnConnectionV5Ikepolicy:EnterpriseVpnConnectionV5Ikepolicy"},"ipsecpolicy":{"$ref":"#/types/opentelekomcloud:index%2FEnterpriseVpnConnectionV5Ipsecpolicy:EnterpriseVpnConnectionV5Ipsecpolicy"},"name":{"type":"string"},"peerSubnets":{"items":{"type":"string"},"type":"array"},"policyRules":{"items":{"$ref":"#/types/opentelekomcloud:index%2FEnterpriseVpnConnectionV5PolicyRule:EnterpriseVpnConnectionV5PolicyRule"},"type":"array"},"psk":{"type":"string"},"region":{"type":"string"},"status":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FEnterpriseVpnConnectionV5Timeouts:EnterpriseVpnConnectionV5Timeouts"},"tunnelLocalAddress":{"type":"string"},"tunnelPeerAddress":{"type":"string"},"updatedAt":{"type":"string"},"vpnType":{"type":"string"}},"required":["createdAt","customerGatewayId","enableNqa","enterpriseVpnConnectionV5Id","gatewayId","gatewayIp","haRole","name","peerSubnets","psk","region","status","tunnelLocalAddress","tunnelPeerAddress","updatedAt","vpnType"],"requiredInputs":["customerGatewayId","gatewayId","gatewayIp","psk","vpnType"],"stateInputs":{"description":"Input properties used for looking up and filtering EnterpriseVpnConnectionV5 resources.\n","properties":{"createdAt":{"type":"string"},"customerGatewayId":{"type":"string"},"enableNqa":{"type":"boolean"},"enterpriseVpnConnectionV5Id":{"type":"string"},"gatewayId":{"type":"string"},"gatewayIp":{"type":"string"},"haRole":{"type":"string"},"ikepolicy":{"$ref":"#/types/opentelekomcloud:index%2FEnterpriseVpnConnectionV5Ikepolicy:EnterpriseVpnConnectionV5Ikepolicy"},"ipsecpolicy":{"$ref":"#/types/opentelekomcloud:index%2FEnterpriseVpnConnectionV5Ipsecpolicy:EnterpriseVpnConnectionV5Ipsecpolicy"},"name":{"type":"string"},"peerSubnets":{"items":{"type":"string"},"type":"array"},"policyRules":{"items":{"$ref":"#/types/opentelekomcloud:index%2FEnterpriseVpnConnectionV5PolicyRule:EnterpriseVpnConnectionV5PolicyRule"},"type":"array"},"psk":{"type":"string"},"region":{"type":"string"},"status":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FEnterpriseVpnConnectionV5Timeouts:EnterpriseVpnConnectionV5Timeouts"},"tunnelLocalAddress":{"type":"string"},"tunnelPeerAddress":{"type":"string"},"updatedAt":{"type":"string"},"vpnType":{"type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/enterpriseVpnCustomerGatewayV5:EnterpriseVpnCustomerGatewayV5":{"inputProperties":{"asn":{"type":"number"},"enterpriseVpnCustomerGatewayV5Id":{"type":"string"},"idType":{"type":"string"},"idValue":{"type":"string"},"name":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"}},"properties":{"asn":{"type":"number"},"createdAt":{"type":"string"},"enterpriseVpnCustomerGatewayV5Id":{"type":"string"},"idType":{"type":"string"},"idValue":{"type":"string"},"ip":{"type":"string"},"name":{"type":"string"},"region":{"type":"string"},"routeMode":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"updatedAt":{"type":"string"}},"required":["createdAt","enterpriseVpnCustomerGatewayV5Id","idValue","ip","name","region","routeMode","updatedAt"],"stateInputs":{"description":"Input properties used for looking up and filtering EnterpriseVpnCustomerGatewayV5 resources.\n","properties":{"asn":{"type":"number"},"createdAt":{"type":"string"},"enterpriseVpnCustomerGatewayV5Id":{"type":"string"},"idType":{"type":"string"},"idValue":{"type":"string"},"ip":{"type":"string"},"name":{"type":"string"},"region":{"type":"string"},"routeMode":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"updatedAt":{"type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/enterpriseVpnGatewayV5:EnterpriseVpnGatewayV5":{"inputProperties":{"accessPrivateIp1":{"type":"string"},"accessPrivateIp2":{"type":"string"},"accessSubnetId":{"type":"string"},"accessVpcId":{"type":"string"},"asn":{"type":"number"},"attachmentType":{"type":"string"},"availabilityZones":{"items":{"type":"string"},"type":"array"},"connectSubnet":{"type":"string"},"deleteEip":{"type":"boolean"},"eip1":{"$ref":"#/types/opentelekomcloud:index%2FEnterpriseVpnGatewayV5Eip1:EnterpriseVpnGatewayV5Eip1"},"eip2":{"$ref":"#/types/opentelekomcloud:index%2FEnterpriseVpnGatewayV5Eip2:EnterpriseVpnGatewayV5Eip2"},"enterpriseVpnGatewayV5Id":{"type":"string"},"erId":{"type":"string"},"flavor":{"type":"string"},"haMode":{"type":"string"},"localSubnets":{"items":{"type":"string"},"type":"array"},"name":{"type":"string"},"networkType":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FEnterpriseVpnGatewayV5Timeouts:EnterpriseVpnGatewayV5Timeouts"},"vpcId":{"type":"string"}},"properties":{"accessPrivateIp1":{"type":"string"},"accessPrivateIp2":{"type":"string"},"accessSubnetId":{"type":"string"},"accessVpcId":{"type":"string"},"asn":{"type":"number"},"attachmentType":{"type":"string"},"availabilityZones":{"items":{"type":"string"},"type":"array"},"connectSubnet":{"type":"string"},"createdAt":{"type":"string"},"deleteEip":{"type":"boolean"},"eip1":{"$ref":"#/types/opentelekomcloud:index%2FEnterpriseVpnGatewayV5Eip1:EnterpriseVpnGatewayV5Eip1"},"eip2":{"$ref":"#/types/opentelekomcloud:index%2FEnterpriseVpnGatewayV5Eip2:EnterpriseVpnGatewayV5Eip2"},"enterpriseVpnGatewayV5Id":{"type":"string"},"erAttachmentId":{"type":"string"},"erId":{"type":"string"},"flavor":{"type":"string"},"haMode":{"type":"string"},"localSubnets":{"items":{"type":"string"},"type":"array"},"name":{"type":"string"},"networkType":{"type":"string"},"region":{"type":"string"},"status":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FEnterpriseVpnGatewayV5Timeouts:EnterpriseVpnGatewayV5Timeouts"},"updatedAt":{"type":"string"},"usedConnectionGroup":{"type":"number"},"usedConnectionNumber":{"type":"number"},"vpcId":{"type":"string"}},"required":["accessPrivateIp1","accessPrivateIp2","accessSubnetId","accessVpcId","availabilityZones","connectSubnet","createdAt","enterpriseVpnGatewayV5Id","erAttachmentId","erId","flavor","haMode","localSubnets","name","networkType","region","status","updatedAt","usedConnectionGroup","usedConnectionNumber","vpcId"],"requiredInputs":["availabilityZones"],"stateInputs":{"description":"Input properties used for looking up and filtering EnterpriseVpnGatewayV5 resources.\n","properties":{"accessPrivateIp1":{"type":"string"},"accessPrivateIp2":{"type":"string"},"accessSubnetId":{"type":"string"},"accessVpcId":{"type":"string"},"asn":{"type":"number"},"attachmentType":{"type":"string"},"availabilityZones":{"items":{"type":"string"},"type":"array"},"connectSubnet":{"type":"string"},"createdAt":{"type":"string"},"deleteEip":{"type":"boolean"},"eip1":{"$ref":"#/types/opentelekomcloud:index%2FEnterpriseVpnGatewayV5Eip1:EnterpriseVpnGatewayV5Eip1"},"eip2":{"$ref":"#/types/opentelekomcloud:index%2FEnterpriseVpnGatewayV5Eip2:EnterpriseVpnGatewayV5Eip2"},"enterpriseVpnGatewayV5Id":{"type":"string"},"erAttachmentId":{"type":"string"},"erId":{"type":"string"},"flavor":{"type":"string"},"haMode":{"type":"string"},"localSubnets":{"items":{"type":"string"},"type":"array"},"name":{"type":"string"},"networkType":{"type":"string"},"region":{"type":"string"},"status":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FEnterpriseVpnGatewayV5Timeouts:EnterpriseVpnGatewayV5Timeouts"},"updatedAt":{"type":"string"},"usedConnectionGroup":{"type":"number"},"usedConnectionNumber":{"type":"number"},"vpcId":{"type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/erAssociationV3:ErAssociationV3":{"description":"Manages an association resource under the route table for ER service within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst routeTableId = config.requireObject<any>(\"routeTableId\");\nconst attachmentId = config.requireObject<any>(\"attachmentId\");\nconst test = new opentelekomcloud.ErAssociationV3(\"test\", {\n    instanceId: instanceId,\n    routeTableId: routeTableId,\n    attachmentId: attachmentId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nroute_table_id = config.require_object(\"routeTableId\")\nattachment_id = config.require_object(\"attachmentId\")\ntest = opentelekomcloud.ErAssociationV3(\"test\",\n    instance_id=instance_id,\n    route_table_id=route_table_id,\n    attachment_id=attachment_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var routeTableId = config.RequireObject<dynamic>(\"routeTableId\");\n    var attachmentId = config.RequireObject<dynamic>(\"attachmentId\");\n    var test = new Opentelekomcloud.ErAssociationV3(\"test\", new()\n    {\n        InstanceId = instanceId,\n        RouteTableId = routeTableId,\n        AttachmentId = attachmentId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\trouteTableId := cfg.RequireObject(\"routeTableId\")\n\t\tattachmentId := cfg.RequireObject(\"attachmentId\")\n\t\t_, err := opentelekomcloud.NewErAssociationV3(ctx, \"test\", &opentelekomcloud.ErAssociationV3Args{\n\t\t\tInstanceId:   pulumi.Any(instanceId),\n\t\t\tRouteTableId: pulumi.Any(routeTableId),\n\t\t\tAttachmentId: pulumi.Any(attachmentId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ErAssociationV3;\nimport com.pulumi.opentelekomcloud.ErAssociationV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var routeTableId = config.get(\"routeTableId\");\n        final var attachmentId = config.get(\"attachmentId\");\n        var test = new ErAssociationV3(\"test\", ErAssociationV3Args.builder()\n            .instanceId(instanceId)\n            .routeTableId(routeTableId)\n            .attachmentId(attachmentId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  routeTableId:\n    type: dynamic\n  attachmentId:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:ErAssociationV3\n    properties:\n      instanceId: ${instanceId}\n      routeTableId: ${routeTableId}\n      attachmentId: ${attachmentId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nAssociations can be imported using their `id` and the related `instance_id` and `route_table_id`, separated by\nslashes (/), e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/erAssociationV3:ErAssociationV3 test instance_id/route_table_id/id\n```\n","inputProperties":{"attachmentId":{"description":"Specifies the ID of the attachment corresponding to the association.\n","type":"string"},"erAssociationV3Id":{"description":"The resource ID.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the ER instance to which the route table and the\nattachment belongs.\n","type":"string"},"routeTableId":{"description":"Specifies the ID of the route table to which the association\nbelongs.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FErAssociationV3Timeouts:ErAssociationV3Timeouts"}},"properties":{"attachmentId":{"description":"Specifies the ID of the attachment corresponding to the association.\n","type":"string"},"attachmentType":{"description":"The type of the attachment corresponding to the association.\n","type":"string"},"createdAt":{"description":"The creation time.\n","type":"string"},"erAssociationV3Id":{"description":"The resource ID.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the ER instance to which the route table and the\nattachment belongs.\n","type":"string"},"region":{"description":"The region where the ER instance and route table are located.\n","type":"string"},"routeTableId":{"description":"Specifies the ID of the route table to which the association\nbelongs.\n","type":"string"},"status":{"description":"The current status of the association.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FErAssociationV3Timeouts:ErAssociationV3Timeouts"},"updatedAt":{"description":"The latest update time.\n","type":"string"}},"required":["attachmentId","attachmentType","createdAt","erAssociationV3Id","instanceId","region","routeTableId","status","updatedAt"],"requiredInputs":["attachmentId","instanceId","routeTableId"],"stateInputs":{"description":"Input properties used for looking up and filtering ErAssociationV3 resources.\n","properties":{"attachmentId":{"description":"Specifies the ID of the attachment corresponding to the association.\n","type":"string"},"attachmentType":{"description":"The type of the attachment corresponding to the association.\n","type":"string"},"createdAt":{"description":"The creation time.\n","type":"string"},"erAssociationV3Id":{"description":"The resource ID.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the ER instance to which the route table and the\nattachment belongs.\n","type":"string"},"region":{"description":"The region where the ER instance and route table are located.\n","type":"string"},"routeTableId":{"description":"Specifies the ID of the route table to which the association\nbelongs.\n","type":"string"},"status":{"description":"The current status of the association.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FErAssociationV3Timeouts:ErAssociationV3Timeouts"},"updatedAt":{"description":"The latest update time.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/erFlowLogV3:ErFlowLogV3":{"description":"Manages an Enterprise Router Flow Log resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst logGroupId = config.requireObject<any>(\"logGroupId\");\nconst logStreamId = config.requireObject<any>(\"logStreamId\");\nconst resourceId = config.requireObject<any>(\"resourceId\");\nconst flowLogName = config.requireObject<any>(\"flowLogName\");\nconst test = new opentelekomcloud.ErFlowLogV3(\"test\", {\n    instanceId: instanceId,\n    logStoreType: \"LTS\",\n    logGroupId: logGroupId,\n    logStreamId: logStreamId,\n    resourceType: \"attachment\",\n    resourceId: resourceId,\n    name: flowLogName,\n    description: \"Created by terraform\",\n    enabled: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nlog_group_id = config.require_object(\"logGroupId\")\nlog_stream_id = config.require_object(\"logStreamId\")\nresource_id = config.require_object(\"resourceId\")\nflow_log_name = config.require_object(\"flowLogName\")\ntest = opentelekomcloud.ErFlowLogV3(\"test\",\n    instance_id=instance_id,\n    log_store_type=\"LTS\",\n    log_group_id=log_group_id,\n    log_stream_id=log_stream_id,\n    resource_type=\"attachment\",\n    resource_id=resource_id,\n    name=flow_log_name,\n    description=\"Created by terraform\",\n    enabled=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var logGroupId = config.RequireObject<dynamic>(\"logGroupId\");\n    var logStreamId = config.RequireObject<dynamic>(\"logStreamId\");\n    var resourceId = config.RequireObject<dynamic>(\"resourceId\");\n    var flowLogName = config.RequireObject<dynamic>(\"flowLogName\");\n    var test = new Opentelekomcloud.ErFlowLogV3(\"test\", new()\n    {\n        InstanceId = instanceId,\n        LogStoreType = \"LTS\",\n        LogGroupId = logGroupId,\n        LogStreamId = logStreamId,\n        ResourceType = \"attachment\",\n        ResourceId = resourceId,\n        Name = flowLogName,\n        Description = \"Created by terraform\",\n        Enabled = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tlogGroupId := cfg.RequireObject(\"logGroupId\")\n\t\tlogStreamId := cfg.RequireObject(\"logStreamId\")\n\t\tresourceId := cfg.RequireObject(\"resourceId\")\n\t\tflowLogName := cfg.RequireObject(\"flowLogName\")\n\t\t_, err := opentelekomcloud.NewErFlowLogV3(ctx, \"test\", &opentelekomcloud.ErFlowLogV3Args{\n\t\t\tInstanceId:   pulumi.Any(instanceId),\n\t\t\tLogStoreType: pulumi.String(\"LTS\"),\n\t\t\tLogGroupId:   pulumi.Any(logGroupId),\n\t\t\tLogStreamId:  pulumi.Any(logStreamId),\n\t\t\tResourceType: pulumi.String(\"attachment\"),\n\t\t\tResourceId:   pulumi.Any(resourceId),\n\t\t\tName:         pulumi.Any(flowLogName),\n\t\t\tDescription:  pulumi.String(\"Created by terraform\"),\n\t\t\tEnabled:      pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ErFlowLogV3;\nimport com.pulumi.opentelekomcloud.ErFlowLogV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var logGroupId = config.get(\"logGroupId\");\n        final var logStreamId = config.get(\"logStreamId\");\n        final var resourceId = config.get(\"resourceId\");\n        final var flowLogName = config.get(\"flowLogName\");\n        var test = new ErFlowLogV3(\"test\", ErFlowLogV3Args.builder()\n            .instanceId(instanceId)\n            .logStoreType(\"LTS\")\n            .logGroupId(logGroupId)\n            .logStreamId(logStreamId)\n            .resourceType(\"attachment\")\n            .resourceId(resourceId)\n            .name(flowLogName)\n            .description(\"Created by terraform\")\n            .enabled(false)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  logGroupId:\n    type: dynamic\n  logStreamId:\n    type: dynamic\n  resourceId:\n    type: dynamic\n  flowLogName:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:ErFlowLogV3\n    properties:\n      instanceId: ${instanceId}\n      logStoreType: LTS\n      logGroupId: ${logGroupId}\n      logStreamId: ${logStreamId}\n      resourceType: attachment\n      resourceId: ${resourceId}\n      name: ${flowLogName}\n      description: Created by terraform\n      enabled: false\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe flow log can be imported using the related `instance_id` and their `id`, separated by a slash (/), e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/erFlowLogV3:ErFlowLogV3 test <instance_id>/<id>\n```\n\n","inputProperties":{"description":{"description":"Specifies the description of the flow log.\n","type":"string"},"enabled":{"description":"Specifies whether to enable the flow log function. The default value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"erFlowLogV3Id":{"description":"The resource ID.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the ER instance to which the flow log belongs.\nChanging this creates a new resource.\n","type":"string"},"logGroupId":{"description":"Specifies the LTS log group ID.\nChanging this creates a new resource.\n","type":"string"},"logStoreType":{"description":"Specifies the storage type of flow log. The valid value is **LTS**.\nChanging this creates a new resource.\n","type":"string"},"logStreamId":{"description":"Specifies the LTS log stream ID.\nChanging this creates a new resource.\n","type":"string"},"name":{"description":"Specifies the name of the flow log.\n","type":"string"},"resourceId":{"description":"Specifies the resource ID to which the logs to be collected.\nChanging this creates a new resource.\n","type":"string"},"resourceType":{"description":"Specifies the resource type to which the logs to be collected.\nThe valid value is <span pulumi-lang-nodejs=\"`attachment`\" pulumi-lang-dotnet=\"`Attachment`\" pulumi-lang-go=\"`attachment`\" pulumi-lang-python=\"`attachment`\" pulumi-lang-yaml=\"`attachment`\" pulumi-lang-java=\"`attachment`\">`attachment`</span>.\nChanging this creates a new resource.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FErFlowLogV3Timeouts:ErFlowLogV3Timeouts"}},"properties":{"createdAt":{"description":"The creation time of the flow log.\n","type":"string"},"description":{"description":"Specifies the description of the flow log.\n","type":"string"},"enabled":{"description":"Specifies whether to enable the flow log function. The default value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"erFlowLogV3Id":{"description":"The resource ID.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the ER instance to which the flow log belongs.\nChanging this creates a new resource.\n","type":"string"},"logGroupId":{"description":"Specifies the LTS log group ID.\nChanging this creates a new resource.\n","type":"string"},"logStoreType":{"description":"Specifies the storage type of flow log. The valid value is **LTS**.\nChanging this creates a new resource.\n","type":"string"},"logStreamId":{"description":"Specifies the LTS log stream ID.\nChanging this creates a new resource.\n","type":"string"},"name":{"description":"Specifies the name of the flow log.\n","type":"string"},"region":{"description":"The region of the resource.\n","type":"string"},"resourceId":{"description":"Specifies the resource ID to which the logs to be collected.\nChanging this creates a new resource.\n","type":"string"},"resourceType":{"description":"Specifies the resource type to which the logs to be collected.\nThe valid value is <span pulumi-lang-nodejs=\"`attachment`\" pulumi-lang-dotnet=\"`Attachment`\" pulumi-lang-go=\"`attachment`\" pulumi-lang-python=\"`attachment`\" pulumi-lang-yaml=\"`attachment`\" pulumi-lang-java=\"`attachment`\">`attachment`</span>.\nChanging this creates a new resource.\n","type":"string"},"state":{"description":"The current status of the flow log.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FErFlowLogV3Timeouts:ErFlowLogV3Timeouts"},"updatedAt":{"description":"The latest update time of the flow log.\n","type":"string"}},"required":["createdAt","erFlowLogV3Id","instanceId","logGroupId","logStoreType","logStreamId","name","region","resourceId","resourceType","state","updatedAt"],"requiredInputs":["instanceId","logGroupId","logStoreType","logStreamId","resourceId","resourceType"],"stateInputs":{"description":"Input properties used for looking up and filtering ErFlowLogV3 resources.\n","properties":{"createdAt":{"description":"The creation time of the flow log.\n","type":"string"},"description":{"description":"Specifies the description of the flow log.\n","type":"string"},"enabled":{"description":"Specifies whether to enable the flow log function. The default value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"erFlowLogV3Id":{"description":"The resource ID.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the ER instance to which the flow log belongs.\nChanging this creates a new resource.\n","type":"string"},"logGroupId":{"description":"Specifies the LTS log group ID.\nChanging this creates a new resource.\n","type":"string"},"logStoreType":{"description":"Specifies the storage type of flow log. The valid value is **LTS**.\nChanging this creates a new resource.\n","type":"string"},"logStreamId":{"description":"Specifies the LTS log stream ID.\nChanging this creates a new resource.\n","type":"string"},"name":{"description":"Specifies the name of the flow log.\n","type":"string"},"region":{"description":"The region of the resource.\n","type":"string"},"resourceId":{"description":"Specifies the resource ID to which the logs to be collected.\nChanging this creates a new resource.\n","type":"string"},"resourceType":{"description":"Specifies the resource type to which the logs to be collected.\nThe valid value is <span pulumi-lang-nodejs=\"`attachment`\" pulumi-lang-dotnet=\"`Attachment`\" pulumi-lang-go=\"`attachment`\" pulumi-lang-python=\"`attachment`\" pulumi-lang-yaml=\"`attachment`\" pulumi-lang-java=\"`attachment`\">`attachment`</span>.\nChanging this creates a new resource.\n","type":"string"},"state":{"description":"The current status of the flow log.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FErFlowLogV3Timeouts:ErFlowLogV3Timeouts"},"updatedAt":{"description":"The latest update time of the flow log.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/erInstanceV3:ErInstanceV3":{"description":"Up-to-date reference of API arguments for Enterprise Router you can get at\n[documentation portal](https://docs.otc.t-systems.com/enterprise-router/api-ref/apis/enterprise_routers/index.html#enterpriserouterinstance)\n\nManages an ER instance resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst routerName = config.requireObject<any>(\"routerName\");\nconst availabilityZones = config.requireObject<Array<string>>(\"availabilityZones\");\nconst test = new opentelekomcloud.ErInstanceV3(\"test\", {\n    availabilityZones: availabilityZones,\n    name: routerName,\n    asn: 64512,\n    tags: {\n        foo: \"bar\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nrouter_name = config.require_object(\"routerName\")\navailability_zones = config.require_object(\"availabilityZones\")\ntest = opentelekomcloud.ErInstanceV3(\"test\",\n    availability_zones=availability_zones,\n    name=router_name,\n    asn=64512,\n    tags={\n        \"foo\": \"bar\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var routerName = config.RequireObject<dynamic>(\"routerName\");\n    var availabilityZones = config.RequireObject<string[]>(\"availabilityZones\");\n    var test = new Opentelekomcloud.ErInstanceV3(\"test\", new()\n    {\n        AvailabilityZones = availabilityZones,\n        Name = routerName,\n        Asn = 64512,\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\trouterName := cfg.RequireObject(\"routerName\")\n\t\tavailabilityZones := cfg.Require(\"availabilityZones\")\n\t\t_, err := opentelekomcloud.NewErInstanceV3(ctx, \"test\", &opentelekomcloud.ErInstanceV3Args{\n\t\t\tAvailabilityZones: availabilityZones,\n\t\t\tName:              pulumi.Any(routerName),\n\t\t\tAsn:               pulumi.Float64(64512),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ErInstanceV3;\nimport com.pulumi.opentelekomcloud.ErInstanceV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var routerName = config.get(\"routerName\");\n        final var availabilityZones = config.get(\"availabilityZones\");\n        var test = new ErInstanceV3(\"test\", ErInstanceV3Args.builder()\n            .availabilityZones(availabilityZones)\n            .name(routerName)\n            .asn(64512.0)\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  routerName:\n    type: dynamic\n  availabilityZones:\n    type: list(string)\nresources:\n  test:\n    type: opentelekomcloud:ErInstanceV3\n    properties:\n      availabilityZones: ${availabilityZones}\n      name: ${routerName}\n      asn: 64512\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe router instance can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/erInstanceV3:ErInstanceV3 test 0ce123456a00f2591fabc00385ff1234\n```\n","inputProperties":{"asn":{"description":"The BGP AS number of the ER instance.\nThe valid value is range from `64,512` to <span pulumi-lang-nodejs=\"`65534`\" pulumi-lang-dotnet=\"`65534`\" pulumi-lang-go=\"`65534`\" pulumi-lang-python=\"`65534`\" pulumi-lang-yaml=\"`65534`\" pulumi-lang-java=\"`65534`\">`65534`</span> or range from `4,200,000,000` to `4,294,967,294`.\n\nChanging this parameter will create a new resource.\n","type":"number"},"autoAcceptSharedAttachments":{"description":"Whether to automatically accept the creation of shared\nattachment.\nThe default value is **false**.\n","type":"boolean"},"availabilityZones":{"description":"The availability zone list where the ER instance is located.\nThe maximum number of availability zone is two. Select two AZs to configure active-active deployment for high\navailability which will ensure reliability and disaster recovery.\n","items":{"type":"string"},"type":"array"},"description":{"description":"The description of the ER instance.\nThe description contain a maximum of 255 characters, and the angle brackets (< and >) are not allowed.\n","type":"string"},"enableDefaultAssociation":{"description":"Whether to enable the association of the default route table.\nThe default value is **false**.\n","type":"boolean"},"enableDefaultPropagation":{"description":"Whether to enable the propagation of the default route table.\nThe default value is **false**.\n","type":"boolean"},"erInstanceV3Id":{"description":"The resource ID.\n","type":"string"},"name":{"description":"The router name.\nThe name can contain 1 to 64 characters, only letters, digits, underscore (_) and hyphens (-) are allowed.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FErInstanceV3Timeouts:ErInstanceV3Timeouts"}},"properties":{"asn":{"description":"The BGP AS number of the ER instance.\nThe valid value is range from `64,512` to <span pulumi-lang-nodejs=\"`65534`\" pulumi-lang-dotnet=\"`65534`\" pulumi-lang-go=\"`65534`\" pulumi-lang-python=\"`65534`\" pulumi-lang-yaml=\"`65534`\" pulumi-lang-java=\"`65534`\">`65534`</span> or range from `4,200,000,000` to `4,294,967,294`.\n\nChanging this parameter will create a new resource.\n","type":"number"},"autoAcceptSharedAttachments":{"description":"Whether to automatically accept the creation of shared\nattachment.\nThe default value is **false**.\n","type":"boolean"},"availabilityZones":{"description":"The availability zone list where the ER instance is located.\nThe maximum number of availability zone is two. Select two AZs to configure active-active deployment for high\navailability which will ensure reliability and disaster recovery.\n","items":{"type":"string"},"type":"array"},"createdAt":{"description":"The creation time.\n","type":"string"},"defaultAssociationRouteTableId":{"description":"The ID of the default association route table.\n","type":"string"},"defaultPropagationRouteTableId":{"description":"The ID of the default propagation route table.\n","type":"string"},"description":{"description":"The description of the ER instance.\nThe description contain a maximum of 255 characters, and the angle brackets (< and >) are not allowed.\n","type":"string"},"enableDefaultAssociation":{"description":"Whether to enable the association of the default route table.\nThe default value is **false**.\n","type":"boolean"},"enableDefaultPropagation":{"description":"Whether to enable the propagation of the default route table.\nThe default value is **false**.\n","type":"boolean"},"erInstanceV3Id":{"description":"The resource ID.\n","type":"string"},"name":{"description":"The router name.\nThe name can contain 1 to 64 characters, only letters, digits, underscore (_) and hyphens (-) are allowed.\n","type":"string"},"region":{"description":"Specifies the region of the ER instance.\n","type":"string"},"status":{"description":"Current status of the router.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FErInstanceV3Timeouts:ErInstanceV3Timeouts"},"updatedAt":{"description":"The latest update time.\n","type":"string"}},"required":["asn","autoAcceptSharedAttachments","availabilityZones","createdAt","defaultAssociationRouteTableId","defaultPropagationRouteTableId","description","enableDefaultAssociation","enableDefaultPropagation","erInstanceV3Id","name","region","status","updatedAt"],"requiredInputs":["asn","availabilityZones"],"stateInputs":{"description":"Input properties used for looking up and filtering ErInstanceV3 resources.\n","properties":{"asn":{"description":"The BGP AS number of the ER instance.\nThe valid value is range from `64,512` to <span pulumi-lang-nodejs=\"`65534`\" pulumi-lang-dotnet=\"`65534`\" pulumi-lang-go=\"`65534`\" pulumi-lang-python=\"`65534`\" pulumi-lang-yaml=\"`65534`\" pulumi-lang-java=\"`65534`\">`65534`</span> or range from `4,200,000,000` to `4,294,967,294`.\n\nChanging this parameter will create a new resource.\n","type":"number"},"autoAcceptSharedAttachments":{"description":"Whether to automatically accept the creation of shared\nattachment.\nThe default value is **false**.\n","type":"boolean"},"availabilityZones":{"description":"The availability zone list where the ER instance is located.\nThe maximum number of availability zone is two. Select two AZs to configure active-active deployment for high\navailability which will ensure reliability and disaster recovery.\n","items":{"type":"string"},"type":"array"},"createdAt":{"description":"The creation time.\n","type":"string"},"defaultAssociationRouteTableId":{"description":"The ID of the default association route table.\n","type":"string"},"defaultPropagationRouteTableId":{"description":"The ID of the default propagation route table.\n","type":"string"},"description":{"description":"The description of the ER instance.\nThe description contain a maximum of 255 characters, and the angle brackets (< and >) are not allowed.\n","type":"string"},"enableDefaultAssociation":{"description":"Whether to enable the association of the default route table.\nThe default value is **false**.\n","type":"boolean"},"enableDefaultPropagation":{"description":"Whether to enable the propagation of the default route table.\nThe default value is **false**.\n","type":"boolean"},"erInstanceV3Id":{"description":"The resource ID.\n","type":"string"},"name":{"description":"The router name.\nThe name can contain 1 to 64 characters, only letters, digits, underscore (_) and hyphens (-) are allowed.\n","type":"string"},"region":{"description":"Specifies the region of the ER instance.\n","type":"string"},"status":{"description":"Current status of the router.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FErInstanceV3Timeouts:ErInstanceV3Timeouts"},"updatedAt":{"description":"The latest update time.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/erPropagationV3:ErPropagationV3":{"description":"Manages a propagation resource under the route table for ER service within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst routeTableId = config.requireObject<any>(\"routeTableId\");\nconst attachmentId = config.requireObject<any>(\"attachmentId\");\nconst test = new opentelekomcloud.index._erPropagationV3(\"test\", {\n    instanceId: instanceId,\n    routeTableId: routeTableId,\n    attachmentId: attachmentId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nroute_table_id = config.require_object(\"routeTableId\")\nattachment_id = config.require_object(\"attachmentId\")\ntest = opentelekomcloud.index._erPropagationV3(\"test\",\n    instance_id=instance_id,\n    route_table_id=route_table_id,\n    attachment_id=attachment_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var routeTableId = config.RequireObject<dynamic>(\"routeTableId\");\n    var attachmentId = config.RequireObject<dynamic>(\"attachmentId\");\n    var test = new Opentelekomcloud.Index._erPropagationV3(\"test\", new()\n    {\n        InstanceId = instanceId,\n        RouteTableId = routeTableId,\n        AttachmentId = attachmentId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\trouteTableId := cfg.RequireObject(\"routeTableId\")\n\t\tattachmentId := cfg.RequireObject(\"attachmentId\")\n\t\t_, err := opentelekomcloud.New_erPropagationV3(ctx, \"test\", &opentelekomcloud._erPropagationV3Args{\n\t\t\tInstanceId:   instanceId,\n\t\t\tRouteTableId: routeTableId,\n\t\t\tAttachmentId: attachmentId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud._erPropagationV3;\nimport com.pulumi.opentelekomcloud._erPropagationV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var routeTableId = config.get(\"routeTableId\");\n        final var attachmentId = config.get(\"attachmentId\");\n        var test = new _erPropagationV3(\"test\", _erPropagationV3Args.builder()\n            .instanceId(instanceId)\n            .routeTableId(routeTableId)\n            .attachmentId(attachmentId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  routeTableId:\n    type: dynamic\n  attachmentId:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:_erPropagationV3\n    properties:\n      instanceId: ${instanceId}\n      routeTableId: ${routeTableId}\n      attachmentId: ${attachmentId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nPropagations can be imported using their `id` and the related `instance_id` and `route_table_id`, separated by\nslashes (/), e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/erPropagationV3:ErPropagationV3 test instance_id/troute_table_id/id\n```\n","inputProperties":{"attachmentId":{"description":"Specifies the ID of the attachment corresponding to the propagation.\n","type":"string"},"erPropagationV3Id":{"description":"The resource ID.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the ER instance to which the route table and the\nattachment belongs.\n","type":"string"},"routeTableId":{"description":"Specifies the ID of the route table to which the propagation\nbelongs.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FErPropagationV3Timeouts:ErPropagationV3Timeouts"}},"properties":{"attachmentId":{"description":"Specifies the ID of the attachment corresponding to the propagation.\n","type":"string"},"attachmentType":{"description":"The type of the attachment corresponding to the propagation.\n","type":"string"},"createdAt":{"description":"The creation time.\n","type":"string"},"erPropagationV3Id":{"description":"The resource ID.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the ER instance to which the route table and the\nattachment belongs.\n","type":"string"},"region":{"description":"The region where the ER instance and route table are located.\n","type":"string"},"routeTableId":{"description":"Specifies the ID of the route table to which the propagation\nbelongs.\n","type":"string"},"status":{"description":"The current status of the propagation.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FErPropagationV3Timeouts:ErPropagationV3Timeouts"},"updatedAt":{"description":"The latest update time.\n","type":"string"}},"required":["attachmentId","attachmentType","createdAt","erPropagationV3Id","instanceId","region","routeTableId","status","updatedAt"],"requiredInputs":["attachmentId","instanceId","routeTableId"],"stateInputs":{"description":"Input properties used for looking up and filtering ErPropagationV3 resources.\n","properties":{"attachmentId":{"description":"Specifies the ID of the attachment corresponding to the propagation.\n","type":"string"},"attachmentType":{"description":"The type of the attachment corresponding to the propagation.\n","type":"string"},"createdAt":{"description":"The creation time.\n","type":"string"},"erPropagationV3Id":{"description":"The resource ID.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the ER instance to which the route table and the\nattachment belongs.\n","type":"string"},"region":{"description":"The region where the ER instance and route table are located.\n","type":"string"},"routeTableId":{"description":"Specifies the ID of the route table to which the propagation\nbelongs.\n","type":"string"},"status":{"description":"The current status of the propagation.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FErPropagationV3Timeouts:ErPropagationV3Timeouts"},"updatedAt":{"description":"The latest update time.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/erRouteTableV3:ErRouteTableV3":{"description":"Manages a route table resource under the ER instance within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst routeTableName = config.requireObject<any>(\"routeTableName\");\nconst test = new opentelekomcloud.ErRouteTableV3(\"test\", {\n    instanceId: instanceId,\n    name: routeTableName,\n    description: \"Route table created by terraform\",\n    tags: {\n        foo: \"bar\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nroute_table_name = config.require_object(\"routeTableName\")\ntest = opentelekomcloud.ErRouteTableV3(\"test\",\n    instance_id=instance_id,\n    name=route_table_name,\n    description=\"Route table created by terraform\",\n    tags={\n        \"foo\": \"bar\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var routeTableName = config.RequireObject<dynamic>(\"routeTableName\");\n    var test = new Opentelekomcloud.ErRouteTableV3(\"test\", new()\n    {\n        InstanceId = instanceId,\n        Name = routeTableName,\n        Description = \"Route table created by terraform\",\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\trouteTableName := cfg.RequireObject(\"routeTableName\")\n\t\t_, err := opentelekomcloud.NewErRouteTableV3(ctx, \"test\", &opentelekomcloud.ErRouteTableV3Args{\n\t\t\tInstanceId:  pulumi.Any(instanceId),\n\t\t\tName:        pulumi.Any(routeTableName),\n\t\t\tDescription: pulumi.String(\"Route table created by terraform\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ErRouteTableV3;\nimport com.pulumi.opentelekomcloud.ErRouteTableV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var routeTableName = config.get(\"routeTableName\");\n        var test = new ErRouteTableV3(\"test\", ErRouteTableV3Args.builder()\n            .instanceId(instanceId)\n            .name(routeTableName)\n            .description(\"Route table created by terraform\")\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  routeTableName:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:ErRouteTableV3\n    properties:\n      instanceId: ${instanceId}\n      name: ${routeTableName}\n      description: Route table created by terraform\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nRoute tables can be imported using their `id` and the related `instance_id`, separated by slashes (/), e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/erRouteTableV3:ErRouteTableV3 test instance_id/id\n```\n","inputProperties":{"description":{"description":"Specifies the description of the route table.\nThe description contain a maximum of 255 characters, and the angle brackets (< and >) are not allowed.\n","type":"string"},"erRouteTableV3Id":{"description":"The resource ID.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the ER instance to which the route table belongs.\n","type":"string"},"name":{"description":"Specifies the name of the route table.\nThe name can contain 1 to 64 characters, only letters, digits, underscore (_), hyphens (-) and dots (.) allowed.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"(Optional, Map) Tags key/value pairs to associate with the instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FErRouteTableV3Timeouts:ErRouteTableV3Timeouts"}},"properties":{"createdAt":{"description":"The creation time.\n","type":"string"},"description":{"description":"Specifies the description of the route table.\nThe description contain a maximum of 255 characters, and the angle brackets (< and >) are not allowed.\n","type":"string"},"erRouteTableV3Id":{"description":"The resource ID.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the ER instance to which the route table belongs.\n","type":"string"},"isDefaultAssociation":{"description":"Whether this route table is the default association route table.\n","type":"boolean"},"isDefaultPropagation":{"description":"Whether this route table is the default propagation route table.\n","type":"boolean"},"name":{"description":"Specifies the name of the route table.\nThe name can contain 1 to 64 characters, only letters, digits, underscore (_), hyphens (-) and dots (.) allowed.\n","type":"string"},"region":{"description":"The region where the ER instance and route table are located.\n","type":"string"},"status":{"description":"The current status of the route table.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"(Optional, Map) Tags key/value pairs to associate with the instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FErRouteTableV3Timeouts:ErRouteTableV3Timeouts"},"updatedAt":{"description":"The latest update time.\n","type":"string"}},"required":["createdAt","erRouteTableV3Id","instanceId","isDefaultAssociation","isDefaultPropagation","name","region","status","updatedAt"],"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering ErRouteTableV3 resources.\n","properties":{"createdAt":{"description":"The creation time.\n","type":"string"},"description":{"description":"Specifies the description of the route table.\nThe description contain a maximum of 255 characters, and the angle brackets (< and >) are not allowed.\n","type":"string"},"erRouteTableV3Id":{"description":"The resource ID.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the ER instance to which the route table belongs.\n","type":"string"},"isDefaultAssociation":{"description":"Whether this route table is the default association route table.\n","type":"boolean"},"isDefaultPropagation":{"description":"Whether this route table is the default propagation route table.\n","type":"boolean"},"name":{"description":"Specifies the name of the route table.\nThe name can contain 1 to 64 characters, only letters, digits, underscore (_), hyphens (-) and dots (.) allowed.\n","type":"string"},"region":{"description":"The region where the ER instance and route table are located.\n","type":"string"},"status":{"description":"The current status of the route table.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"(Optional, Map) Tags key/value pairs to associate with the instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FErRouteTableV3Timeouts:ErRouteTableV3Timeouts"},"updatedAt":{"description":"The latest update time.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/erStaticRouteV3:ErStaticRouteV3":{"description":"Manages a static route under the ER route table within OpenTelekomCloud.\n\n## Example Usage\n\n### Create a static route and cross the VPC\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst routeTableId = config.requireObject<any>(\"routeTableId\");\nconst destinationVpcCidr = config.requireObject<any>(\"destinationVpcCidr\");\nconst sourceVpcAttachmentId = config.requireObject<any>(\"sourceVpcAttachmentId\");\nconst test = new opentelekomcloud.ErStaticRouteV3(\"test\", {\n    routeTableId: routeTableId,\n    destination: destinationVpcCidr,\n    attachmentId: sourceVpcAttachmentId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nroute_table_id = config.require_object(\"routeTableId\")\ndestination_vpc_cidr = config.require_object(\"destinationVpcCidr\")\nsource_vpc_attachment_id = config.require_object(\"sourceVpcAttachmentId\")\ntest = opentelekomcloud.ErStaticRouteV3(\"test\",\n    route_table_id=route_table_id,\n    destination=destination_vpc_cidr,\n    attachment_id=source_vpc_attachment_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var routeTableId = config.RequireObject<dynamic>(\"routeTableId\");\n    var destinationVpcCidr = config.RequireObject<dynamic>(\"destinationVpcCidr\");\n    var sourceVpcAttachmentId = config.RequireObject<dynamic>(\"sourceVpcAttachmentId\");\n    var test = new Opentelekomcloud.ErStaticRouteV3(\"test\", new()\n    {\n        RouteTableId = routeTableId,\n        Destination = destinationVpcCidr,\n        AttachmentId = sourceVpcAttachmentId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\trouteTableId := cfg.RequireObject(\"routeTableId\")\n\t\tdestinationVpcCidr := cfg.RequireObject(\"destinationVpcCidr\")\n\t\tsourceVpcAttachmentId := cfg.RequireObject(\"sourceVpcAttachmentId\")\n\t\t_, err := opentelekomcloud.NewErStaticRouteV3(ctx, \"test\", &opentelekomcloud.ErStaticRouteV3Args{\n\t\t\tRouteTableId: pulumi.Any(routeTableId),\n\t\t\tDestination:  pulumi.Any(destinationVpcCidr),\n\t\t\tAttachmentId: pulumi.Any(sourceVpcAttachmentId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ErStaticRouteV3;\nimport com.pulumi.opentelekomcloud.ErStaticRouteV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var routeTableId = config.get(\"routeTableId\");\n        final var destinationVpcCidr = config.get(\"destinationVpcCidr\");\n        final var sourceVpcAttachmentId = config.get(\"sourceVpcAttachmentId\");\n        var test = new ErStaticRouteV3(\"test\", ErStaticRouteV3Args.builder()\n            .routeTableId(routeTableId)\n            .destination(destinationVpcCidr)\n            .attachmentId(sourceVpcAttachmentId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  routeTableId:\n    type: dynamic\n  destinationVpcCidr:\n    type: dynamic\n  sourceVpcAttachmentId:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:ErStaticRouteV3\n    properties:\n      routeTableId: ${routeTableId}\n      destination: ${destinationVpcCidr}\n      attachmentId: ${sourceVpcAttachmentId}\n```\n<!--End PulumiCodeChooser -->\n\n### Create a black hole route\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst routeTableId = config.requireObject<any>(\"routeTableId\");\nconst destinationVpcCidr = config.requireObject<any>(\"destinationVpcCidr\");\nconst test = new opentelekomcloud.ErStaticRouteV3(\"test\", {\n    routeTableId: routeTableId,\n    destination: destinationVpcCidr,\n    isBlackhole: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nroute_table_id = config.require_object(\"routeTableId\")\ndestination_vpc_cidr = config.require_object(\"destinationVpcCidr\")\ntest = opentelekomcloud.ErStaticRouteV3(\"test\",\n    route_table_id=route_table_id,\n    destination=destination_vpc_cidr,\n    is_blackhole=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var routeTableId = config.RequireObject<dynamic>(\"routeTableId\");\n    var destinationVpcCidr = config.RequireObject<dynamic>(\"destinationVpcCidr\");\n    var test = new Opentelekomcloud.ErStaticRouteV3(\"test\", new()\n    {\n        RouteTableId = routeTableId,\n        Destination = destinationVpcCidr,\n        IsBlackhole = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\trouteTableId := cfg.RequireObject(\"routeTableId\")\n\t\tdestinationVpcCidr := cfg.RequireObject(\"destinationVpcCidr\")\n\t\t_, err := opentelekomcloud.NewErStaticRouteV3(ctx, \"test\", &opentelekomcloud.ErStaticRouteV3Args{\n\t\t\tRouteTableId: pulumi.Any(routeTableId),\n\t\t\tDestination:  pulumi.Any(destinationVpcCidr),\n\t\t\tIsBlackhole:  pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ErStaticRouteV3;\nimport com.pulumi.opentelekomcloud.ErStaticRouteV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var routeTableId = config.get(\"routeTableId\");\n        final var destinationVpcCidr = config.get(\"destinationVpcCidr\");\n        var test = new ErStaticRouteV3(\"test\", ErStaticRouteV3Args.builder()\n            .routeTableId(routeTableId)\n            .destination(destinationVpcCidr)\n            .isBlackhole(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  routeTableId:\n    type: dynamic\n  destinationVpcCidr:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:ErStaticRouteV3\n    properties:\n      routeTableId: ${routeTableId}\n      destination: ${destinationVpcCidr}\n      isBlackhole: true\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nStatic routes can be imported using the related `route_table_id` and their `id`, separated by a slash (/), e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/erStaticRouteV3:ErStaticRouteV3 test <route_table_id>/<id>\n```\n\n","inputProperties":{"attachmentId":{"description":"Specifies the ID of the corresponding attachment.\n","type":"string"},"destination":{"description":"Specifies the destination of the static route.\n","type":"string"},"erStaticRouteV3Id":{"description":"The resource ID.\n","type":"string"},"isBlackhole":{"description":"Specifies whether route is the black hole route, defaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n+ If the value is empty or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>, the parameter <span pulumi-lang-nodejs=\"`attachmentId`\" pulumi-lang-dotnet=\"`AttachmentId`\" pulumi-lang-go=\"`attachmentId`\" pulumi-lang-python=\"`attachment_id`\" pulumi-lang-yaml=\"`attachmentId`\" pulumi-lang-java=\"`attachmentId`\">`attachment_id`</span> is required.\n+ If the value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>, the parameter <span pulumi-lang-nodejs=\"`attachmentId`\" pulumi-lang-dotnet=\"`AttachmentId`\" pulumi-lang-go=\"`attachmentId`\" pulumi-lang-python=\"`attachment_id`\" pulumi-lang-yaml=\"`attachmentId`\" pulumi-lang-java=\"`attachmentId`\">`attachment_id`</span> must be empty.\n","type":"boolean"},"routeTableId":{"description":"Specifies the ID of the route table to which the static route\nbelongs.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FErStaticRouteV3Timeouts:ErStaticRouteV3Timeouts"}},"properties":{"attachmentId":{"description":"Specifies the ID of the corresponding attachment.\n","type":"string"},"createdAt":{"description":"The creation time of the static route.\n","type":"string"},"destination":{"description":"Specifies the destination of the static route.\n","type":"string"},"erStaticRouteV3Id":{"description":"The resource ID.\n","type":"string"},"isBlackhole":{"description":"Specifies whether route is the black hole route, defaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n+ If the value is empty or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>, the parameter <span pulumi-lang-nodejs=\"`attachmentId`\" pulumi-lang-dotnet=\"`AttachmentId`\" pulumi-lang-go=\"`attachmentId`\" pulumi-lang-python=\"`attachment_id`\" pulumi-lang-yaml=\"`attachmentId`\" pulumi-lang-java=\"`attachmentId`\">`attachment_id`</span> is required.\n+ If the value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>, the parameter <span pulumi-lang-nodejs=\"`attachmentId`\" pulumi-lang-dotnet=\"`AttachmentId`\" pulumi-lang-go=\"`attachmentId`\" pulumi-lang-python=\"`attachment_id`\" pulumi-lang-yaml=\"`attachmentId`\" pulumi-lang-java=\"`attachmentId`\">`attachment_id`</span> must be empty.\n","type":"boolean"},"region":{"description":"The region where the static route and related route table are located.\n","type":"string"},"routeTableId":{"description":"Specifies the ID of the route table to which the static route\nbelongs.\n","type":"string"},"status":{"description":"The current status of the static route.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FErStaticRouteV3Timeouts:ErStaticRouteV3Timeouts"},"type":{"description":"The type of the static route.\n","type":"string"},"updatedAt":{"description":"The latest update time of the static route.\n","type":"string"}},"required":["createdAt","destination","erStaticRouteV3Id","region","routeTableId","status","type","updatedAt"],"requiredInputs":["destination","routeTableId"],"stateInputs":{"description":"Input properties used for looking up and filtering ErStaticRouteV3 resources.\n","properties":{"attachmentId":{"description":"Specifies the ID of the corresponding attachment.\n","type":"string"},"createdAt":{"description":"The creation time of the static route.\n","type":"string"},"destination":{"description":"Specifies the destination of the static route.\n","type":"string"},"erStaticRouteV3Id":{"description":"The resource ID.\n","type":"string"},"isBlackhole":{"description":"Specifies whether route is the black hole route, defaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n+ If the value is empty or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>, the parameter <span pulumi-lang-nodejs=\"`attachmentId`\" pulumi-lang-dotnet=\"`AttachmentId`\" pulumi-lang-go=\"`attachmentId`\" pulumi-lang-python=\"`attachment_id`\" pulumi-lang-yaml=\"`attachmentId`\" pulumi-lang-java=\"`attachmentId`\">`attachment_id`</span> is required.\n+ If the value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>, the parameter <span pulumi-lang-nodejs=\"`attachmentId`\" pulumi-lang-dotnet=\"`AttachmentId`\" pulumi-lang-go=\"`attachmentId`\" pulumi-lang-python=\"`attachment_id`\" pulumi-lang-yaml=\"`attachmentId`\" pulumi-lang-java=\"`attachmentId`\">`attachment_id`</span> must be empty.\n","type":"boolean"},"region":{"description":"The region where the static route and related route table are located.\n","type":"string"},"routeTableId":{"description":"Specifies the ID of the route table to which the static route\nbelongs.\n","type":"string"},"status":{"description":"The current status of the static route.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FErStaticRouteV3Timeouts:ErStaticRouteV3Timeouts"},"type":{"description":"The type of the static route.\n","type":"string"},"updatedAt":{"description":"The latest update time of the static route.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/erVpcAttachmentV3:ErVpcAttachmentV3":{"description":"Up-to-date reference of API arguments for Enterprise Router you can get at\n[documentation portal](https://docs.otc.t-systems.com/enterprise-router/api-ref/apis/vpc_attachments/index.html).\n\nManages an ER vpc attachment resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst vpcId = config.requireObject<any>(\"vpcId\");\nconst subnetId = config.requireObject<any>(\"subnetId\");\nconst attachmentName = config.requireObject<any>(\"attachmentName\");\nconst test = new opentelekomcloud.ErVpcAttachmentV3(\"test\", {\n    instanceId: instanceId,\n    vpcId: vpcId,\n    subnetId: subnetId,\n    name: attachmentName,\n    description: \"VPC attachment created by terraform\",\n    autoCreateVpcRoutes: true,\n    tags: {\n        foo: \"bar\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\nvpc_id = config.require_object(\"vpcId\")\nsubnet_id = config.require_object(\"subnetId\")\nattachment_name = config.require_object(\"attachmentName\")\ntest = opentelekomcloud.ErVpcAttachmentV3(\"test\",\n    instance_id=instance_id,\n    vpc_id=vpc_id,\n    subnet_id=subnet_id,\n    name=attachment_name,\n    description=\"VPC attachment created by terraform\",\n    auto_create_vpc_routes=True,\n    tags={\n        \"foo\": \"bar\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var vpcId = config.RequireObject<dynamic>(\"vpcId\");\n    var subnetId = config.RequireObject<dynamic>(\"subnetId\");\n    var attachmentName = config.RequireObject<dynamic>(\"attachmentName\");\n    var test = new Opentelekomcloud.ErVpcAttachmentV3(\"test\", new()\n    {\n        InstanceId = instanceId,\n        VpcId = vpcId,\n        SubnetId = subnetId,\n        Name = attachmentName,\n        Description = \"VPC attachment created by terraform\",\n        AutoCreateVpcRoutes = true,\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\tvpcId := cfg.RequireObject(\"vpcId\")\n\t\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\tattachmentName := cfg.RequireObject(\"attachmentName\")\n\t\t_, err := opentelekomcloud.NewErVpcAttachmentV3(ctx, \"test\", &opentelekomcloud.ErVpcAttachmentV3Args{\n\t\t\tInstanceId:          pulumi.Any(instanceId),\n\t\t\tVpcId:               pulumi.Any(vpcId),\n\t\t\tSubnetId:            pulumi.Any(subnetId),\n\t\t\tName:                pulumi.Any(attachmentName),\n\t\t\tDescription:         pulumi.String(\"VPC attachment created by terraform\"),\n\t\t\tAutoCreateVpcRoutes: pulumi.Bool(true),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ErVpcAttachmentV3;\nimport com.pulumi.opentelekomcloud.ErVpcAttachmentV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        final var vpcId = config.get(\"vpcId\");\n        final var subnetId = config.get(\"subnetId\");\n        final var attachmentName = config.get(\"attachmentName\");\n        var test = new ErVpcAttachmentV3(\"test\", ErVpcAttachmentV3Args.builder()\n            .instanceId(instanceId)\n            .vpcId(vpcId)\n            .subnetId(subnetId)\n            .name(attachmentName)\n            .description(\"VPC attachment created by terraform\")\n            .autoCreateVpcRoutes(true)\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\n  vpcId:\n    type: dynamic\n  subnetId:\n    type: dynamic\n  attachmentName:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:ErVpcAttachmentV3\n    properties:\n      instanceId: ${instanceId}\n      vpcId: ${vpcId}\n      subnetId: ${subnetId}\n      name: ${attachmentName}\n      description: VPC attachment created by terraform\n      autoCreateVpcRoutes: true\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nVPC attachments can be imported using their `id` and the related `instance_id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/erVpcAttachmentV3:ErVpcAttachmentV3 test instance_id/id\n```\n","inputProperties":{"autoCreateVpcRoutes":{"description":"Specifies whether to automatically configure routes for the VPC\nwhich pointing to the ER instance.\nThe destination CIDRs of the routes are fixed as follows:\n+ **10.0.0.0/8**\n+ **172.16.0.0/12**\n+ **192.168.0.0/16**\n\nThe default value is false. Changing this parameter will create a new resource.\n","type":"boolean"},"description":{"description":"Specifies the description of the VPC attachment.\nThe description contain a maximum of 255 characters, and the angle brackets (< and >) are not allowed.\n","type":"string"},"erVpcAttachmentV3Id":{"description":"The resource ID.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the ER instance to which the VPC attachment\nbelongs.\nChanging this parameter will create a new resource.\n","type":"string"},"name":{"description":"Specifies the name of the VPC attachment.\nThe name can contain 1 to 64 characters, digits, underscore (_), hyphens (-) and\ndots (.) allowed.\n","type":"string"},"subnetId":{"description":"Specifies the ID of the VPC subnet to which the VPC attachment belongs.\nChanging this parameter will create a new resource.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FErVpcAttachmentV3Timeouts:ErVpcAttachmentV3Timeouts"},"vpcId":{"description":"Specifies the ID of the VPC to which the VPC attachment belongs.\nChanging this parameter will create a new resource.\n","type":"string"}},"properties":{"autoCreateVpcRoutes":{"description":"Specifies whether to automatically configure routes for the VPC\nwhich pointing to the ER instance.\nThe destination CIDRs of the routes are fixed as follows:\n+ **10.0.0.0/8**\n+ **172.16.0.0/12**\n+ **192.168.0.0/16**\n\nThe default value is false. Changing this parameter will create a new resource.\n","type":"boolean"},"createdAt":{"description":"The creation time.\n","type":"string"},"description":{"description":"Specifies the description of the VPC attachment.\nThe description contain a maximum of 255 characters, and the angle brackets (< and >) are not allowed.\n","type":"string"},"erVpcAttachmentV3Id":{"description":"The resource ID.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the ER instance to which the VPC attachment\nbelongs.\nChanging this parameter will create a new resource.\n","type":"string"},"name":{"description":"Specifies the name of the VPC attachment.\nThe name can contain 1 to 64 characters, digits, underscore (_), hyphens (-) and\ndots (.) allowed.\n","type":"string"},"region":{"description":"The region where the ER instance and the VPC attachment are.\n","type":"string"},"status":{"description":"The current status of the VPC attachment.\n","type":"string"},"subnetId":{"description":"Specifies the ID of the VPC subnet to which the VPC attachment belongs.\nChanging this parameter will create a new resource.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FErVpcAttachmentV3Timeouts:ErVpcAttachmentV3Timeouts"},"updatedAt":{"description":"The latest update time.\n","type":"string"},"vpcId":{"description":"Specifies the ID of the VPC to which the VPC attachment belongs.\nChanging this parameter will create a new resource.\n","type":"string"}},"required":["autoCreateVpcRoutes","createdAt","erVpcAttachmentV3Id","instanceId","name","region","status","subnetId","updatedAt","vpcId"],"requiredInputs":["instanceId","subnetId","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering ErVpcAttachmentV3 resources.\n","properties":{"autoCreateVpcRoutes":{"description":"Specifies whether to automatically configure routes for the VPC\nwhich pointing to the ER instance.\nThe destination CIDRs of the routes are fixed as follows:\n+ **10.0.0.0/8**\n+ **172.16.0.0/12**\n+ **192.168.0.0/16**\n\nThe default value is false. Changing this parameter will create a new resource.\n","type":"boolean"},"createdAt":{"description":"The creation time.\n","type":"string"},"description":{"description":"Specifies the description of the VPC attachment.\nThe description contain a maximum of 255 characters, and the angle brackets (< and >) are not allowed.\n","type":"string"},"erVpcAttachmentV3Id":{"description":"The resource ID.\n","type":"string"},"instanceId":{"description":"Specifies the ID of the ER instance to which the VPC attachment\nbelongs.\nChanging this parameter will create a new resource.\n","type":"string"},"name":{"description":"Specifies the name of the VPC attachment.\nThe name can contain 1 to 64 characters, digits, underscore (_), hyphens (-) and\ndots (.) allowed.\n","type":"string"},"region":{"description":"The region where the ER instance and the VPC attachment are.\n","type":"string"},"status":{"description":"The current status of the VPC attachment.\n","type":"string"},"subnetId":{"description":"Specifies the ID of the VPC subnet to which the VPC attachment belongs.\nChanging this parameter will create a new resource.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FErVpcAttachmentV3Timeouts:ErVpcAttachmentV3Timeouts"},"updatedAt":{"description":"The latest update time.\n","type":"string"},"vpcId":{"description":"Specifies the ID of the VPC to which the VPC attachment belongs.\nChanging this parameter will create a new resource.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/evsVolumeV3:EvsVolumeV3":{"description":"Up-to-date reference of API arguments for EVS you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-volume-service/api-ref/unrecommended_apis/openstack_cinder_api_v3)\n\nManages a V3 volume resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst volume1 = new opentelekomcloud.EvsVolumeV3(\"volume_1\", {\n    name: \"volume_1\",\n    description: \"first test volume\",\n    availabilityZone: \"eu-de-01\",\n    volumeType: \"SATA\",\n    size: 20,\n    tags: {\n        foo: \"bar\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nvolume1 = opentelekomcloud.EvsVolumeV3(\"volume_1\",\n    name=\"volume_1\",\n    description=\"first test volume\",\n    availability_zone=\"eu-de-01\",\n    volume_type=\"SATA\",\n    size=20,\n    tags={\n        \"foo\": \"bar\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var volume1 = new Opentelekomcloud.EvsVolumeV3(\"volume_1\", new()\n    {\n        Name = \"volume_1\",\n        Description = \"first test volume\",\n        AvailabilityZone = \"eu-de-01\",\n        VolumeType = \"SATA\",\n        Size = 20,\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewEvsVolumeV3(ctx, \"volume_1\", &opentelekomcloud.EvsVolumeV3Args{\n\t\t\tName:             pulumi.String(\"volume_1\"),\n\t\t\tDescription:      pulumi.String(\"first test volume\"),\n\t\t\tAvailabilityZone: pulumi.String(\"eu-de-01\"),\n\t\t\tVolumeType:       pulumi.String(\"SATA\"),\n\t\t\tSize:             pulumi.Float64(20),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.EvsVolumeV3;\nimport com.pulumi.opentelekomcloud.EvsVolumeV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var volume1 = new EvsVolumeV3(\"volume1\", EvsVolumeV3Args.builder()\n            .name(\"volume_1\")\n            .description(\"first test volume\")\n            .availabilityZone(\"eu-de-01\")\n            .volumeType(\"SATA\")\n            .size(20.0)\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  volume1:\n    type: opentelekomcloud:EvsVolumeV3\n    name: volume_1\n    properties:\n      name: volume_1\n      description: first test volume\n      availabilityZone: eu-de-01\n      volumeType: SATA\n      size: 20\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n### Use KMS encryption\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst volume1 = new opentelekomcloud.EvsVolumeV3(\"volume_1\", {\n    name: \"volume_1\",\n    description: \"first test volume\",\n    availabilityZone: \"eu-de-01\",\n    volumeType: \"SATA\",\n    kmsId: kmsId,\n    size: 20,\n    tags: {\n        foo: \"bar\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nvolume1 = opentelekomcloud.EvsVolumeV3(\"volume_1\",\n    name=\"volume_1\",\n    description=\"first test volume\",\n    availability_zone=\"eu-de-01\",\n    volume_type=\"SATA\",\n    kms_id=kms_id,\n    size=20,\n    tags={\n        \"foo\": \"bar\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var volume1 = new Opentelekomcloud.EvsVolumeV3(\"volume_1\", new()\n    {\n        Name = \"volume_1\",\n        Description = \"first test volume\",\n        AvailabilityZone = \"eu-de-01\",\n        VolumeType = \"SATA\",\n        KmsId = kmsId,\n        Size = 20,\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewEvsVolumeV3(ctx, \"volume_1\", &opentelekomcloud.EvsVolumeV3Args{\n\t\t\tName:             pulumi.String(\"volume_1\"),\n\t\t\tDescription:      pulumi.String(\"first test volume\"),\n\t\t\tAvailabilityZone: pulumi.String(\"eu-de-01\"),\n\t\t\tVolumeType:       pulumi.String(\"SATA\"),\n\t\t\tKmsId:            pulumi.Any(kmsId),\n\t\t\tSize:             pulumi.Float64(20),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.EvsVolumeV3;\nimport com.pulumi.opentelekomcloud.EvsVolumeV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var volume1 = new EvsVolumeV3(\"volume1\", EvsVolumeV3Args.builder()\n            .name(\"volume_1\")\n            .description(\"first test volume\")\n            .availabilityZone(\"eu-de-01\")\n            .volumeType(\"SATA\")\n            .kmsId(kmsId)\n            .size(20.0)\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  volume1:\n    type: opentelekomcloud:EvsVolumeV3\n    name: volume_1\n    properties:\n      name: volume_1\n      description: first test volume\n      availabilityZone: eu-de-01\n      volumeType: SATA\n      kmsId: ${kmsId}\n      size: 20\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nVolumes can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/evsVolumeV3:EvsVolumeV3 volume_1 14a80bc7-c12c-4fe0-a38a-cb77eeac9bd6\n```\n\n","inputProperties":{"availabilityZone":{"description":"The availability zone for the volume.\nChanging this creates a new volume.\n","type":"string"},"backupId":{"description":"The backup ID from which to create the volume.\nChanging this creates a new volume.\n","type":"string"},"cascade":{"description":"Specifies to delete all snapshots associated with the EVS disk. Default is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"description":{"description":"A description of the volume. Changing this updates the volume's description.\n","type":"string"},"deviceType":{"description":"The device type of volume to create. Valid options are VBD and SCSI.\nDefaults to `VBD`. Changing this creates a new volume.\n","type":"string"},"evsVolumeV3Id":{"type":"string"},"imageId":{"description":"The image ID from which to create the volume.\nChanging this creates a new volume.\n","type":"string"},"kmsId":{"description":"The Encryption KMS ID to create the volume.\nChanging this creates a new volume.\n","type":"string"},"multiattach":{"description":"Specifies whether the disk is shareable. The default value is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\nChanging this creates a new volume.\n","type":"boolean"},"name":{"description":"A unique name for the volume. Changing this updates the volume's name.\n","type":"string"},"size":{"description":"The size of the volume to create (in gigabytes). This parameter is mandatory when\nyou create an empty EVS disk or use an image or a snapshot to create an EVS disk.\n_Decreasing_ this value creates a new volume.\n","type":"number"},"snapshotId":{"description":"The snapshot ID from which to create the volume.\nChanging this creates a new volume.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the volume.\nChanging this updates the existing volume tags.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FEvsVolumeV3Timeouts:EvsVolumeV3Timeouts"},"volumeType":{"description":"The type of volume to create.\nCurrently, the value can be:\n* `SATA`: common I/O disk type. Available for all AZs.\n* `SAS`: high I/O disk type. Available for all AZs.\n* `SSD`: ultra-high I/O disk type. Available for all AZs.\n* `GPSSD`: the general purpose SSD type\n* `ESSD`: extreme SSD disk type.\n\n> **NOTE:**\nCommon I/O (SATA) will reach end of life, end of 2025.\n\nChanging this creates a new volume.\n","type":"string"}},"properties":{"attachments":{"description":"If a volume is attached to an instance, this attribute will\ndisplay the Attachment ID, Instance ID, and the Device as the Instance sees it.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FEvsVolumeV3Attachment:EvsVolumeV3Attachment"},"type":"array"},"availabilityZone":{"description":"The availability zone for the volume.\nChanging this creates a new volume.\n","type":"string"},"backupId":{"description":"The backup ID from which to create the volume.\nChanging this creates a new volume.\n","type":"string"},"cascade":{"description":"Specifies to delete all snapshots associated with the EVS disk. Default is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"description":{"description":"A description of the volume. Changing this updates the volume's description.\n","type":"string"},"deviceType":{"description":"The device type of volume to create. Valid options are VBD and SCSI.\nDefaults to `VBD`. Changing this creates a new volume.\n","type":"string"},"evsVolumeV3Id":{"type":"string"},"imageId":{"description":"The image ID from which to create the volume.\nChanging this creates a new volume.\n","type":"string"},"kmsId":{"description":"The Encryption KMS ID to create the volume.\nChanging this creates a new volume.\n","type":"string"},"multiattach":{"description":"Specifies whether the disk is shareable. The default value is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\nChanging this creates a new volume.\n","type":"boolean"},"name":{"description":"A unique name for the volume. Changing this updates the volume's name.\n","type":"string"},"size":{"description":"The size of the volume to create (in gigabytes). This parameter is mandatory when\nyou create an empty EVS disk or use an image or a snapshot to create an EVS disk.\n_Decreasing_ this value creates a new volume.\n","type":"number"},"snapshotId":{"description":"The snapshot ID from which to create the volume.\nChanging this creates a new volume.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the volume.\nChanging this updates the existing volume tags.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FEvsVolumeV3Timeouts:EvsVolumeV3Timeouts"},"volumeType":{"description":"The type of volume to create.\nCurrently, the value can be:\n* `SATA`: common I/O disk type. Available for all AZs.\n* `SAS`: high I/O disk type. Available for all AZs.\n* `SSD`: ultra-high I/O disk type. Available for all AZs.\n* `GPSSD`: the general purpose SSD type\n* `ESSD`: extreme SSD disk type.\n\n> **NOTE:**\nCommon I/O (SATA) will reach end of life, end of 2025.\n\nChanging this creates a new volume.\n","type":"string"},"wwn":{"description":"Specifies the unique identifier used for mounting the EVS disk.\n","type":"string"}},"required":["attachments","availabilityZone","evsVolumeV3Id","name","size","volumeType","wwn"],"requiredInputs":["availabilityZone","volumeType"],"stateInputs":{"description":"Input properties used for looking up and filtering EvsVolumeV3 resources.\n","properties":{"attachments":{"description":"If a volume is attached to an instance, this attribute will\ndisplay the Attachment ID, Instance ID, and the Device as the Instance sees it.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FEvsVolumeV3Attachment:EvsVolumeV3Attachment"},"type":"array"},"availabilityZone":{"description":"The availability zone for the volume.\nChanging this creates a new volume.\n","type":"string"},"backupId":{"description":"The backup ID from which to create the volume.\nChanging this creates a new volume.\n","type":"string"},"cascade":{"description":"Specifies to delete all snapshots associated with the EVS disk. Default is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"description":{"description":"A description of the volume. Changing this updates the volume's description.\n","type":"string"},"deviceType":{"description":"The device type of volume to create. Valid options are VBD and SCSI.\nDefaults to `VBD`. Changing this creates a new volume.\n","type":"string"},"evsVolumeV3Id":{"type":"string"},"imageId":{"description":"The image ID from which to create the volume.\nChanging this creates a new volume.\n","type":"string"},"kmsId":{"description":"The Encryption KMS ID to create the volume.\nChanging this creates a new volume.\n","type":"string"},"multiattach":{"description":"Specifies whether the disk is shareable. The default value is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\nChanging this creates a new volume.\n","type":"boolean"},"name":{"description":"A unique name for the volume. Changing this updates the volume's name.\n","type":"string"},"size":{"description":"The size of the volume to create (in gigabytes). This parameter is mandatory when\nyou create an empty EVS disk or use an image or a snapshot to create an EVS disk.\n_Decreasing_ this value creates a new volume.\n","type":"number"},"snapshotId":{"description":"The snapshot ID from which to create the volume.\nChanging this creates a new volume.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the volume.\nChanging this updates the existing volume tags.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FEvsVolumeV3Timeouts:EvsVolumeV3Timeouts"},"volumeType":{"description":"The type of volume to create.\nCurrently, the value can be:\n* `SATA`: common I/O disk type. Available for all AZs.\n* `SAS`: high I/O disk type. Available for all AZs.\n* `SSD`: ultra-high I/O disk type. Available for all AZs.\n* `GPSSD`: the general purpose SSD type\n* `ESSD`: extreme SSD disk type.\n\n> **NOTE:**\nCommon I/O (SATA) will reach end of life, end of 2025.\n\nChanging this creates a new volume.\n","type":"string"},"wwn":{"description":"Specifies the unique identifier used for mounting the EVS disk.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/fgsAsyncInvokeConfigV2:FgsAsyncInvokeConfigV2":{"description":"Up-to-date reference of API arguments for FGS you can get at\n[documentation portal](https://docs.otc.t-systems.com/function-graph/api-ref/apis/asynchronous_execution_notification/index.html)\n\nManages the configuration of the asynchronous invocation within OpenTelekomCloud.\n\n> A function only supports configuring one resource.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst functionUrn = config.requireObject<any>(\"functionUrn\");\nconst bucketName = config.requireObject<any>(\"bucketName\");\nconst topicUrn = config.requireObject<any>(\"topicUrn\");\nconst test = new opentelekomcloud.FgsAsyncInvokeConfigV2(\"test\", {\n    functionUrn: functionUrn,\n    maxAsyncEventAgeInSeconds: 3500,\n    maxAsyncRetryAttempts: 2,\n    onSuccess: {\n        destination: \"OBS\",\n        param: JSON.stringify({\n            bucket: bucketName,\n            prefix: \"/success\",\n            expires: 5,\n        }),\n    },\n    onFailure: {\n        destination: \"SMN\",\n        param: JSON.stringify({\n            topic_urn: topicUrn,\n        }),\n    },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nfunction_urn = config.require_object(\"functionUrn\")\nbucket_name = config.require_object(\"bucketName\")\ntopic_urn = config.require_object(\"topicUrn\")\ntest = opentelekomcloud.FgsAsyncInvokeConfigV2(\"test\",\n    function_urn=function_urn,\n    max_async_event_age_in_seconds=3500,\n    max_async_retry_attempts=2,\n    on_success={\n        \"destination\": \"OBS\",\n        \"param\": json.dumps({\n            \"bucket\": bucket_name,\n            \"prefix\": \"/success\",\n            \"expires\": 5,\n        }),\n    },\n    on_failure={\n        \"destination\": \"SMN\",\n        \"param\": json.dumps({\n            \"topic_urn\": topic_urn,\n        }),\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var functionUrn = config.RequireObject<dynamic>(\"functionUrn\");\n    var bucketName = config.RequireObject<dynamic>(\"bucketName\");\n    var topicUrn = config.RequireObject<dynamic>(\"topicUrn\");\n    var test = new Opentelekomcloud.FgsAsyncInvokeConfigV2(\"test\", new()\n    {\n        FunctionUrn = functionUrn,\n        MaxAsyncEventAgeInSeconds = 3500,\n        MaxAsyncRetryAttempts = 2,\n        OnSuccess = new Opentelekomcloud.Inputs.FgsAsyncInvokeConfigV2OnSuccessArgs\n        {\n            Destination = \"OBS\",\n            Param = JsonSerializer.Serialize(new Dictionary<string, object?>\n            {\n                [\"bucket\"] = bucketName,\n                [\"prefix\"] = \"/success\",\n                [\"expires\"] = 5,\n            }),\n        },\n        OnFailure = new Opentelekomcloud.Inputs.FgsAsyncInvokeConfigV2OnFailureArgs\n        {\n            Destination = \"SMN\",\n            Param = JsonSerializer.Serialize(new Dictionary<string, object?>\n            {\n                [\"topic_urn\"] = topicUrn,\n            }),\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tfunctionUrn := cfg.RequireObject(\"functionUrn\")\n\t\tbucketName := cfg.RequireObject(\"bucketName\")\n\t\ttopicUrn := cfg.RequireObject(\"topicUrn\")\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"bucket\":  bucketName,\n\t\t\t\"prefix\":  \"/success\",\n\t\t\t\"expires\": 5,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{\n\t\t\t\"topic_urn\": topicUrn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson1 := string(tmpJSON1)\n\t\t_, err = opentelekomcloud.NewFgsAsyncInvokeConfigV2(ctx, \"test\", &opentelekomcloud.FgsAsyncInvokeConfigV2Args{\n\t\t\tFunctionUrn:               pulumi.Any(functionUrn),\n\t\t\tMaxAsyncEventAgeInSeconds: pulumi.Float64(3500),\n\t\t\tMaxAsyncRetryAttempts:     pulumi.Float64(2),\n\t\t\tOnSuccess: &opentelekomcloud.FgsAsyncInvokeConfigV2OnSuccessArgs{\n\t\t\t\tDestination: pulumi.String(\"OBS\"),\n\t\t\t\tParam:       pulumi.String(json0),\n\t\t\t},\n\t\t\tOnFailure: &opentelekomcloud.FgsAsyncInvokeConfigV2OnFailureArgs{\n\t\t\t\tDestination: pulumi.String(\"SMN\"),\n\t\t\t\tParam:       pulumi.String(json1),\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.opentelekomcloud.FgsAsyncInvokeConfigV2;\nimport com.pulumi.opentelekomcloud.FgsAsyncInvokeConfigV2Args;\nimport com.pulumi.opentelekomcloud.inputs.FgsAsyncInvokeConfigV2OnSuccessArgs;\nimport com.pulumi.opentelekomcloud.inputs.FgsAsyncInvokeConfigV2OnFailureArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var functionUrn = config.get(\"functionUrn\");\n        final var bucketName = config.get(\"bucketName\");\n        final var topicUrn = config.get(\"topicUrn\");\n        var test = new FgsAsyncInvokeConfigV2(\"test\", FgsAsyncInvokeConfigV2Args.builder()\n            .functionUrn(functionUrn)\n            .maxAsyncEventAgeInSeconds(3500.0)\n            .maxAsyncRetryAttempts(2.0)\n            .onSuccess(FgsAsyncInvokeConfigV2OnSuccessArgs.builder()\n                .destination(\"OBS\")\n                .param(serializeJson(\n                    jsonObject(\n                        jsonProperty(\"bucket\", bucketName),\n                        jsonProperty(\"prefix\", \"/success\"),\n                        jsonProperty(\"expires\", 5)\n                    )))\n                .build())\n            .onFailure(FgsAsyncInvokeConfigV2OnFailureArgs.builder()\n                .destination(\"SMN\")\n                .param(serializeJson(\n                    jsonObject(\n                        jsonProperty(\"topic_urn\", topicUrn)\n                    )))\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  functionUrn:\n    type: dynamic\n  bucketName:\n    type: dynamic\n  topicUrn:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:FgsAsyncInvokeConfigV2\n    properties:\n      functionUrn: ${functionUrn}\n      maxAsyncEventAgeInSeconds: 3500\n      maxAsyncRetryAttempts: 2\n      onSuccess:\n        destination: OBS\n        param:\n          fn::toJSON:\n            bucket: ${bucketName}\n            prefix: /success\n            expires: 5\n      onFailure:\n        destination: SMN\n        param:\n          fn::toJSON:\n            topic_urn: ${topicUrn}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe configurations can be imported using their related `function_urn`, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/fgsAsyncInvokeConfigV2:FgsAsyncInvokeConfigV2 test <function_urn>\n```\n\n","inputProperties":{"fgsAsyncInvokeConfigV2Id":{"description":"Specifies a resource ID in UUID format.\n","type":"string"},"functionUrn":{"description":"Specifies the function URN to which the asynchronous invocation belongs.\nChanging this will create a new resource.\n","type":"string"},"maxAsyncEventAgeInSeconds":{"description":"Specifies the maximum validity period of a message.\n","type":"number"},"maxAsyncRetryAttempts":{"description":"Specifies the maximum number of retry attempts to be made if\nasynchronous invocation fails.\n","type":"number"},"onFailure":{"$ref":"#/types/opentelekomcloud:index%2FFgsAsyncInvokeConfigV2OnFailure:FgsAsyncInvokeConfigV2OnFailure","description":"Specifies the target to be invoked when a function fails to be executed due to a\nsystem error or an internal error.\nThe object structure is documented below.\n\n<a name=<span pulumi-lang-nodejs=\"\"functiongraphDestinationConfig\"\" pulumi-lang-dotnet=\"\"FunctiongraphDestinationConfig\"\" pulumi-lang-go=\"\"functiongraphDestinationConfig\"\" pulumi-lang-python=\"\"functiongraph_destination_config\"\" pulumi-lang-yaml=\"\"functiongraphDestinationConfig\"\" pulumi-lang-java=\"\"functiongraphDestinationConfig\"\">\"functiongraph_destination_config\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`onSuccess`\" pulumi-lang-dotnet=\"`OnSuccess`\" pulumi-lang-go=\"`onSuccess`\" pulumi-lang-python=\"`on_success`\" pulumi-lang-yaml=\"`onSuccess`\" pulumi-lang-java=\"`onSuccess`\">`on_success`</span> and the <span pulumi-lang-nodejs=\"`onFailure`\" pulumi-lang-dotnet=\"`OnFailure`\" pulumi-lang-go=\"`onFailure`\" pulumi-lang-python=\"`on_failure`\" pulumi-lang-yaml=\"`onFailure`\" pulumi-lang-java=\"`onFailure`\">`on_failure`</span> blocks support:\n"},"onSuccess":{"$ref":"#/types/opentelekomcloud:index%2FFgsAsyncInvokeConfigV2OnSuccess:FgsAsyncInvokeConfigV2OnSuccess","description":"Specifies the target to be invoked when a function is successfully executed.\nThe object structure is documented below.\n"}},"properties":{"fgsAsyncInvokeConfigV2Id":{"description":"Specifies a resource ID in UUID format.\n","type":"string"},"functionUrn":{"description":"Specifies the function URN to which the asynchronous invocation belongs.\nChanging this will create a new resource.\n","type":"string"},"maxAsyncEventAgeInSeconds":{"description":"Specifies the maximum validity period of a message.\n","type":"number"},"maxAsyncRetryAttempts":{"description":"Specifies the maximum number of retry attempts to be made if\nasynchronous invocation fails.\n","type":"number"},"onFailure":{"$ref":"#/types/opentelekomcloud:index%2FFgsAsyncInvokeConfigV2OnFailure:FgsAsyncInvokeConfigV2OnFailure","description":"Specifies the target to be invoked when a function fails to be executed due to a\nsystem error or an internal error.\nThe object structure is documented below.\n\n<a name=<span pulumi-lang-nodejs=\"\"functiongraphDestinationConfig\"\" pulumi-lang-dotnet=\"\"FunctiongraphDestinationConfig\"\" pulumi-lang-go=\"\"functiongraphDestinationConfig\"\" pulumi-lang-python=\"\"functiongraph_destination_config\"\" pulumi-lang-yaml=\"\"functiongraphDestinationConfig\"\" pulumi-lang-java=\"\"functiongraphDestinationConfig\"\">\"functiongraph_destination_config\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`onSuccess`\" pulumi-lang-dotnet=\"`OnSuccess`\" pulumi-lang-go=\"`onSuccess`\" pulumi-lang-python=\"`on_success`\" pulumi-lang-yaml=\"`onSuccess`\" pulumi-lang-java=\"`onSuccess`\">`on_success`</span> and the <span pulumi-lang-nodejs=\"`onFailure`\" pulumi-lang-dotnet=\"`OnFailure`\" pulumi-lang-go=\"`onFailure`\" pulumi-lang-python=\"`on_failure`\" pulumi-lang-yaml=\"`onFailure`\" pulumi-lang-java=\"`onFailure`\">`on_failure`</span> blocks support:\n"},"onSuccess":{"$ref":"#/types/opentelekomcloud:index%2FFgsAsyncInvokeConfigV2OnSuccess:FgsAsyncInvokeConfigV2OnSuccess","description":"Specifies the target to be invoked when a function is successfully executed.\nThe object structure is documented below.\n"},"region":{"description":"Specifies the region in which the asynchronous invocation is configured.\n","type":"string"}},"required":["fgsAsyncInvokeConfigV2Id","functionUrn","maxAsyncEventAgeInSeconds","maxAsyncRetryAttempts","region"],"requiredInputs":["functionUrn","maxAsyncEventAgeInSeconds","maxAsyncRetryAttempts"],"stateInputs":{"description":"Input properties used for looking up and filtering FgsAsyncInvokeConfigV2 resources.\n","properties":{"fgsAsyncInvokeConfigV2Id":{"description":"Specifies a resource ID in UUID format.\n","type":"string"},"functionUrn":{"description":"Specifies the function URN to which the asynchronous invocation belongs.\nChanging this will create a new resource.\n","type":"string"},"maxAsyncEventAgeInSeconds":{"description":"Specifies the maximum validity period of a message.\n","type":"number"},"maxAsyncRetryAttempts":{"description":"Specifies the maximum number of retry attempts to be made if\nasynchronous invocation fails.\n","type":"number"},"onFailure":{"$ref":"#/types/opentelekomcloud:index%2FFgsAsyncInvokeConfigV2OnFailure:FgsAsyncInvokeConfigV2OnFailure","description":"Specifies the target to be invoked when a function fails to be executed due to a\nsystem error or an internal error.\nThe object structure is documented below.\n\n<a name=<span pulumi-lang-nodejs=\"\"functiongraphDestinationConfig\"\" pulumi-lang-dotnet=\"\"FunctiongraphDestinationConfig\"\" pulumi-lang-go=\"\"functiongraphDestinationConfig\"\" pulumi-lang-python=\"\"functiongraph_destination_config\"\" pulumi-lang-yaml=\"\"functiongraphDestinationConfig\"\" pulumi-lang-java=\"\"functiongraphDestinationConfig\"\">\"functiongraph_destination_config\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`onSuccess`\" pulumi-lang-dotnet=\"`OnSuccess`\" pulumi-lang-go=\"`onSuccess`\" pulumi-lang-python=\"`on_success`\" pulumi-lang-yaml=\"`onSuccess`\" pulumi-lang-java=\"`onSuccess`\">`on_success`</span> and the <span pulumi-lang-nodejs=\"`onFailure`\" pulumi-lang-dotnet=\"`OnFailure`\" pulumi-lang-go=\"`onFailure`\" pulumi-lang-python=\"`on_failure`\" pulumi-lang-yaml=\"`onFailure`\" pulumi-lang-java=\"`onFailure`\">`on_failure`</span> blocks support:\n"},"onSuccess":{"$ref":"#/types/opentelekomcloud:index%2FFgsAsyncInvokeConfigV2OnSuccess:FgsAsyncInvokeConfigV2OnSuccess","description":"Specifies the target to be invoked when a function is successfully executed.\nThe object structure is documented below.\n"},"region":{"description":"Specifies the region in which the asynchronous invocation is configured.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/fgsDependencyVersionV2:FgsDependencyVersionV2":{"description":"Manages a custom dependency version within OpenTelekomCloud.\n\n## Example Usage\n\n### Create a custom dependency version using an OBS bucket path where the ZIP file is located\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst dependencyName = config.requireObject<any>(\"dependencyName\");\nconst customDependencyLocation = config.requireObject<any>(\"customDependencyLocation\");\nconst test = new opentelekomcloud.FgsDependencyVersionV2(\"test\", {\n    name: dependencyName,\n    runtime: \"Python3.6\",\n    link: customDependencyLocation,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ndependency_name = config.require_object(\"dependencyName\")\ncustom_dependency_location = config.require_object(\"customDependencyLocation\")\ntest = opentelekomcloud.FgsDependencyVersionV2(\"test\",\n    name=dependency_name,\n    runtime=\"Python3.6\",\n    link=custom_dependency_location)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var dependencyName = config.RequireObject<dynamic>(\"dependencyName\");\n    var customDependencyLocation = config.RequireObject<dynamic>(\"customDependencyLocation\");\n    var test = new Opentelekomcloud.FgsDependencyVersionV2(\"test\", new()\n    {\n        Name = dependencyName,\n        Runtime = \"Python3.6\",\n        Link = customDependencyLocation,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tdependencyName := cfg.RequireObject(\"dependencyName\")\n\t\tcustomDependencyLocation := cfg.RequireObject(\"customDependencyLocation\")\n\t\t_, err := opentelekomcloud.NewFgsDependencyVersionV2(ctx, \"test\", &opentelekomcloud.FgsDependencyVersionV2Args{\n\t\t\tName:    pulumi.Any(dependencyName),\n\t\t\tRuntime: pulumi.String(\"Python3.6\"),\n\t\t\tLink:    pulumi.Any(customDependencyLocation),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.FgsDependencyVersionV2;\nimport com.pulumi.opentelekomcloud.FgsDependencyVersionV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var dependencyName = config.get(\"dependencyName\");\n        final var customDependencyLocation = config.get(\"customDependencyLocation\");\n        var test = new FgsDependencyVersionV2(\"test\", FgsDependencyVersionV2Args.builder()\n            .name(dependencyName)\n            .runtime(\"Python3.6\")\n            .link(customDependencyLocation)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  dependencyName:\n    type: dynamic\n  customDependencyLocation:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:FgsDependencyVersionV2\n    properties:\n      name: ${dependencyName}\n      runtime: Python3.6\n      link: ${customDependencyLocation}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nDependency version can be imported using `name` and the `version` number, separated by a slash (/), e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/fgsDependencyVersionV2:FgsDependencyVersionV2 test <name>/<version>\n```\n\nNote that the imported state may not be identical to your resource definition, due to some attributes missing from the\n\nAPI response, security or some other reason. The missing attributes include: `link`, `file`.\n\nIt is generally recommended running `pulumi preview` after importing a dependency package.\n\nYou can then decide if changes should be applied to the resource, or the resource definition should be updated to\n\nalign with the dependency package. Also you can ignore changes as below.\n\nhcl\n\nresource \"opentelekomcloud_fgs_dependency_version_v2\" \"test\" {\n\n  lifecycle {\n\n    ignore_changes = [\n\n      link,\n\n      file\n\n    ]\n\n  }\n\n}\n\n","inputProperties":{"description":{"description":"Specifies the description of the custom dependency version.\nThe description can contain a maximum of <span pulumi-lang-nodejs=\"`512`\" pulumi-lang-dotnet=\"`512`\" pulumi-lang-go=\"`512`\" pulumi-lang-python=\"`512`\" pulumi-lang-yaml=\"`512`\" pulumi-lang-java=\"`512`\">`512`</span> characters.\nChanging this will create a new resource.\n","type":"string"},"fgsDependencyVersionV2Id":{"description":"The resource ID, consists of dependency ID and version number, separated by a slash (/).\nThe format is `<name>/<version>`.\n","type":"string"},"file":{"description":"Specifies the file contents in the file stream format and must be a ZIP file encoded using Base64.\nThe size of the ZIP file cannot exceed 40 MB. For a larger file, upload it through OBS.\nEither <span pulumi-lang-nodejs=\"`link`\" pulumi-lang-dotnet=\"`Link`\" pulumi-lang-go=\"`link`\" pulumi-lang-python=\"`link`\" pulumi-lang-yaml=\"`link`\" pulumi-lang-java=\"`link`\">`link`</span> or <span pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\">`file`</span> must be specified.\n","type":"string"},"link":{"description":"Specifies the OBS bucket path where the dependency package is located.\nThe OBS object URL must be in ZIP format, such as\n`https://test-bucket.obs.eu-de.otc.t-systems.com/index.zip`.\nEither <span pulumi-lang-nodejs=\"`link`\" pulumi-lang-dotnet=\"`Link`\" pulumi-lang-go=\"`link`\" pulumi-lang-python=\"`link`\" pulumi-lang-yaml=\"`link`\" pulumi-lang-java=\"`link`\">`link`</span> or <span pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\">`file`</span> must be specified.\nChanging this will create a new resource.\n\n> A link can only be used to create at most one dependency package.\n","type":"string"},"name":{"description":"Specifies the name of the custom dependency package to which the version\nbelongs.\nThe name can contain a maximum of <span pulumi-lang-nodejs=\"`96`\" pulumi-lang-dotnet=\"`96`\" pulumi-lang-go=\"`96`\" pulumi-lang-python=\"`96`\" pulumi-lang-yaml=\"`96`\" pulumi-lang-java=\"`96`\">`96`</span> characters and must start with a letter and end with a letter or digit.\nOnly letters, digits, underscores (_), periods (.), and hyphens (-) are allowed.\nChanging this will create a new resource.\n","type":"string"},"runtime":{"description":"Specifies the runtime of the custom dependency version.\nThe valid values are as follows:\n+ **Java8**\n+ **Java11**\n+ **Node.js6.10**\n+ **Node.js8.10**\n+ **Node.js10.16**\n+ **Node.js12.13**\n+ **Node.js14.18**\n+ **Python2.7**\n+ **Python3.6**\n+ **Python3.9**\n+ **Go1.8**\n+ **Go1.x**\n+ **C#(.NET Core 2.0)**\n+ **C#(.NET Core 2.1)**\n+ **C#(.NET Core 3.1)**\n+ **Custom**\n+ **PHP 7.3**\n+ **http**\n\nChanging this will create a new resource.\n","type":"string"}},"properties":{"dependencyId":{"description":"The ID of the dependency package corresponding to the version.\n","type":"string"},"description":{"description":"Specifies the description of the custom dependency version.\nThe description can contain a maximum of <span pulumi-lang-nodejs=\"`512`\" pulumi-lang-dotnet=\"`512`\" pulumi-lang-go=\"`512`\" pulumi-lang-python=\"`512`\" pulumi-lang-yaml=\"`512`\" pulumi-lang-java=\"`512`\">`512`</span> characters.\nChanging this will create a new resource.\n","type":"string"},"downloadLink":{"description":"The temporary download link of a dependency file.\n","type":"string"},"etag":{"description":"The unique ID of the dependency.\n","type":"string"},"fgsDependencyVersionV2Id":{"description":"The resource ID, consists of dependency ID and version number, separated by a slash (/).\nThe format is `<name>/<version>`.\n","type":"string"},"file":{"description":"Specifies the file contents in the file stream format and must be a ZIP file encoded using Base64.\nThe size of the ZIP file cannot exceed 40 MB. For a larger file, upload it through OBS.\nEither <span pulumi-lang-nodejs=\"`link`\" pulumi-lang-dotnet=\"`Link`\" pulumi-lang-go=\"`link`\" pulumi-lang-python=\"`link`\" pulumi-lang-yaml=\"`link`\" pulumi-lang-java=\"`link`\">`link`</span> or <span pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\">`file`</span> must be specified.\n","type":"string"},"fileName":{"description":"The dependency file name.\n","type":"string"},"link":{"description":"Specifies the OBS bucket path where the dependency package is located.\nThe OBS object URL must be in ZIP format, such as\n`https://test-bucket.obs.eu-de.otc.t-systems.com/index.zip`.\nEither <span pulumi-lang-nodejs=\"`link`\" pulumi-lang-dotnet=\"`Link`\" pulumi-lang-go=\"`link`\" pulumi-lang-python=\"`link`\" pulumi-lang-yaml=\"`link`\" pulumi-lang-java=\"`link`\">`link`</span> or <span pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\">`file`</span> must be specified.\nChanging this will create a new resource.\n\n> A link can only be used to create at most one dependency package.\n","type":"string"},"name":{"description":"Specifies the name of the custom dependency package to which the version\nbelongs.\nThe name can contain a maximum of <span pulumi-lang-nodejs=\"`96`\" pulumi-lang-dotnet=\"`96`\" pulumi-lang-go=\"`96`\" pulumi-lang-python=\"`96`\" pulumi-lang-yaml=\"`96`\" pulumi-lang-java=\"`96`\">`96`</span> characters and must start with a letter and end with a letter or digit.\nOnly letters, digits, underscores (_), periods (.), and hyphens (-) are allowed.\nChanging this will create a new resource.\n","type":"string"},"owner":{"description":"The dependency owner, **public** indicates a public dependency.\n","type":"string"},"runtime":{"description":"Specifies the runtime of the custom dependency version.\nThe valid values are as follows:\n+ **Java8**\n+ **Java11**\n+ **Node.js6.10**\n+ **Node.js8.10**\n+ **Node.js10.16**\n+ **Node.js12.13**\n+ **Node.js14.18**\n+ **Python2.7**\n+ **Python3.6**\n+ **Python3.9**\n+ **Go1.8**\n+ **Go1.x**\n+ **C#(.NET Core 2.0)**\n+ **C#(.NET Core 2.1)**\n+ **C#(.NET Core 3.1)**\n+ **Custom**\n+ **PHP 7.3**\n+ **http**\n\nChanging this will create a new resource.\n","type":"string"},"size":{"description":"The dependency size, in bytes.\n","type":"number"},"version":{"description":"The dependency package version.\n","type":"number"}},"required":["dependencyId","description","downloadLink","etag","fgsDependencyVersionV2Id","fileName","name","owner","runtime","size","version"],"requiredInputs":["runtime"],"stateInputs":{"description":"Input properties used for looking up and filtering FgsDependencyVersionV2 resources.\n","properties":{"dependencyId":{"description":"The ID of the dependency package corresponding to the version.\n","type":"string"},"description":{"description":"Specifies the description of the custom dependency version.\nThe description can contain a maximum of <span pulumi-lang-nodejs=\"`512`\" pulumi-lang-dotnet=\"`512`\" pulumi-lang-go=\"`512`\" pulumi-lang-python=\"`512`\" pulumi-lang-yaml=\"`512`\" pulumi-lang-java=\"`512`\">`512`</span> characters.\nChanging this will create a new resource.\n","type":"string"},"downloadLink":{"description":"The temporary download link of a dependency file.\n","type":"string"},"etag":{"description":"The unique ID of the dependency.\n","type":"string"},"fgsDependencyVersionV2Id":{"description":"The resource ID, consists of dependency ID and version number, separated by a slash (/).\nThe format is `<name>/<version>`.\n","type":"string"},"file":{"description":"Specifies the file contents in the file stream format and must be a ZIP file encoded using Base64.\nThe size of the ZIP file cannot exceed 40 MB. For a larger file, upload it through OBS.\nEither <span pulumi-lang-nodejs=\"`link`\" pulumi-lang-dotnet=\"`Link`\" pulumi-lang-go=\"`link`\" pulumi-lang-python=\"`link`\" pulumi-lang-yaml=\"`link`\" pulumi-lang-java=\"`link`\">`link`</span> or <span pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\">`file`</span> must be specified.\n","type":"string"},"fileName":{"description":"The dependency file name.\n","type":"string"},"link":{"description":"Specifies the OBS bucket path where the dependency package is located.\nThe OBS object URL must be in ZIP format, such as\n`https://test-bucket.obs.eu-de.otc.t-systems.com/index.zip`.\nEither <span pulumi-lang-nodejs=\"`link`\" pulumi-lang-dotnet=\"`Link`\" pulumi-lang-go=\"`link`\" pulumi-lang-python=\"`link`\" pulumi-lang-yaml=\"`link`\" pulumi-lang-java=\"`link`\">`link`</span> or <span pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\">`file`</span> must be specified.\nChanging this will create a new resource.\n\n> A link can only be used to create at most one dependency package.\n","type":"string"},"name":{"description":"Specifies the name of the custom dependency package to which the version\nbelongs.\nThe name can contain a maximum of <span pulumi-lang-nodejs=\"`96`\" pulumi-lang-dotnet=\"`96`\" pulumi-lang-go=\"`96`\" pulumi-lang-python=\"`96`\" pulumi-lang-yaml=\"`96`\" pulumi-lang-java=\"`96`\">`96`</span> characters and must start with a letter and end with a letter or digit.\nOnly letters, digits, underscores (_), periods (.), and hyphens (-) are allowed.\nChanging this will create a new resource.\n","type":"string"},"owner":{"description":"The dependency owner, **public** indicates a public dependency.\n","type":"string"},"runtime":{"description":"Specifies the runtime of the custom dependency version.\nThe valid values are as follows:\n+ **Java8**\n+ **Java11**\n+ **Node.js6.10**\n+ **Node.js8.10**\n+ **Node.js10.16**\n+ **Node.js12.13**\n+ **Node.js14.18**\n+ **Python2.7**\n+ **Python3.6**\n+ **Python3.9**\n+ **Go1.8**\n+ **Go1.x**\n+ **C#(.NET Core 2.0)**\n+ **C#(.NET Core 2.1)**\n+ **C#(.NET Core 3.1)**\n+ **Custom**\n+ **PHP 7.3**\n+ **http**\n\nChanging this will create a new resource.\n","type":"string"},"size":{"description":"The dependency size, in bytes.\n","type":"number"},"version":{"description":"The dependency package version.\n","type":"number"}},"type":"object"},"type":"object"},"opentelekomcloud:index/fgsEventV2:FgsEventV2":{"description":"Up-to-date reference of API arguments for FGS you can get at\n[documentation portal](https://docs.otc.t-systems.com/function-graph/api-ref/apis/index.html)\n\nManages an event for testing specified function within OpenTelekomCloud.\n\n## Example Usage\n\n## Import\n\nFunction event can be imported using the `function_urn` and `id`, separated by a slash, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/fgsEventV2:FgsEventV2 test <function_urn>/<id>\n```\n\n","inputProperties":{"content":{"description":"Specifies the function event content.\nThe value is the base64 encoding of the JSON string.\n","type":"string"},"fgsEventV2Id":{"description":"The resource ID in UUID format.\n","type":"string"},"functionUrn":{"description":"Specifies the URN of the function to which the event belongs.\n","type":"string"},"name":{"description":"Specifies the function event name.\nThe name can contain a maximum of <span pulumi-lang-nodejs=\"`25`\" pulumi-lang-dotnet=\"`25`\" pulumi-lang-go=\"`25`\" pulumi-lang-python=\"`25`\" pulumi-lang-yaml=\"`25`\" pulumi-lang-java=\"`25`\">`25`</span>, only letters, digits, underscores (_) and hyphens (-) are allowed.\n","type":"string"}},"properties":{"content":{"description":"Specifies the function event content.\nThe value is the base64 encoding of the JSON string.\n","type":"string"},"fgsEventV2Id":{"description":"The resource ID in UUID format.\n","type":"string"},"functionUrn":{"description":"Specifies the URN of the function to which the event belongs.\n","type":"string"},"name":{"description":"Specifies the function event name.\nThe name can contain a maximum of <span pulumi-lang-nodejs=\"`25`\" pulumi-lang-dotnet=\"`25`\" pulumi-lang-go=\"`25`\" pulumi-lang-python=\"`25`\" pulumi-lang-yaml=\"`25`\" pulumi-lang-java=\"`25`\">`25`</span>, only letters, digits, underscores (_) and hyphens (-) are allowed.\n","type":"string"},"region":{"description":"The region in which function graph resource is created.\n","type":"string"},"updatedAt":{"description":"The latest update time of the function event.\n","type":"number"}},"required":["content","fgsEventV2Id","functionUrn","name","region","updatedAt"],"requiredInputs":["content","functionUrn"],"stateInputs":{"description":"Input properties used for looking up and filtering FgsEventV2 resources.\n","properties":{"content":{"description":"Specifies the function event content.\nThe value is the base64 encoding of the JSON string.\n","type":"string"},"fgsEventV2Id":{"description":"The resource ID in UUID format.\n","type":"string"},"functionUrn":{"description":"Specifies the URN of the function to which the event belongs.\n","type":"string"},"name":{"description":"Specifies the function event name.\nThe name can contain a maximum of <span pulumi-lang-nodejs=\"`25`\" pulumi-lang-dotnet=\"`25`\" pulumi-lang-go=\"`25`\" pulumi-lang-python=\"`25`\" pulumi-lang-yaml=\"`25`\" pulumi-lang-java=\"`25`\">`25`</span>, only letters, digits, underscores (_) and hyphens (-) are allowed.\n","type":"string"},"region":{"description":"The region in which function graph resource is created.\n","type":"string"},"updatedAt":{"description":"The latest update time of the function event.\n","type":"number"}},"type":"object"},"type":"object"},"opentelekomcloud:index/fgsFunctionV2:FgsFunctionV2":{"description":"Up-to-date reference of API arguments for FGS you can get at\n[documentation portal](https://docs.otc.t-systems.com/function-graph/api-ref/apis/index.html)\n\nManages a V2 function graph resource within OpenTelekomCloud.\n\n## Example Usage\n\n### With text code\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst functionName = config.requireObject<any>(\"functionName\");\nconst agencyName = config.requireObject<any>(\"agencyName\");\nconst test = new opentelekomcloud.FgsFunctionV2(\"test\", {\n    name: functionName,\n    app: \"default\",\n    agency: agencyName,\n    handler: \"test.handler\",\n    memorySize: 128,\n    timeout: 3,\n    runtime: \"Python2.7\",\n    codeType: \"inline\",\n    funcCode: `# -*- coding:utf-8 -*-\nimport json\ndef handler (event, context):\n    return {\n        \\\\\"statusCode\\\\\": 200,\n        \\\\\"isBase64Encoded\\\\\": False,\n        \\\\\"body\\\\\": json.dumps(event),\n        \\\\\"headers\\\\\": {\n            \\\\\"Content-Type\\\\\": \\\\\"application/json\\\\\"\n        }\n    }\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nfunction_name = config.require_object(\"functionName\")\nagency_name = config.require_object(\"agencyName\")\ntest = opentelekomcloud.FgsFunctionV2(\"test\",\n    name=function_name,\n    app=\"default\",\n    agency=agency_name,\n    handler=\"test.handler\",\n    memory_size=128,\n    timeout=3,\n    runtime=\"Python2.7\",\n    code_type=\"inline\",\n    func_code=\"\"\"# -*- coding:utf-8 -*-\nimport json\ndef handler (event, context):\n    return {\n        \\\"statusCode\\\": 200,\n        \\\"isBase64Encoded\\\": False,\n        \\\"body\\\": json.dumps(event),\n        \\\"headers\\\": {\n            \\\"Content-Type\\\": \\\"application/json\\\"\n        }\n    }\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var functionName = config.RequireObject<dynamic>(\"functionName\");\n    var agencyName = config.RequireObject<dynamic>(\"agencyName\");\n    var test = new Opentelekomcloud.FgsFunctionV2(\"test\", new()\n    {\n        Name = functionName,\n        App = \"default\",\n        Agency = agencyName,\n        Handler = \"test.handler\",\n        MemorySize = 128,\n        Timeout = 3,\n        Runtime = \"Python2.7\",\n        CodeType = \"inline\",\n        FuncCode = @\"# -*- coding:utf-8 -*-\nimport json\ndef handler (event, context):\n    return {\n        \\\"\"statusCode\\\"\": 200,\n        \\\"\"isBase64Encoded\\\"\": False,\n        \\\"\"body\\\"\": json.dumps(event),\n        \\\"\"headers\\\"\": {\n            \\\"\"Content-Type\\\"\": \\\"\"application/json\\\"\"\n        }\n    }\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tfunctionName := cfg.RequireObject(\"functionName\")\n\t\tagencyName := cfg.RequireObject(\"agencyName\")\n\t\t_, err := opentelekomcloud.NewFgsFunctionV2(ctx, \"test\", &opentelekomcloud.FgsFunctionV2Args{\n\t\t\tName:       pulumi.Any(functionName),\n\t\t\tApp:        pulumi.String(\"default\"),\n\t\t\tAgency:     pulumi.Any(agencyName),\n\t\t\tHandler:    pulumi.String(\"test.handler\"),\n\t\t\tMemorySize: pulumi.Float64(128),\n\t\t\tTimeout:    pulumi.Float64(3),\n\t\t\tRuntime:    pulumi.String(\"Python2.7\"),\n\t\t\tCodeType:   pulumi.String(\"inline\"),\n\t\t\tFuncCode: pulumi.String(`# -*- coding:utf-8 -*-\nimport json\ndef handler (event, context):\n    return {\n        \\\"statusCode\\\": 200,\n        \\\"isBase64Encoded\\\": False,\n        \\\"body\\\": json.dumps(event),\n        \\\"headers\\\": {\n            \\\"Content-Type\\\": \\\"application/json\\\"\n        }\n    }\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.FgsFunctionV2;\nimport com.pulumi.opentelekomcloud.FgsFunctionV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var functionName = config.get(\"functionName\");\n        final var agencyName = config.get(\"agencyName\");\n        var test = new FgsFunctionV2(\"test\", FgsFunctionV2Args.builder()\n            .name(functionName)\n            .app(\"default\")\n            .agency(agencyName)\n            .handler(\"test.handler\")\n            .memorySize(128.0)\n            .timeout(3.0)\n            .runtime(\"Python2.7\")\n            .codeType(\"inline\")\n            .funcCode(\"\"\"\n# -*- coding:utf-8 -*-\nimport json\ndef handler (event, context):\n    return {\n        \\\"statusCode\\\": 200,\n        \\\"isBase64Encoded\\\": False,\n        \\\"body\\\": json.dumps(event),\n        \\\"headers\\\": {\n            \\\"Content-Type\\\": \\\"application/json\\\"\n        }\n    }\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  functionName:\n    type: dynamic\n  agencyName:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:FgsFunctionV2\n    properties:\n      name: ${functionName}\n      app: default\n      agency: ${agencyName}\n      handler: test.handler\n      memorySize: 128\n      timeout: 3\n      runtime: Python2.7\n      codeType: inline\n      funcCode: |\n        # -*- coding:utf-8 -*-\n        import json\n        def handler (event, context):\n            return {\n                \\\"statusCode\\\": 200,\n                \\\"isBase64Encoded\\\": False,\n                \\\"body\\\": json.dumps(event),\n                \\\"headers\\\": {\n                    \\\"Content-Type\\\": \\\"application/json\\\"\n                }\n            }\n```\n<!--End PulumiCodeChooser -->\n\n### Create function using SWR image\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst functionName = config.requireObject<any>(\"functionName\");\nconst agencyName = config.requireObject<any>(\"agencyName\");\nconst imageUrl = config.requireObject<any>(\"imageUrl\");\nconst bySwrImage = new opentelekomcloud.FgsFunctionV2(\"by_swr_image\", {\n    name: functionName,\n    agency: agencyName,\n    handler: \"-\",\n    app: \"default\",\n    runtime: \"Custom Image\",\n    memorySize: 128,\n    timeout: 3,\n    customImage: {\n        url: imageUrl,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nfunction_name = config.require_object(\"functionName\")\nagency_name = config.require_object(\"agencyName\")\nimage_url = config.require_object(\"imageUrl\")\nby_swr_image = opentelekomcloud.FgsFunctionV2(\"by_swr_image\",\n    name=function_name,\n    agency=agency_name,\n    handler=\"-\",\n    app=\"default\",\n    runtime=\"Custom Image\",\n    memory_size=128,\n    timeout=3,\n    custom_image={\n        \"url\": image_url,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var functionName = config.RequireObject<dynamic>(\"functionName\");\n    var agencyName = config.RequireObject<dynamic>(\"agencyName\");\n    var imageUrl = config.RequireObject<dynamic>(\"imageUrl\");\n    var bySwrImage = new Opentelekomcloud.FgsFunctionV2(\"by_swr_image\", new()\n    {\n        Name = functionName,\n        Agency = agencyName,\n        Handler = \"-\",\n        App = \"default\",\n        Runtime = \"Custom Image\",\n        MemorySize = 128,\n        Timeout = 3,\n        CustomImage = new Opentelekomcloud.Inputs.FgsFunctionV2CustomImageArgs\n        {\n            Url = imageUrl,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tfunctionName := cfg.RequireObject(\"functionName\")\n\t\tagencyName := cfg.RequireObject(\"agencyName\")\n\t\timageUrl := cfg.RequireObject(\"imageUrl\")\n\t\t_, err := opentelekomcloud.NewFgsFunctionV2(ctx, \"by_swr_image\", &opentelekomcloud.FgsFunctionV2Args{\n\t\t\tName:       pulumi.Any(functionName),\n\t\t\tAgency:     pulumi.Any(agencyName),\n\t\t\tHandler:    pulumi.String(\"-\"),\n\t\t\tApp:        pulumi.String(\"default\"),\n\t\t\tRuntime:    pulumi.String(\"Custom Image\"),\n\t\t\tMemorySize: pulumi.Float64(128),\n\t\t\tTimeout:    pulumi.Float64(3),\n\t\t\tCustomImage: &opentelekomcloud.FgsFunctionV2CustomImageArgs{\n\t\t\t\tUrl: pulumi.Any(imageUrl),\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.opentelekomcloud.FgsFunctionV2;\nimport com.pulumi.opentelekomcloud.FgsFunctionV2Args;\nimport com.pulumi.opentelekomcloud.inputs.FgsFunctionV2CustomImageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var functionName = config.get(\"functionName\");\n        final var agencyName = config.get(\"agencyName\");\n        final var imageUrl = config.get(\"imageUrl\");\n        var bySwrImage = new FgsFunctionV2(\"bySwrImage\", FgsFunctionV2Args.builder()\n            .name(functionName)\n            .agency(agencyName)\n            .handler(\"-\")\n            .app(\"default\")\n            .runtime(\"Custom Image\")\n            .memorySize(128.0)\n            .timeout(3.0)\n            .customImage(FgsFunctionV2CustomImageArgs.builder()\n                .url(imageUrl)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  functionName:\n    type: dynamic\n  agencyName:\n    type: dynamic\n  # The agent name that authorizes FunctionGraph service SWR administrator privilege\n  imageUrl:\n    type: dynamic\nresources:\n  bySwrImage:\n    type: opentelekomcloud:FgsFunctionV2\n    name: by_swr_image\n    properties:\n      name: ${functionName}\n      agency: ${agencyName}\n      handler: '-'\n      app: default\n      runtime: Custom Image\n      memorySize: 128\n      timeout: 3\n      customImage:\n        url: ${imageUrl}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nFunctions can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/fgsFunctionV2:FgsFunctionV2 test <id>\n```\n\nNote that the imported state may not be identical to your resource definition, due to the attribute missing from the\n\nAPI response. The missing attributes are:\n\n`app`, `func_code`, `agency`, `tags\"`.\n\nIt is generally recommended running `pulumi preview` after importing a function.\n\nYou can then decide if changes should be applied to the function, or the resource definition should be updated to align\n\nwith the function. Also you can ignore changes as below.\n\nhcl\n\nresource \"opentelekomcloud_fgs_function_v2\" \"test\" {\n\n  lifecycle {\n\n    ignore_changes = [\n\n      app, func_code, agency, tags,\n\n    ]\n\n  }\n\n}\n\n","inputProperties":{"agency":{"description":"Specifies the agency. This parameter is mandatory if the function needs to access other\ncloud services.\n","type":"string"},"app":{"description":"Specifies the group to which the function belongs.\n","type":"string"},"appAgency":{"description":"Specifies the execution agency enables you to obtain a token or an AK/SK for\naccessing other cloud services.\n","type":"string"},"codeFilename":{"description":"Specifies the name of a function file.\nRequired if the <span pulumi-lang-nodejs=\"`codeType`\" pulumi-lang-dotnet=\"`CodeType`\" pulumi-lang-go=\"`codeType`\" pulumi-lang-python=\"`code_type`\" pulumi-lang-yaml=\"`codeType`\" pulumi-lang-java=\"`codeType`\">`code_type`</span> is set to **jar** or **zip**.\n","type":"string"},"codeType":{"description":"Specifies the function code type, which can be:\n+ **inline**: inline code.\n+ **zip**: ZIP file.\n+ **jar**: JAR file or java functions.\n+ **obs**: function code stored in an OBS bucket.\n+ **Custom-Image-Swr**: function code comes from the SWR custom image.\n","type":"string"},"codeUrl":{"description":"Specifies the code url.\nRequired if the <span pulumi-lang-nodejs=\"`codeType`\" pulumi-lang-dotnet=\"`CodeType`\" pulumi-lang-go=\"`codeType`\" pulumi-lang-python=\"`code_type`\" pulumi-lang-yaml=\"`codeType`\" pulumi-lang-java=\"`codeType`\">`code_type`</span> is set to **obs**.\n","type":"string"},"concurrencyNum":{"description":"Specifies the number of concurrent requests of the function.\nThe valid value is range from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to `1,000`, the default value is <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>.\n\n> 1. This parameter is only supported by the <span pulumi-lang-nodejs=\"`v2`\" pulumi-lang-dotnet=\"`V2`\" pulumi-lang-go=\"`v2`\" pulumi-lang-python=\"`v2`\" pulumi-lang-yaml=\"`v2`\" pulumi-lang-java=\"`v2`\">`v2`</span> version of the function.\n<br>2. This parameter is available only when the <span pulumi-lang-nodejs=\"`runtime`\" pulumi-lang-dotnet=\"`Runtime`\" pulumi-lang-go=\"`runtime`\" pulumi-lang-python=\"`runtime`\" pulumi-lang-yaml=\"`runtime`\" pulumi-lang-java=\"`runtime`\">`runtime`</span> parameter is set to **http** or **Custom Image**.\n","type":"number"},"customImage":{"$ref":"#/types/opentelekomcloud:index%2FFgsFunctionV2CustomImage:FgsFunctionV2CustomImage","description":"Specifies the custom image configuration of the function.\nThe <span pulumi-lang-nodejs=\"`customImage`\" pulumi-lang-dotnet=\"`CustomImage`\" pulumi-lang-go=\"`customImage`\" pulumi-lang-python=\"`custom_image`\" pulumi-lang-yaml=\"`customImage`\" pulumi-lang-java=\"`customImage`\">`custom_image`</span> structure is documented below.\nRequired if the parameter <span pulumi-lang-nodejs=\"`codeType`\" pulumi-lang-dotnet=\"`CodeType`\" pulumi-lang-go=\"`codeType`\" pulumi-lang-python=\"`code_type`\" pulumi-lang-yaml=\"`codeType`\" pulumi-lang-java=\"`codeType`\">`code_type`</span> is **Custom-Image-Swr**.\n"},"dependLists":{"description":"Specifies the ID list of the dependencies.\n","items":{"type":"string"},"type":"array"},"description":{"description":"Specifies the description of the function.\n","type":"string"},"dnsList":{"description":"Specifies the private DNS configuration of the function network.\nPrivate DNS list is associated to the function by a string in the following format:\n`[{\\\"id\\\":\\\"ff8080828a07ffea018a17184aa310f5\\\",<span pulumi-lang-nodejs=\"\"domainName\"\" pulumi-lang-dotnet=\"\"DomainName\"\" pulumi-lang-go=\"\"domainName\"\" pulumi-lang-python=\"\"domain_name\"\" pulumi-lang-yaml=\"\"domainName\"\" pulumi-lang-java=\"\"domainName\"\">\"domain_name\"</span>:\"functiondebug.example1.com.\"}]`\n\n> Ensure the agency with DNS management permissions specified before using this parameter.\n","type":"string"},"enableAuthInHeader":{"description":"Specifies whether the authentication in the request header is enabled.\nDefaults to **false**.\n","type":"boolean"},"enableClassIsolation":{"description":"Specifies whether to enable class isolation.\n","type":"boolean"},"enableDynamicMemory":{"description":"Specifies whether to enable dynamic memory allocation.\n","type":"boolean"},"enableLtsLog":{"description":"Specifies whether to enable the LTS logging feature.\nThe valid values are as follows:\n+ **null** or omit this parameter definition: Using the default value configured on the FunctionGraph service to\nconfigure the LTS logging feature.\n+ **true**: Explicitly enable the LTS logging feature.\n+ **false**: Explicitly disable the LTS logging feature.\n","type":"boolean"},"encryptedUserData":{"description":"Specifies the key/value information defined to be encrypted for the\nfunction.\n","secret":true,"type":"string"},"enterpriseProjectId":{"description":"Specifies the ID of the enterprise project to which the\nfunction belongs.\n","type":"string"},"ephemeralStorage":{"description":"Specifies the size of the function ephemeral storage.\nThe valid values are as follows:\n+ **512**\n+ **10240**\n\nDefaults to <span pulumi-lang-nodejs=\"`512`\" pulumi-lang-dotnet=\"`512`\" pulumi-lang-go=\"`512`\" pulumi-lang-python=\"`512`\" pulumi-lang-yaml=\"`512`\" pulumi-lang-java=\"`512`\">`512`</span>. Only custom image or http runtime supported.\n","type":"number"},"fgsFunctionV2Id":{"description":"The resource ID, consist of <span pulumi-lang-nodejs=\"`urn`\" pulumi-lang-dotnet=\"`Urn`\" pulumi-lang-go=\"`urn`\" pulumi-lang-python=\"`urn`\" pulumi-lang-yaml=\"`urn`\" pulumi-lang-java=\"`urn`\">`urn`</span> and current <span pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\">`version`</span>, the format is `<urn>:<version>`.\n","type":"string"},"funcCode":{"description":"Specifies the function code.\nThe code value can be encoded using **Base64** or just with the text code.\nRequired if the <span pulumi-lang-nodejs=\"`codeType`\" pulumi-lang-dotnet=\"`CodeType`\" pulumi-lang-go=\"`codeType`\" pulumi-lang-python=\"`code_type`\" pulumi-lang-yaml=\"`codeType`\" pulumi-lang-java=\"`codeType`\">`code_type`</span> is set to **inline**, **zip**, or **jar**.\n","type":"string"},"funcMounts":{"description":"Specifies the file system list. The <span pulumi-lang-nodejs=\"`funcMounts`\" pulumi-lang-dotnet=\"`FuncMounts`\" pulumi-lang-go=\"`funcMounts`\" pulumi-lang-python=\"`func_mounts`\" pulumi-lang-yaml=\"`funcMounts`\" pulumi-lang-java=\"`funcMounts`\">`func_mounts`</span> object structure is documented\nbelow.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FFgsFunctionV2FuncMount:FgsFunctionV2FuncMount"},"type":"array"},"functiongraphVersion":{"description":"Specifies the FunctionGraph version, default value is **v2**.\nThe valid values are as follows:\n+ **v1**\n+ **v2**\n","type":"string"},"gpuMemory":{"description":"Specifies the GPU memory size allocated to the function, in MByte (MB).\nThe valid value ranges form `1,024` to `16,384`, the value must be a multiple of `1,024`.\nIf not specified, the GPU function is disabled.\n","type":"number"},"handler":{"description":"Specifies the entry point of the function.\n","type":"string"},"heartbeatHandler":{"description":"Specifies the heartbeat handler of the function.\nThe rule is **xx.xx**, such as **com.huawei.demo.TriggerTests.heartBeat**, it must contain periods (.).\nThe heartbeat function entry must be in the same file as the function execution entry.\n","type":"string"},"initializerHandler":{"description":"Specifies the initializer of the function.\n","type":"string"},"initializerTimeout":{"description":"Specifies the maximum duration the function can be initialized. Value range:\n1s to 300s.\n","type":"number"},"logGroupId":{"description":"Specifies the ID of the LTS log group.\n","type":"string"},"logGroupName":{"description":"Specifies the name of the LTS log group.\n","type":"string"},"logTopicId":{"description":"Specifies the ID of the LTS log stream.\n","type":"string"},"logTopicName":{"description":"Specifies the name of the LTS stream.\n","type":"string"},"ltsCustomTag":{"additionalProperties":{"type":"string"},"description":"Specifies the custom tags configuration that used to filter the LTS logs.\nThis parameter is available only when <span pulumi-lang-nodejs=\"`enableLtsLog`\" pulumi-lang-dotnet=\"`EnableLtsLog`\" pulumi-lang-go=\"`enableLtsLog`\" pulumi-lang-python=\"`enable_lts_log`\" pulumi-lang-yaml=\"`enableLtsLog`\" pulumi-lang-java=\"`enableLtsLog`\">`enable_lts_log`</span> is set to **true**.\n\n> This parameter is only supported by the <span pulumi-lang-nodejs=\"`v2`\" pulumi-lang-dotnet=\"`V2`\" pulumi-lang-go=\"`v2`\" pulumi-lang-python=\"`v2`\" pulumi-lang-yaml=\"`v2`\" pulumi-lang-java=\"`v2`\">`v2`</span> version of the function.\n","type":"object"},"maxInstanceNum":{"description":"Specifies the maximum number of instances of the function.\nThe valid value ranges from `-1` to `1,000`, defaults to <span pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\">`400`</span>.\n+ The minimum value is `-1` and means the number of instances is unlimited.\n","type":"string"},"memorySize":{"description":"Specifies the memory size allocated to the function, in MByte (MB).\n","type":"number"},"mountUserGroupId":{"description":"Specifies the user group ID, a non-0 integer from `–1` to `65,534`.\nDefaults to `-1`.\n","type":"number"},"mountUserId":{"description":"Specifies the user ID, a non-0 integer from `–1` to `65,534`.\nDefaults to `-1`.\n","type":"number"},"name":{"description":"Specifies the name of the function.\nChanging this will create a new resource.\n","type":"string"},"networkController":{"$ref":"#/types/opentelekomcloud:index%2FFgsFunctionV2NetworkController:FgsFunctionV2NetworkController","description":"Specifies the network configuration of the function.\nThe<span pulumi-lang-nodejs=\" networkController \" pulumi-lang-dotnet=\" NetworkController \" pulumi-lang-go=\" networkController \" pulumi-lang-python=\" network_controller \" pulumi-lang-yaml=\" networkController \" pulumi-lang-java=\" networkController \"> network_controller </span>structure is documented below.\n"},"networkId":{"description":"Specifies the network ID of subnet.\n","type":"string"},"peeringCidr":{"description":"Specifies the VPC cidr blocks used in the function code to detect whether it\nconflicts with the VPC cidr blocks used by the service.\nThe cidr blocks are separated by semicolons and cannot exceed <span pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\">`5`</span>.\n","type":"string"},"preStopHandler":{"description":"Specifies the pre-stop handler of a function. The value must contain a period (.)\nin the format of xx.xx. For example, for Node.js function myfunction.pre_stop_handler, the file name is myfunction.js,\nand the initialization function is pre_stop_handler.\n","type":"string"},"preStopTimeout":{"description":"Specifies the maximum duration the function can be initialized. Value range: 1s-90s.\n","type":"number"},"reservedInstances":{"description":"Specifies the reserved instance policies of the function.\nThe <span pulumi-lang-nodejs=\"`reservedInstances`\" pulumi-lang-dotnet=\"`ReservedInstances`\" pulumi-lang-go=\"`reservedInstances`\" pulumi-lang-python=\"`reserved_instances`\" pulumi-lang-yaml=\"`reservedInstances`\" pulumi-lang-java=\"`reservedInstances`\">`reserved_instances`</span> structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FFgsFunctionV2ReservedInstance:FgsFunctionV2ReservedInstance"},"type":"array"},"restoreHookHandler":{"type":"string"},"restoreHookTimeout":{"type":"number"},"runtime":{"description":"Specifies the environment for executing the function.\nThe valid values are as follows:\n+ **Java8**\n+ **Java11**\n+ **Node.js6.10**\n+ **Node.js8.10**\n+ **Node.js10.16**\n+ **Node.js12.13**\n+ **Node.js14.18**\n+ **Node.js16.17**\n+ **Node.js18.15**\n+ **Python2.7**\n+ **Python3.6**\n+ **Python3.9**\n+ **Python3.10**\n+ **Go1.x**\n+ **C#(.NET Core 2.1)**\n+ **C#(.NET Core 3.1)**\n+ **PHP7.3**\n+ **Custom**\n+ **http**\n+ **Custom Image**\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value pairs to associate with the function.\n","type":"object"},"timeout":{"description":"Specifies the timeout interval of the function, in seconds.\nThe value ranges from <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`900`\" pulumi-lang-dotnet=\"`900`\" pulumi-lang-go=\"`900`\" pulumi-lang-python=\"`900`\" pulumi-lang-yaml=\"`900`\" pulumi-lang-java=\"`900`\">`900`</span>.\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FFgsFunctionV2Timeouts:FgsFunctionV2Timeouts"},"userData":{"description":"Specifies the Key/Value information defined for the function.\n","type":"string"},"versions":{"description":"Specifies the versions management of the function.\nThe <span pulumi-lang-nodejs=\"`versions`\" pulumi-lang-dotnet=\"`Versions`\" pulumi-lang-go=\"`versions`\" pulumi-lang-python=\"`versions`\" pulumi-lang-yaml=\"`versions`\" pulumi-lang-java=\"`versions`\">`versions`</span> structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FFgsFunctionV2Version:FgsFunctionV2Version"},"type":"array"},"vpcId":{"description":"Specifies the ID of VPC.\n","type":"string"}},"properties":{"agency":{"description":"Specifies the agency. This parameter is mandatory if the function needs to access other\ncloud services.\n","type":"string"},"allowEphemeralStorage":{"description":"Indicates whether ephemeral storage can be configured.\n","type":"boolean"},"apigRouteEnable":{"description":"Whether to configure gateway routing rules.\n","type":"boolean"},"app":{"description":"Specifies the group to which the function belongs.\n","type":"string"},"appAgency":{"description":"Specifies the execution agency enables you to obtain a token or an AK/SK for\naccessing other cloud services.\n","type":"string"},"codeFilename":{"description":"Specifies the name of a function file.\nRequired if the <span pulumi-lang-nodejs=\"`codeType`\" pulumi-lang-dotnet=\"`CodeType`\" pulumi-lang-go=\"`codeType`\" pulumi-lang-python=\"`code_type`\" pulumi-lang-yaml=\"`codeType`\" pulumi-lang-java=\"`codeType`\">`code_type`</span> is set to **jar** or **zip**.\n","type":"string"},"codeType":{"description":"Specifies the function code type, which can be:\n+ **inline**: inline code.\n+ **zip**: ZIP file.\n+ **jar**: JAR file or java functions.\n+ **obs**: function code stored in an OBS bucket.\n+ **Custom-Image-Swr**: function code comes from the SWR custom image.\n","type":"string"},"codeUrl":{"description":"Specifies the code url.\nRequired if the <span pulumi-lang-nodejs=\"`codeType`\" pulumi-lang-dotnet=\"`CodeType`\" pulumi-lang-go=\"`codeType`\" pulumi-lang-python=\"`code_type`\" pulumi-lang-yaml=\"`codeType`\" pulumi-lang-java=\"`codeType`\">`code_type`</span> is set to **obs**.\n","type":"string"},"concurrencyNum":{"description":"Specifies the number of concurrent requests of the function.\nThe valid value is range from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to `1,000`, the default value is <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>.\n\n> 1. This parameter is only supported by the <span pulumi-lang-nodejs=\"`v2`\" pulumi-lang-dotnet=\"`V2`\" pulumi-lang-go=\"`v2`\" pulumi-lang-python=\"`v2`\" pulumi-lang-yaml=\"`v2`\" pulumi-lang-java=\"`v2`\">`v2`</span> version of the function.\n<br>2. This parameter is available only when the <span pulumi-lang-nodejs=\"`runtime`\" pulumi-lang-dotnet=\"`Runtime`\" pulumi-lang-go=\"`runtime`\" pulumi-lang-python=\"`runtime`\" pulumi-lang-yaml=\"`runtime`\" pulumi-lang-java=\"`runtime`\">`runtime`</span> parameter is set to **http** or **Custom Image**.\n","type":"number"},"customImage":{"$ref":"#/types/opentelekomcloud:index%2FFgsFunctionV2CustomImage:FgsFunctionV2CustomImage","description":"Specifies the custom image configuration of the function.\nThe <span pulumi-lang-nodejs=\"`customImage`\" pulumi-lang-dotnet=\"`CustomImage`\" pulumi-lang-go=\"`customImage`\" pulumi-lang-python=\"`custom_image`\" pulumi-lang-yaml=\"`customImage`\" pulumi-lang-java=\"`customImage`\">`custom_image`</span> structure is documented below.\nRequired if the parameter <span pulumi-lang-nodejs=\"`codeType`\" pulumi-lang-dotnet=\"`CodeType`\" pulumi-lang-go=\"`codeType`\" pulumi-lang-python=\"`code_type`\" pulumi-lang-yaml=\"`codeType`\" pulumi-lang-java=\"`codeType`\">`code_type`</span> is **Custom-Image-Swr**.\n"},"dependLists":{"description":"Specifies the ID list of the dependencies.\n","items":{"type":"string"},"type":"array"},"description":{"description":"Specifies the description of the function.\n","type":"string"},"dnsList":{"description":"Specifies the private DNS configuration of the function network.\nPrivate DNS list is associated to the function by a string in the following format:\n`[{\\\"id\\\":\\\"ff8080828a07ffea018a17184aa310f5\\\",<span pulumi-lang-nodejs=\"\"domainName\"\" pulumi-lang-dotnet=\"\"DomainName\"\" pulumi-lang-go=\"\"domainName\"\" pulumi-lang-python=\"\"domain_name\"\" pulumi-lang-yaml=\"\"domainName\"\" pulumi-lang-java=\"\"domainName\"\">\"domain_name\"</span>:\"functiondebug.example1.com.\"}]`\n\n> Ensure the agency with DNS management permissions specified before using this parameter.\n","type":"string"},"enableAuthInHeader":{"description":"Specifies whether the authentication in the request header is enabled.\nDefaults to **false**.\n","type":"boolean"},"enableClassIsolation":{"description":"Specifies whether to enable class isolation.\n","type":"boolean"},"enableDynamicMemory":{"description":"Specifies whether to enable dynamic memory allocation.\n","type":"boolean"},"enableLtsLog":{"description":"Specifies whether to enable the LTS logging feature.\nThe valid values are as follows:\n+ **null** or omit this parameter definition: Using the default value configured on the FunctionGraph service to\nconfigure the LTS logging feature.\n+ **true**: Explicitly enable the LTS logging feature.\n+ **false**: Explicitly disable the LTS logging feature.\n","type":"boolean"},"encryptedUserData":{"description":"Specifies the key/value information defined to be encrypted for the\nfunction.\n","secret":true,"type":"string"},"enterpriseProjectId":{"description":"Specifies the ID of the enterprise project to which the\nfunction belongs.\n","type":"string"},"ephemeralStorage":{"description":"Specifies the size of the function ephemeral storage.\nThe valid values are as follows:\n+ **512**\n+ **10240**\n\nDefaults to <span pulumi-lang-nodejs=\"`512`\" pulumi-lang-dotnet=\"`512`\" pulumi-lang-go=\"`512`\" pulumi-lang-python=\"`512`\" pulumi-lang-yaml=\"`512`\" pulumi-lang-java=\"`512`\">`512`</span>. Only custom image or http runtime supported.\n","type":"number"},"extendConfig":{"description":"The extended configuration.\n","type":"string"},"fgsFunctionV2Id":{"description":"The resource ID, consist of <span pulumi-lang-nodejs=\"`urn`\" pulumi-lang-dotnet=\"`Urn`\" pulumi-lang-go=\"`urn`\" pulumi-lang-python=\"`urn`\" pulumi-lang-yaml=\"`urn`\" pulumi-lang-java=\"`urn`\">`urn`</span> and current <span pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\">`version`</span>, the format is `<urn>:<version>`.\n","type":"string"},"funcCode":{"description":"Specifies the function code.\nThe code value can be encoded using **Base64** or just with the text code.\nRequired if the <span pulumi-lang-nodejs=\"`codeType`\" pulumi-lang-dotnet=\"`CodeType`\" pulumi-lang-go=\"`codeType`\" pulumi-lang-python=\"`code_type`\" pulumi-lang-yaml=\"`codeType`\" pulumi-lang-java=\"`codeType`\">`code_type`</span> is set to **inline**, **zip**, or **jar**.\n","type":"string"},"funcMounts":{"description":"Specifies the file system list. The <span pulumi-lang-nodejs=\"`funcMounts`\" pulumi-lang-dotnet=\"`FuncMounts`\" pulumi-lang-go=\"`funcMounts`\" pulumi-lang-python=\"`func_mounts`\" pulumi-lang-yaml=\"`funcMounts`\" pulumi-lang-java=\"`funcMounts`\">`func_mounts`</span> object structure is documented\nbelow.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FFgsFunctionV2FuncMount:FgsFunctionV2FuncMount"},"type":"array"},"functiongraphVersion":{"description":"Specifies the FunctionGraph version, default value is **v2**.\nThe valid values are as follows:\n+ **v1**\n+ **v2**\n","type":"string"},"gpuMemory":{"description":"Specifies the GPU memory size allocated to the function, in MByte (MB).\nThe valid value ranges form `1,024` to `16,384`, the value must be a multiple of `1,024`.\nIf not specified, the GPU function is disabled.\n","type":"number"},"gpuType":{"type":"string"},"handler":{"description":"Specifies the entry point of the function.\n","type":"string"},"heartbeatHandler":{"description":"Specifies the heartbeat handler of the function.\nThe rule is **xx.xx**, such as **com.huawei.demo.TriggerTests.heartBeat**, it must contain periods (.).\nThe heartbeat function entry must be in the same file as the function execution entry.\n","type":"string"},"initializerHandler":{"description":"Specifies the initializer of the function.\n","type":"string"},"initializerTimeout":{"description":"Specifies the maximum duration the function can be initialized. Value range:\n1s to 300s.\n","type":"number"},"isStatefulFunction":{"description":"Specifies whether the function is a stateful function.\nDefaults to **false**.\n","type":"boolean"},"logGroupId":{"description":"Specifies the ID of the LTS log group.\n","type":"string"},"logGroupName":{"description":"Specifies the name of the LTS log group.\n","type":"string"},"logTopicId":{"description":"Specifies the ID of the LTS log stream.\n","type":"string"},"logTopicName":{"description":"Specifies the name of the LTS stream.\n","type":"string"},"ltsCustomTag":{"additionalProperties":{"type":"string"},"description":"Specifies the custom tags configuration that used to filter the LTS logs.\nThis parameter is available only when <span pulumi-lang-nodejs=\"`enableLtsLog`\" pulumi-lang-dotnet=\"`EnableLtsLog`\" pulumi-lang-go=\"`enableLtsLog`\" pulumi-lang-python=\"`enable_lts_log`\" pulumi-lang-yaml=\"`enableLtsLog`\" pulumi-lang-java=\"`enableLtsLog`\">`enable_lts_log`</span> is set to **true**.\n\n> This parameter is only supported by the <span pulumi-lang-nodejs=\"`v2`\" pulumi-lang-dotnet=\"`V2`\" pulumi-lang-go=\"`v2`\" pulumi-lang-python=\"`v2`\" pulumi-lang-yaml=\"`v2`\" pulumi-lang-java=\"`v2`\">`v2`</span> version of the function.\n","type":"object"},"maxInstanceNum":{"description":"Specifies the maximum number of instances of the function.\nThe valid value ranges from `-1` to `1,000`, defaults to <span pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\">`400`</span>.\n+ The minimum value is `-1` and means the number of instances is unlimited.\n","type":"string"},"memorySize":{"description":"Specifies the memory size allocated to the function, in MByte (MB).\n","type":"number"},"mountUserGroupId":{"description":"Specifies the user group ID, a non-0 integer from `–1` to `65,534`.\nDefaults to `-1`.\n","type":"number"},"mountUserId":{"description":"Specifies the user ID, a non-0 integer from `–1` to `65,534`.\nDefaults to `-1`.\n","type":"number"},"name":{"description":"Specifies the name of the function.\nChanging this will create a new resource.\n","type":"string"},"networkController":{"$ref":"#/types/opentelekomcloud:index%2FFgsFunctionV2NetworkController:FgsFunctionV2NetworkController","description":"Specifies the network configuration of the function.\nThe<span pulumi-lang-nodejs=\" networkController \" pulumi-lang-dotnet=\" NetworkController \" pulumi-lang-go=\" networkController \" pulumi-lang-python=\" network_controller \" pulumi-lang-yaml=\" networkController \" pulumi-lang-java=\" networkController \"> network_controller </span>structure is documented below.\n"},"networkId":{"description":"Specifies the network ID of subnet.\n","type":"string"},"opentelekomcloudUrn":{"description":"Uniform Resource Name.\n","type":"string"},"peeringCidr":{"description":"Specifies the VPC cidr blocks used in the function code to detect whether it\nconflicts with the VPC cidr blocks used by the service.\nThe cidr blocks are separated by semicolons and cannot exceed <span pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\">`5`</span>.\n","type":"string"},"preStopHandler":{"description":"Specifies the pre-stop handler of a function. The value must contain a period (.)\nin the format of xx.xx. For example, for Node.js function myfunction.pre_stop_handler, the file name is myfunction.js,\nand the initialization function is pre_stop_handler.\n","type":"string"},"preStopTimeout":{"description":"Specifies the maximum duration the function can be initialized. Value range: 1s-90s.\n","type":"number"},"region":{"description":"The region in which function graph resource is created.\n","type":"string"},"reservedInstances":{"description":"Specifies the reserved instance policies of the function.\nThe <span pulumi-lang-nodejs=\"`reservedInstances`\" pulumi-lang-dotnet=\"`ReservedInstances`\" pulumi-lang-go=\"`reservedInstances`\" pulumi-lang-python=\"`reserved_instances`\" pulumi-lang-yaml=\"`reservedInstances`\" pulumi-lang-java=\"`reservedInstances`\">`reserved_instances`</span> structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FFgsFunctionV2ReservedInstance:FgsFunctionV2ReservedInstance"},"type":"array"},"restoreHookHandler":{"type":"string"},"restoreHookTimeout":{"type":"number"},"runtime":{"description":"Specifies the environment for executing the function.\nThe valid values are as follows:\n+ **Java8**\n+ **Java11**\n+ **Node.js6.10**\n+ **Node.js8.10**\n+ **Node.js10.16**\n+ **Node.js12.13**\n+ **Node.js14.18**\n+ **Node.js16.17**\n+ **Node.js18.15**\n+ **Python2.7**\n+ **Python3.6**\n+ **Python3.9**\n+ **Python3.10**\n+ **Go1.x**\n+ **C#(.NET Core 2.1)**\n+ **C#(.NET Core 3.1)**\n+ **PHP7.3**\n+ **Custom**\n+ **http**\n+ **Custom Image**\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value pairs to associate with the function.\n","type":"object"},"timeout":{"description":"Specifies the timeout interval of the function, in seconds.\nThe value ranges from <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`900`\" pulumi-lang-dotnet=\"`900`\" pulumi-lang-go=\"`900`\" pulumi-lang-python=\"`900`\" pulumi-lang-yaml=\"`900`\" pulumi-lang-java=\"`900`\">`900`</span>.\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FFgsFunctionV2Timeouts:FgsFunctionV2Timeouts"},"userData":{"description":"Specifies the Key/Value information defined for the function.\n","type":"string"},"version":{"description":"The version of the function.\n","type":"string"},"versions":{"description":"Specifies the versions management of the function.\nThe <span pulumi-lang-nodejs=\"`versions`\" pulumi-lang-dotnet=\"`Versions`\" pulumi-lang-go=\"`versions`\" pulumi-lang-python=\"`versions`\" pulumi-lang-yaml=\"`versions`\" pulumi-lang-java=\"`versions`\">`versions`</span> structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FFgsFunctionV2Version:FgsFunctionV2Version"},"type":"array"},"vpcId":{"description":"Specifies the ID of VPC.\n","type":"string"}},"required":["allowEphemeralStorage","apigRouteEnable","appAgency","codeFilename","codeType","concurrencyNum","dependLists","dnsList","enableAuthInHeader","enableLtsLog","enterpriseProjectId","ephemeralStorage","extendConfig","fgsFunctionV2Id","functiongraphVersion","gpuType","handler","heartbeatHandler","initializerHandler","initializerTimeout","isStatefulFunction","logGroupId","logGroupName","logTopicId","logTopicName","ltsCustomTag","maxInstanceNum","memorySize","mountUserGroupId","mountUserId","name","opentelekomcloudUrn","region","runtime","timeout","version"],"requiredInputs":["memorySize","runtime","timeout"],"stateInputs":{"description":"Input properties used for looking up and filtering FgsFunctionV2 resources.\n","properties":{"agency":{"description":"Specifies the agency. This parameter is mandatory if the function needs to access other\ncloud services.\n","type":"string"},"allowEphemeralStorage":{"description":"Indicates whether ephemeral storage can be configured.\n","type":"boolean"},"apigRouteEnable":{"description":"Whether to configure gateway routing rules.\n","type":"boolean"},"app":{"description":"Specifies the group to which the function belongs.\n","type":"string"},"appAgency":{"description":"Specifies the execution agency enables you to obtain a token or an AK/SK for\naccessing other cloud services.\n","type":"string"},"codeFilename":{"description":"Specifies the name of a function file.\nRequired if the <span pulumi-lang-nodejs=\"`codeType`\" pulumi-lang-dotnet=\"`CodeType`\" pulumi-lang-go=\"`codeType`\" pulumi-lang-python=\"`code_type`\" pulumi-lang-yaml=\"`codeType`\" pulumi-lang-java=\"`codeType`\">`code_type`</span> is set to **jar** or **zip**.\n","type":"string"},"codeType":{"description":"Specifies the function code type, which can be:\n+ **inline**: inline code.\n+ **zip**: ZIP file.\n+ **jar**: JAR file or java functions.\n+ **obs**: function code stored in an OBS bucket.\n+ **Custom-Image-Swr**: function code comes from the SWR custom image.\n","type":"string"},"codeUrl":{"description":"Specifies the code url.\nRequired if the <span pulumi-lang-nodejs=\"`codeType`\" pulumi-lang-dotnet=\"`CodeType`\" pulumi-lang-go=\"`codeType`\" pulumi-lang-python=\"`code_type`\" pulumi-lang-yaml=\"`codeType`\" pulumi-lang-java=\"`codeType`\">`code_type`</span> is set to **obs**.\n","type":"string"},"concurrencyNum":{"description":"Specifies the number of concurrent requests of the function.\nThe valid value is range from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to `1,000`, the default value is <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>.\n\n> 1. This parameter is only supported by the <span pulumi-lang-nodejs=\"`v2`\" pulumi-lang-dotnet=\"`V2`\" pulumi-lang-go=\"`v2`\" pulumi-lang-python=\"`v2`\" pulumi-lang-yaml=\"`v2`\" pulumi-lang-java=\"`v2`\">`v2`</span> version of the function.\n<br>2. This parameter is available only when the <span pulumi-lang-nodejs=\"`runtime`\" pulumi-lang-dotnet=\"`Runtime`\" pulumi-lang-go=\"`runtime`\" pulumi-lang-python=\"`runtime`\" pulumi-lang-yaml=\"`runtime`\" pulumi-lang-java=\"`runtime`\">`runtime`</span> parameter is set to **http** or **Custom Image**.\n","type":"number"},"customImage":{"$ref":"#/types/opentelekomcloud:index%2FFgsFunctionV2CustomImage:FgsFunctionV2CustomImage","description":"Specifies the custom image configuration of the function.\nThe <span pulumi-lang-nodejs=\"`customImage`\" pulumi-lang-dotnet=\"`CustomImage`\" pulumi-lang-go=\"`customImage`\" pulumi-lang-python=\"`custom_image`\" pulumi-lang-yaml=\"`customImage`\" pulumi-lang-java=\"`customImage`\">`custom_image`</span> structure is documented below.\nRequired if the parameter <span pulumi-lang-nodejs=\"`codeType`\" pulumi-lang-dotnet=\"`CodeType`\" pulumi-lang-go=\"`codeType`\" pulumi-lang-python=\"`code_type`\" pulumi-lang-yaml=\"`codeType`\" pulumi-lang-java=\"`codeType`\">`code_type`</span> is **Custom-Image-Swr**.\n"},"dependLists":{"description":"Specifies the ID list of the dependencies.\n","items":{"type":"string"},"type":"array"},"description":{"description":"Specifies the description of the function.\n","type":"string"},"dnsList":{"description":"Specifies the private DNS configuration of the function network.\nPrivate DNS list is associated to the function by a string in the following format:\n`[{\\\"id\\\":\\\"ff8080828a07ffea018a17184aa310f5\\\",<span pulumi-lang-nodejs=\"\"domainName\"\" pulumi-lang-dotnet=\"\"DomainName\"\" pulumi-lang-go=\"\"domainName\"\" pulumi-lang-python=\"\"domain_name\"\" pulumi-lang-yaml=\"\"domainName\"\" pulumi-lang-java=\"\"domainName\"\">\"domain_name\"</span>:\"functiondebug.example1.com.\"}]`\n\n> Ensure the agency with DNS management permissions specified before using this parameter.\n","type":"string"},"enableAuthInHeader":{"description":"Specifies whether the authentication in the request header is enabled.\nDefaults to **false**.\n","type":"boolean"},"enableClassIsolation":{"description":"Specifies whether to enable class isolation.\n","type":"boolean"},"enableDynamicMemory":{"description":"Specifies whether to enable dynamic memory allocation.\n","type":"boolean"},"enableLtsLog":{"description":"Specifies whether to enable the LTS logging feature.\nThe valid values are as follows:\n+ **null** or omit this parameter definition: Using the default value configured on the FunctionGraph service to\nconfigure the LTS logging feature.\n+ **true**: Explicitly enable the LTS logging feature.\n+ **false**: Explicitly disable the LTS logging feature.\n","type":"boolean"},"encryptedUserData":{"description":"Specifies the key/value information defined to be encrypted for the\nfunction.\n","secret":true,"type":"string"},"enterpriseProjectId":{"description":"Specifies the ID of the enterprise project to which the\nfunction belongs.\n","type":"string"},"ephemeralStorage":{"description":"Specifies the size of the function ephemeral storage.\nThe valid values are as follows:\n+ **512**\n+ **10240**\n\nDefaults to <span pulumi-lang-nodejs=\"`512`\" pulumi-lang-dotnet=\"`512`\" pulumi-lang-go=\"`512`\" pulumi-lang-python=\"`512`\" pulumi-lang-yaml=\"`512`\" pulumi-lang-java=\"`512`\">`512`</span>. Only custom image or http runtime supported.\n","type":"number"},"extendConfig":{"description":"The extended configuration.\n","type":"string"},"fgsFunctionV2Id":{"description":"The resource ID, consist of <span pulumi-lang-nodejs=\"`urn`\" pulumi-lang-dotnet=\"`Urn`\" pulumi-lang-go=\"`urn`\" pulumi-lang-python=\"`urn`\" pulumi-lang-yaml=\"`urn`\" pulumi-lang-java=\"`urn`\">`urn`</span> and current <span pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\">`version`</span>, the format is `<urn>:<version>`.\n","type":"string"},"funcCode":{"description":"Specifies the function code.\nThe code value can be encoded using **Base64** or just with the text code.\nRequired if the <span pulumi-lang-nodejs=\"`codeType`\" pulumi-lang-dotnet=\"`CodeType`\" pulumi-lang-go=\"`codeType`\" pulumi-lang-python=\"`code_type`\" pulumi-lang-yaml=\"`codeType`\" pulumi-lang-java=\"`codeType`\">`code_type`</span> is set to **inline**, **zip**, or **jar**.\n","type":"string"},"funcMounts":{"description":"Specifies the file system list. The <span pulumi-lang-nodejs=\"`funcMounts`\" pulumi-lang-dotnet=\"`FuncMounts`\" pulumi-lang-go=\"`funcMounts`\" pulumi-lang-python=\"`func_mounts`\" pulumi-lang-yaml=\"`funcMounts`\" pulumi-lang-java=\"`funcMounts`\">`func_mounts`</span> object structure is documented\nbelow.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FFgsFunctionV2FuncMount:FgsFunctionV2FuncMount"},"type":"array"},"functiongraphVersion":{"description":"Specifies the FunctionGraph version, default value is **v2**.\nThe valid values are as follows:\n+ **v1**\n+ **v2**\n","type":"string"},"gpuMemory":{"description":"Specifies the GPU memory size allocated to the function, in MByte (MB).\nThe valid value ranges form `1,024` to `16,384`, the value must be a multiple of `1,024`.\nIf not specified, the GPU function is disabled.\n","type":"number"},"gpuType":{"type":"string"},"handler":{"description":"Specifies the entry point of the function.\n","type":"string"},"heartbeatHandler":{"description":"Specifies the heartbeat handler of the function.\nThe rule is **xx.xx**, such as **com.huawei.demo.TriggerTests.heartBeat**, it must contain periods (.).\nThe heartbeat function entry must be in the same file as the function execution entry.\n","type":"string"},"initializerHandler":{"description":"Specifies the initializer of the function.\n","type":"string"},"initializerTimeout":{"description":"Specifies the maximum duration the function can be initialized. Value range:\n1s to 300s.\n","type":"number"},"isStatefulFunction":{"description":"Specifies whether the function is a stateful function.\nDefaults to **false**.\n","type":"boolean"},"logGroupId":{"description":"Specifies the ID of the LTS log group.\n","type":"string"},"logGroupName":{"description":"Specifies the name of the LTS log group.\n","type":"string"},"logTopicId":{"description":"Specifies the ID of the LTS log stream.\n","type":"string"},"logTopicName":{"description":"Specifies the name of the LTS stream.\n","type":"string"},"ltsCustomTag":{"additionalProperties":{"type":"string"},"description":"Specifies the custom tags configuration that used to filter the LTS logs.\nThis parameter is available only when <span pulumi-lang-nodejs=\"`enableLtsLog`\" pulumi-lang-dotnet=\"`EnableLtsLog`\" pulumi-lang-go=\"`enableLtsLog`\" pulumi-lang-python=\"`enable_lts_log`\" pulumi-lang-yaml=\"`enableLtsLog`\" pulumi-lang-java=\"`enableLtsLog`\">`enable_lts_log`</span> is set to **true**.\n\n> This parameter is only supported by the <span pulumi-lang-nodejs=\"`v2`\" pulumi-lang-dotnet=\"`V2`\" pulumi-lang-go=\"`v2`\" pulumi-lang-python=\"`v2`\" pulumi-lang-yaml=\"`v2`\" pulumi-lang-java=\"`v2`\">`v2`</span> version of the function.\n","type":"object"},"maxInstanceNum":{"description":"Specifies the maximum number of instances of the function.\nThe valid value ranges from `-1` to `1,000`, defaults to <span pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\">`400`</span>.\n+ The minimum value is `-1` and means the number of instances is unlimited.\n","type":"string"},"memorySize":{"description":"Specifies the memory size allocated to the function, in MByte (MB).\n","type":"number"},"mountUserGroupId":{"description":"Specifies the user group ID, a non-0 integer from `–1` to `65,534`.\nDefaults to `-1`.\n","type":"number"},"mountUserId":{"description":"Specifies the user ID, a non-0 integer from `–1` to `65,534`.\nDefaults to `-1`.\n","type":"number"},"name":{"description":"Specifies the name of the function.\nChanging this will create a new resource.\n","type":"string"},"networkController":{"$ref":"#/types/opentelekomcloud:index%2FFgsFunctionV2NetworkController:FgsFunctionV2NetworkController","description":"Specifies the network configuration of the function.\nThe<span pulumi-lang-nodejs=\" networkController \" pulumi-lang-dotnet=\" NetworkController \" pulumi-lang-go=\" networkController \" pulumi-lang-python=\" network_controller \" pulumi-lang-yaml=\" networkController \" pulumi-lang-java=\" networkController \"> network_controller </span>structure is documented below.\n"},"networkId":{"description":"Specifies the network ID of subnet.\n","type":"string"},"opentelekomcloudUrn":{"description":"Uniform Resource Name.\n","type":"string"},"peeringCidr":{"description":"Specifies the VPC cidr blocks used in the function code to detect whether it\nconflicts with the VPC cidr blocks used by the service.\nThe cidr blocks are separated by semicolons and cannot exceed <span pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\">`5`</span>.\n","type":"string"},"preStopHandler":{"description":"Specifies the pre-stop handler of a function. The value must contain a period (.)\nin the format of xx.xx. For example, for Node.js function myfunction.pre_stop_handler, the file name is myfunction.js,\nand the initialization function is pre_stop_handler.\n","type":"string"},"preStopTimeout":{"description":"Specifies the maximum duration the function can be initialized. Value range: 1s-90s.\n","type":"number"},"region":{"description":"The region in which function graph resource is created.\n","type":"string"},"reservedInstances":{"description":"Specifies the reserved instance policies of the function.\nThe <span pulumi-lang-nodejs=\"`reservedInstances`\" pulumi-lang-dotnet=\"`ReservedInstances`\" pulumi-lang-go=\"`reservedInstances`\" pulumi-lang-python=\"`reserved_instances`\" pulumi-lang-yaml=\"`reservedInstances`\" pulumi-lang-java=\"`reservedInstances`\">`reserved_instances`</span> structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FFgsFunctionV2ReservedInstance:FgsFunctionV2ReservedInstance"},"type":"array"},"restoreHookHandler":{"type":"string"},"restoreHookTimeout":{"type":"number"},"runtime":{"description":"Specifies the environment for executing the function.\nThe valid values are as follows:\n+ **Java8**\n+ **Java11**\n+ **Node.js6.10**\n+ **Node.js8.10**\n+ **Node.js10.16**\n+ **Node.js12.13**\n+ **Node.js14.18**\n+ **Node.js16.17**\n+ **Node.js18.15**\n+ **Python2.7**\n+ **Python3.6**\n+ **Python3.9**\n+ **Python3.10**\n+ **Go1.x**\n+ **C#(.NET Core 2.1)**\n+ **C#(.NET Core 3.1)**\n+ **PHP7.3**\n+ **Custom**\n+ **http**\n+ **Custom Image**\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value pairs to associate with the function.\n","type":"object"},"timeout":{"description":"Specifies the timeout interval of the function, in seconds.\nThe value ranges from <span pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\">`3`</span> to <span pulumi-lang-nodejs=\"`900`\" pulumi-lang-dotnet=\"`900`\" pulumi-lang-go=\"`900`\" pulumi-lang-python=\"`900`\" pulumi-lang-yaml=\"`900`\" pulumi-lang-java=\"`900`\">`900`</span>.\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FFgsFunctionV2Timeouts:FgsFunctionV2Timeouts"},"userData":{"description":"Specifies the Key/Value information defined for the function.\n","type":"string"},"version":{"description":"The version of the function.\n","type":"string"},"versions":{"description":"Specifies the versions management of the function.\nThe <span pulumi-lang-nodejs=\"`versions`\" pulumi-lang-dotnet=\"`Versions`\" pulumi-lang-go=\"`versions`\" pulumi-lang-python=\"`versions`\" pulumi-lang-yaml=\"`versions`\" pulumi-lang-java=\"`versions`\">`versions`</span> structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FFgsFunctionV2Version:FgsFunctionV2Version"},"type":"array"},"vpcId":{"description":"Specifies the ID of VPC.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/fgsTriggerV2:FgsTriggerV2":{"description":"Up-to-date reference of API arguments for FGS you can get at\n[documentation portal](https://docs.otc.t-systems.com/function-graph/api-ref/apis/index.html)\n\nManages a V2 function graph trigger resource within OpenTelekomCloud.\n\n## Example Usage\n\n## Import\n\nFunction trigger can be imported using the `function_urn`, `type` and `id`, separated by the slashes (/), e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/fgsTriggerV2:FgsTriggerV2 test <function_urn>/<type>/<id>\n```\n\n","inputProperties":{"eventData":{"description":"Specifies the detailed configuration of the function trigger event.\nFor various types of trigger parameter configurations, please refer to the\n[documentation](https://docs.otc.t-systems.com/function-graph/api-ref/apis/function_triggers/creating_a_trigger.html#id4).\n\n> Please refer to the [documentation](https://docs.otc.t-systems.com/function-graph/api-ref/apis/function_triggers/updating_a_trigger.html#functiongraph-06-0124-request-updateriggereventdata)\nfor updatable fields.\n","type":"string"},"fgsTriggerV2Id":{"description":"resource ID in UUID format.\n","type":"string"},"functionUrn":{"description":"Specifies the function URN to which the function trigger belongs.\n","type":"string"},"status":{"description":"Specifies the status of the function trigger.\nThe valid values are **ACTIVE** and **DISABLED**.\nFor `DDS` and `Kafka` triggers the default value is **DISABLED**, for other triggers= the default value is **ACTIVE**.\n\n> Currently, only some triggers support setting the **DISABLED** value, such as `TIMER`, `DDS`, `DMS`, `KAFKA` and\n`LTS`. For more details, please refer to the [documentation](https://docs.otc.t-systems.com/function-graph/api-ref/apis/function_triggers/creating_a_trigger.html).\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FFgsTriggerV2Timeouts:FgsTriggerV2Timeouts"},"type":{"description":"Specifies the type of the function trigger.\nThe valid values are **TIMER**, **APIG**, **CTS**, **DDS**, **DEDICATEDGATEWAY**, etc.\n\n> For more available values, please refer to the [documentation table 3](https://docs.otc.t-systems.com/function-graph/api-ref/apis/function_triggers/creating_a_trigger.html#functiongraph-06-0122).\n","type":"string"}},"properties":{"createdAt":{"description":"The creation time of the function trigger.\n","type":"string"},"eventData":{"description":"Specifies the detailed configuration of the function trigger event.\nFor various types of trigger parameter configurations, please refer to the\n[documentation](https://docs.otc.t-systems.com/function-graph/api-ref/apis/function_triggers/creating_a_trigger.html#id4).\n\n> Please refer to the [documentation](https://docs.otc.t-systems.com/function-graph/api-ref/apis/function_triggers/updating_a_trigger.html#functiongraph-06-0124-request-updateriggereventdata)\nfor updatable fields.\n","type":"string"},"fgsTriggerV2Id":{"description":"resource ID in UUID format.\n","type":"string"},"functionUrn":{"description":"Specifies the function URN to which the function trigger belongs.\n","type":"string"},"region":{"description":"The region where the function trigger is located.\n","type":"string"},"status":{"description":"Specifies the status of the function trigger.\nThe valid values are **ACTIVE** and **DISABLED**.\nFor `DDS` and `Kafka` triggers the default value is **DISABLED**, for other triggers= the default value is **ACTIVE**.\n\n> Currently, only some triggers support setting the **DISABLED** value, such as `TIMER`, `DDS`, `DMS`, `KAFKA` and\n`LTS`. For more details, please refer to the [documentation](https://docs.otc.t-systems.com/function-graph/api-ref/apis/function_triggers/creating_a_trigger.html).\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FFgsTriggerV2Timeouts:FgsTriggerV2Timeouts"},"type":{"description":"Specifies the type of the function trigger.\nThe valid values are **TIMER**, **APIG**, **CTS**, **DDS**, **DEDICATEDGATEWAY**, etc.\n\n> For more available values, please refer to the [documentation table 3](https://docs.otc.t-systems.com/function-graph/api-ref/apis/function_triggers/creating_a_trigger.html#functiongraph-06-0122).\n","type":"string"},"updatedAt":{"description":"The latest update time of the function trigger.\n","type":"string"}},"required":["createdAt","eventData","fgsTriggerV2Id","functionUrn","region","status","type","updatedAt"],"requiredInputs":["eventData","functionUrn","type"],"stateInputs":{"description":"Input properties used for looking up and filtering FgsTriggerV2 resources.\n","properties":{"createdAt":{"description":"The creation time of the function trigger.\n","type":"string"},"eventData":{"description":"Specifies the detailed configuration of the function trigger event.\nFor various types of trigger parameter configurations, please refer to the\n[documentation](https://docs.otc.t-systems.com/function-graph/api-ref/apis/function_triggers/creating_a_trigger.html#id4).\n\n> Please refer to the [documentation](https://docs.otc.t-systems.com/function-graph/api-ref/apis/function_triggers/updating_a_trigger.html#functiongraph-06-0124-request-updateriggereventdata)\nfor updatable fields.\n","type":"string"},"fgsTriggerV2Id":{"description":"resource ID in UUID format.\n","type":"string"},"functionUrn":{"description":"Specifies the function URN to which the function trigger belongs.\n","type":"string"},"region":{"description":"The region where the function trigger is located.\n","type":"string"},"status":{"description":"Specifies the status of the function trigger.\nThe valid values are **ACTIVE** and **DISABLED**.\nFor `DDS` and `Kafka` triggers the default value is **DISABLED**, for other triggers= the default value is **ACTIVE**.\n\n> Currently, only some triggers support setting the **DISABLED** value, such as `TIMER`, `DDS`, `DMS`, `KAFKA` and\n`LTS`. For more details, please refer to the [documentation](https://docs.otc.t-systems.com/function-graph/api-ref/apis/function_triggers/creating_a_trigger.html).\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FFgsTriggerV2Timeouts:FgsTriggerV2Timeouts"},"type":{"description":"Specifies the type of the function trigger.\nThe valid values are **TIMER**, **APIG**, **CTS**, **DDS**, **DEDICATEDGATEWAY**, etc.\n\n> For more available values, please refer to the [documentation table 3](https://docs.otc.t-systems.com/function-graph/api-ref/apis/function_triggers/creating_a_trigger.html#functiongraph-06-0122).\n","type":"string"},"updatedAt":{"description":"The latest update time of the function trigger.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/fwFirewallGroupV2:FwFirewallGroupV2":{"description":"Up-to-date reference of API arguments for VPC firewall group you can get at\n[documentation portal](https://docs.otc.t-systems.com/virtual-private-cloud/api-ref/native_openstack_neutron_apis_v2.0/firewall)\n\nManages a v2 firewall group resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst rule1 = new opentelekomcloud.FwRuleV2(\"rule_1\", {\n    name: \"my-rule-1\",\n    description: \"drop TELNET traffic\",\n    action: \"deny\",\n    protocol: \"tcp\",\n    destinationPort: \"23\",\n    enabled: true,\n});\nconst rule2 = new opentelekomcloud.FwRuleV2(\"rule_2\", {\n    name: \"my-rule-2\",\n    description: \"drop NTP traffic\",\n    action: \"deny\",\n    protocol: \"udp\",\n    destinationPort: \"123\",\n    enabled: false,\n});\nconst policy1 = new opentelekomcloud.FwPolicyV2(\"policy_1\", {\n    name: \"my-policy\",\n    rules: [\n        rule1.fwRuleV2Id,\n        rule2.fwRuleV2Id,\n    ],\n});\nconst firewallGroup1 = new opentelekomcloud.FwFirewallGroupV2(\"firewall_group_1\", {\n    name: \"my-firewall-group\",\n    ingressPolicyId: policy1.fwPolicyV2Id,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nrule1 = opentelekomcloud.FwRuleV2(\"rule_1\",\n    name=\"my-rule-1\",\n    description=\"drop TELNET traffic\",\n    action=\"deny\",\n    protocol=\"tcp\",\n    destination_port=\"23\",\n    enabled=True)\nrule2 = opentelekomcloud.FwRuleV2(\"rule_2\",\n    name=\"my-rule-2\",\n    description=\"drop NTP traffic\",\n    action=\"deny\",\n    protocol=\"udp\",\n    destination_port=\"123\",\n    enabled=False)\npolicy1 = opentelekomcloud.FwPolicyV2(\"policy_1\",\n    name=\"my-policy\",\n    rules=[\n        rule1.fw_rule_v2_id,\n        rule2.fw_rule_v2_id,\n    ])\nfirewall_group1 = opentelekomcloud.FwFirewallGroupV2(\"firewall_group_1\",\n    name=\"my-firewall-group\",\n    ingress_policy_id=policy1.fw_policy_v2_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var rule1 = new Opentelekomcloud.FwRuleV2(\"rule_1\", new()\n    {\n        Name = \"my-rule-1\",\n        Description = \"drop TELNET traffic\",\n        Action = \"deny\",\n        Protocol = \"tcp\",\n        DestinationPort = \"23\",\n        Enabled = true,\n    });\n\n    var rule2 = new Opentelekomcloud.FwRuleV2(\"rule_2\", new()\n    {\n        Name = \"my-rule-2\",\n        Description = \"drop NTP traffic\",\n        Action = \"deny\",\n        Protocol = \"udp\",\n        DestinationPort = \"123\",\n        Enabled = false,\n    });\n\n    var policy1 = new Opentelekomcloud.FwPolicyV2(\"policy_1\", new()\n    {\n        Name = \"my-policy\",\n        Rules = new[]\n        {\n            rule1.FwRuleV2Id,\n            rule2.FwRuleV2Id,\n        },\n    });\n\n    var firewallGroup1 = new Opentelekomcloud.FwFirewallGroupV2(\"firewall_group_1\", new()\n    {\n        Name = \"my-firewall-group\",\n        IngressPolicyId = policy1.FwPolicyV2Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trule1, err := opentelekomcloud.NewFwRuleV2(ctx, \"rule_1\", &opentelekomcloud.FwRuleV2Args{\n\t\t\tName:            pulumi.String(\"my-rule-1\"),\n\t\t\tDescription:     pulumi.String(\"drop TELNET traffic\"),\n\t\t\tAction:          pulumi.String(\"deny\"),\n\t\t\tProtocol:        pulumi.String(\"tcp\"),\n\t\t\tDestinationPort: pulumi.String(\"23\"),\n\t\t\tEnabled:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trule2, err := opentelekomcloud.NewFwRuleV2(ctx, \"rule_2\", &opentelekomcloud.FwRuleV2Args{\n\t\t\tName:            pulumi.String(\"my-rule-2\"),\n\t\t\tDescription:     pulumi.String(\"drop NTP traffic\"),\n\t\t\tAction:          pulumi.String(\"deny\"),\n\t\t\tProtocol:        pulumi.String(\"udp\"),\n\t\t\tDestinationPort: pulumi.String(\"123\"),\n\t\t\tEnabled:         pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpolicy1, err := opentelekomcloud.NewFwPolicyV2(ctx, \"policy_1\", &opentelekomcloud.FwPolicyV2Args{\n\t\t\tName: pulumi.String(\"my-policy\"),\n\t\t\tRules: pulumi.StringArray{\n\t\t\t\trule1.FwRuleV2Id,\n\t\t\t\trule2.FwRuleV2Id,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewFwFirewallGroupV2(ctx, \"firewall_group_1\", &opentelekomcloud.FwFirewallGroupV2Args{\n\t\t\tName:            pulumi.String(\"my-firewall-group\"),\n\t\t\tIngressPolicyId: policy1.FwPolicyV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.FwRuleV2;\nimport com.pulumi.opentelekomcloud.FwRuleV2Args;\nimport com.pulumi.opentelekomcloud.FwPolicyV2;\nimport com.pulumi.opentelekomcloud.FwPolicyV2Args;\nimport com.pulumi.opentelekomcloud.FwFirewallGroupV2;\nimport com.pulumi.opentelekomcloud.FwFirewallGroupV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var rule1 = new FwRuleV2(\"rule1\", FwRuleV2Args.builder()\n            .name(\"my-rule-1\")\n            .description(\"drop TELNET traffic\")\n            .action(\"deny\")\n            .protocol(\"tcp\")\n            .destinationPort(\"23\")\n            .enabled(true)\n            .build());\n\n        var rule2 = new FwRuleV2(\"rule2\", FwRuleV2Args.builder()\n            .name(\"my-rule-2\")\n            .description(\"drop NTP traffic\")\n            .action(\"deny\")\n            .protocol(\"udp\")\n            .destinationPort(\"123\")\n            .enabled(false)\n            .build());\n\n        var policy1 = new FwPolicyV2(\"policy1\", FwPolicyV2Args.builder()\n            .name(\"my-policy\")\n            .rules(            \n                rule1.fwRuleV2Id(),\n                rule2.fwRuleV2Id())\n            .build());\n\n        var firewallGroup1 = new FwFirewallGroupV2(\"firewallGroup1\", FwFirewallGroupV2Args.builder()\n            .name(\"my-firewall-group\")\n            .ingressPolicyId(policy1.fwPolicyV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  rule1:\n    type: opentelekomcloud:FwRuleV2\n    name: rule_1\n    properties:\n      name: my-rule-1\n      description: drop TELNET traffic\n      action: deny\n      protocol: tcp\n      destinationPort: '23'\n      enabled: 'true'\n  rule2:\n    type: opentelekomcloud:FwRuleV2\n    name: rule_2\n    properties:\n      name: my-rule-2\n      description: drop NTP traffic\n      action: deny\n      protocol: udp\n      destinationPort: '123'\n      enabled: 'false'\n  policy1:\n    type: opentelekomcloud:FwPolicyV2\n    name: policy_1\n    properties:\n      name: my-policy\n      rules:\n        - ${rule1.fwRuleV2Id}\n        - ${rule2.fwRuleV2Id}\n  firewallGroup1:\n    type: opentelekomcloud:FwFirewallGroupV2\n    name: firewall_group_1\n    properties:\n      name: my-firewall-group\n      ingressPolicyId: ${policy1.fwPolicyV2Id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nFirewall Groups can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/fwFirewallGroupV2:FwFirewallGroupV2 firewall_group_1 c9e39fb2-ce20-46c8-a964-25f3898c7a97\n```\n\n","inputProperties":{"adminStateUp":{"description":"Administrative up/down status for the firewall group\n(must be \"true\" or \"false\" if provided - defaults to \"true\").\nChanging this updates the <span pulumi-lang-nodejs=\"`adminStateUp`\" pulumi-lang-dotnet=\"`AdminStateUp`\" pulumi-lang-go=\"`adminStateUp`\" pulumi-lang-python=\"`admin_state_up`\" pulumi-lang-yaml=\"`adminStateUp`\" pulumi-lang-java=\"`adminStateUp`\">`admin_state_up`</span> of an existing firewall group.\n","type":"boolean"},"description":{"description":"A description for the firewall group. Changing this\nupdates the <span pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\">`description`</span> of an existing firewall group.\n","type":"string"},"egressPolicyId":{"description":"The egress policy resource id for the firewall group. Changing\nthis updates the <span pulumi-lang-nodejs=\"`egressPolicyId`\" pulumi-lang-dotnet=\"`EgressPolicyId`\" pulumi-lang-go=\"`egressPolicyId`\" pulumi-lang-python=\"`egress_policy_id`\" pulumi-lang-yaml=\"`egressPolicyId`\" pulumi-lang-java=\"`egressPolicyId`\">`egress_policy_id`</span> of an existing firewall group.\n","type":"string"},"fwFirewallGroupV2Id":{"type":"string"},"ingressPolicyId":{"description":"The ingress policy resource id for the firewall group. Changing\nthis updates the <span pulumi-lang-nodejs=\"`ingressPolicyId`\" pulumi-lang-dotnet=\"`IngressPolicyId`\" pulumi-lang-go=\"`ingressPolicyId`\" pulumi-lang-python=\"`ingress_policy_id`\" pulumi-lang-yaml=\"`ingressPolicyId`\" pulumi-lang-java=\"`ingressPolicyId`\">`ingress_policy_id`</span> of an existing firewall group.\n","type":"string"},"name":{"description":"A name for the firewall group. Changing this\nupdates the <span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span> of an existing firewall group.\n","type":"string"},"ports":{"description":"Port(s) to associate this firewall group instance\nwith. Must be a list of strings. Changing this updates the associated routers\nof an existing firewall group.\n","items":{"type":"string"},"type":"array"},"region":{"type":"string"},"tenantId":{"description":"The owner of the floating IP. Required if admin wants\nto create a firewall group for another tenant. Changing this creates a new\nfirewall group.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FFwFirewallGroupV2Timeouts:FwFirewallGroupV2Timeouts"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options.\n","type":"object"}},"properties":{"adminStateUp":{"description":"Administrative up/down status for the firewall group\n(must be \"true\" or \"false\" if provided - defaults to \"true\").\nChanging this updates the <span pulumi-lang-nodejs=\"`adminStateUp`\" pulumi-lang-dotnet=\"`AdminStateUp`\" pulumi-lang-go=\"`adminStateUp`\" pulumi-lang-python=\"`admin_state_up`\" pulumi-lang-yaml=\"`adminStateUp`\" pulumi-lang-java=\"`adminStateUp`\">`admin_state_up`</span> of an existing firewall group.\n","type":"boolean"},"description":{"description":"A description for the firewall group. Changing this\nupdates the <span pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\">`description`</span> of an existing firewall group.\n","type":"string"},"egressPolicyId":{"description":"The egress policy resource id for the firewall group. Changing\nthis updates the <span pulumi-lang-nodejs=\"`egressPolicyId`\" pulumi-lang-dotnet=\"`EgressPolicyId`\" pulumi-lang-go=\"`egressPolicyId`\" pulumi-lang-python=\"`egress_policy_id`\" pulumi-lang-yaml=\"`egressPolicyId`\" pulumi-lang-java=\"`egressPolicyId`\">`egress_policy_id`</span> of an existing firewall group.\n","type":"string"},"fwFirewallGroupV2Id":{"type":"string"},"ingressPolicyId":{"description":"The ingress policy resource id for the firewall group. Changing\nthis updates the <span pulumi-lang-nodejs=\"`ingressPolicyId`\" pulumi-lang-dotnet=\"`IngressPolicyId`\" pulumi-lang-go=\"`ingressPolicyId`\" pulumi-lang-python=\"`ingress_policy_id`\" pulumi-lang-yaml=\"`ingressPolicyId`\" pulumi-lang-java=\"`ingressPolicyId`\">`ingress_policy_id`</span> of an existing firewall group.\n","type":"string"},"name":{"description":"A name for the firewall group. Changing this\nupdates the <span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span> of an existing firewall group.\n","type":"string"},"ports":{"description":"Port(s) to associate this firewall group instance\nwith. Must be a list of strings. Changing this updates the associated routers\nof an existing firewall group.\n","items":{"type":"string"},"type":"array"},"region":{"type":"string"},"tenantId":{"description":"The owner of the floating IP. Required if admin wants\nto create a firewall group for another tenant. Changing this creates a new\nfirewall group.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FFwFirewallGroupV2Timeouts:FwFirewallGroupV2Timeouts"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options.\n","type":"object"}},"required":["fwFirewallGroupV2Id","name","ports","region","tenantId"],"stateInputs":{"description":"Input properties used for looking up and filtering FwFirewallGroupV2 resources.\n","properties":{"adminStateUp":{"description":"Administrative up/down status for the firewall group\n(must be \"true\" or \"false\" if provided - defaults to \"true\").\nChanging this updates the <span pulumi-lang-nodejs=\"`adminStateUp`\" pulumi-lang-dotnet=\"`AdminStateUp`\" pulumi-lang-go=\"`adminStateUp`\" pulumi-lang-python=\"`admin_state_up`\" pulumi-lang-yaml=\"`adminStateUp`\" pulumi-lang-java=\"`adminStateUp`\">`admin_state_up`</span> of an existing firewall group.\n","type":"boolean"},"description":{"description":"A description for the firewall group. Changing this\nupdates the <span pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\">`description`</span> of an existing firewall group.\n","type":"string"},"egressPolicyId":{"description":"The egress policy resource id for the firewall group. Changing\nthis updates the <span pulumi-lang-nodejs=\"`egressPolicyId`\" pulumi-lang-dotnet=\"`EgressPolicyId`\" pulumi-lang-go=\"`egressPolicyId`\" pulumi-lang-python=\"`egress_policy_id`\" pulumi-lang-yaml=\"`egressPolicyId`\" pulumi-lang-java=\"`egressPolicyId`\">`egress_policy_id`</span> of an existing firewall group.\n","type":"string"},"fwFirewallGroupV2Id":{"type":"string"},"ingressPolicyId":{"description":"The ingress policy resource id for the firewall group. Changing\nthis updates the <span pulumi-lang-nodejs=\"`ingressPolicyId`\" pulumi-lang-dotnet=\"`IngressPolicyId`\" pulumi-lang-go=\"`ingressPolicyId`\" pulumi-lang-python=\"`ingress_policy_id`\" pulumi-lang-yaml=\"`ingressPolicyId`\" pulumi-lang-java=\"`ingressPolicyId`\">`ingress_policy_id`</span> of an existing firewall group.\n","type":"string"},"name":{"description":"A name for the firewall group. Changing this\nupdates the <span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span> of an existing firewall group.\n","type":"string"},"ports":{"description":"Port(s) to associate this firewall group instance\nwith. Must be a list of strings. Changing this updates the associated routers\nof an existing firewall group.\n","items":{"type":"string"},"type":"array"},"region":{"type":"string"},"tenantId":{"description":"The owner of the floating IP. Required if admin wants\nto create a firewall group for another tenant. Changing this creates a new\nfirewall group.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FFwFirewallGroupV2Timeouts:FwFirewallGroupV2Timeouts"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options.\n","type":"object"}},"type":"object"},"type":"object"},"opentelekomcloud:index/fwPolicyV2:FwPolicyV2":{"description":"Up-to-date reference of API arguments for VPC firewall policy you can get at\n[documentation portal](https://docs.otc.t-systems.com/virtual-private-cloud/api-ref/native_openstack_neutron_apis_v2.0/firewall)\n\nManages a v2 firewall policy resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst rule1 = new opentelekomcloud.FwRuleV2(\"rule_1\", {\n    name: \"my-rule-1\",\n    description: \"drop TELNET traffic\",\n    action: \"deny\",\n    protocol: \"tcp\",\n    destinationPort: \"23\",\n    enabled: true,\n});\nconst rule2 = new opentelekomcloud.FwRuleV2(\"rule_2\", {\n    name: \"my-rule-2\",\n    description: \"drop NTP traffic\",\n    action: \"deny\",\n    protocol: \"udp\",\n    destinationPort: \"123\",\n    enabled: false,\n});\nconst policy1 = new opentelekomcloud.FwPolicyV2(\"policy_1\", {\n    name: \"my-policy\",\n    rules: [\n        rule1.fwRuleV2Id,\n        rule2.fwRuleV2Id,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nrule1 = opentelekomcloud.FwRuleV2(\"rule_1\",\n    name=\"my-rule-1\",\n    description=\"drop TELNET traffic\",\n    action=\"deny\",\n    protocol=\"tcp\",\n    destination_port=\"23\",\n    enabled=True)\nrule2 = opentelekomcloud.FwRuleV2(\"rule_2\",\n    name=\"my-rule-2\",\n    description=\"drop NTP traffic\",\n    action=\"deny\",\n    protocol=\"udp\",\n    destination_port=\"123\",\n    enabled=False)\npolicy1 = opentelekomcloud.FwPolicyV2(\"policy_1\",\n    name=\"my-policy\",\n    rules=[\n        rule1.fw_rule_v2_id,\n        rule2.fw_rule_v2_id,\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var rule1 = new Opentelekomcloud.FwRuleV2(\"rule_1\", new()\n    {\n        Name = \"my-rule-1\",\n        Description = \"drop TELNET traffic\",\n        Action = \"deny\",\n        Protocol = \"tcp\",\n        DestinationPort = \"23\",\n        Enabled = true,\n    });\n\n    var rule2 = new Opentelekomcloud.FwRuleV2(\"rule_2\", new()\n    {\n        Name = \"my-rule-2\",\n        Description = \"drop NTP traffic\",\n        Action = \"deny\",\n        Protocol = \"udp\",\n        DestinationPort = \"123\",\n        Enabled = false,\n    });\n\n    var policy1 = new Opentelekomcloud.FwPolicyV2(\"policy_1\", new()\n    {\n        Name = \"my-policy\",\n        Rules = new[]\n        {\n            rule1.FwRuleV2Id,\n            rule2.FwRuleV2Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trule1, err := opentelekomcloud.NewFwRuleV2(ctx, \"rule_1\", &opentelekomcloud.FwRuleV2Args{\n\t\t\tName:            pulumi.String(\"my-rule-1\"),\n\t\t\tDescription:     pulumi.String(\"drop TELNET traffic\"),\n\t\t\tAction:          pulumi.String(\"deny\"),\n\t\t\tProtocol:        pulumi.String(\"tcp\"),\n\t\t\tDestinationPort: pulumi.String(\"23\"),\n\t\t\tEnabled:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trule2, err := opentelekomcloud.NewFwRuleV2(ctx, \"rule_2\", &opentelekomcloud.FwRuleV2Args{\n\t\t\tName:            pulumi.String(\"my-rule-2\"),\n\t\t\tDescription:     pulumi.String(\"drop NTP traffic\"),\n\t\t\tAction:          pulumi.String(\"deny\"),\n\t\t\tProtocol:        pulumi.String(\"udp\"),\n\t\t\tDestinationPort: pulumi.String(\"123\"),\n\t\t\tEnabled:         pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewFwPolicyV2(ctx, \"policy_1\", &opentelekomcloud.FwPolicyV2Args{\n\t\t\tName: pulumi.String(\"my-policy\"),\n\t\t\tRules: pulumi.StringArray{\n\t\t\t\trule1.FwRuleV2Id,\n\t\t\t\trule2.FwRuleV2Id,\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.opentelekomcloud.FwRuleV2;\nimport com.pulumi.opentelekomcloud.FwRuleV2Args;\nimport com.pulumi.opentelekomcloud.FwPolicyV2;\nimport com.pulumi.opentelekomcloud.FwPolicyV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var rule1 = new FwRuleV2(\"rule1\", FwRuleV2Args.builder()\n            .name(\"my-rule-1\")\n            .description(\"drop TELNET traffic\")\n            .action(\"deny\")\n            .protocol(\"tcp\")\n            .destinationPort(\"23\")\n            .enabled(true)\n            .build());\n\n        var rule2 = new FwRuleV2(\"rule2\", FwRuleV2Args.builder()\n            .name(\"my-rule-2\")\n            .description(\"drop NTP traffic\")\n            .action(\"deny\")\n            .protocol(\"udp\")\n            .destinationPort(\"123\")\n            .enabled(false)\n            .build());\n\n        var policy1 = new FwPolicyV2(\"policy1\", FwPolicyV2Args.builder()\n            .name(\"my-policy\")\n            .rules(            \n                rule1.fwRuleV2Id(),\n                rule2.fwRuleV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  rule1:\n    type: opentelekomcloud:FwRuleV2\n    name: rule_1\n    properties:\n      name: my-rule-1\n      description: drop TELNET traffic\n      action: deny\n      protocol: tcp\n      destinationPort: '23'\n      enabled: 'true'\n  rule2:\n    type: opentelekomcloud:FwRuleV2\n    name: rule_2\n    properties:\n      name: my-rule-2\n      description: drop NTP traffic\n      action: deny\n      protocol: udp\n      destinationPort: '123'\n      enabled: 'false'\n  policy1:\n    type: opentelekomcloud:FwPolicyV2\n    name: policy_1\n    properties:\n      name: my-policy\n      rules:\n        - ${rule1.fwRuleV2Id}\n        - ${rule2.fwRuleV2Id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nFirewall Policies can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/fwPolicyV2:FwPolicyV2 policy_1 07f422e6-c596-474b-8b94-fe2c12506ce0\n```\n\n","inputProperties":{"audited":{"description":"Audit status of the firewall policy\n(must be \"true\" or \"false\" if provided - defaults to \"false\").\nThis status is set to \"false\" whenever the firewall policy or any of its\nrules are changed. Changing this updates the <span pulumi-lang-nodejs=\"`audited`\" pulumi-lang-dotnet=\"`Audited`\" pulumi-lang-go=\"`audited`\" pulumi-lang-python=\"`audited`\" pulumi-lang-yaml=\"`audited`\" pulumi-lang-java=\"`audited`\">`audited`</span> status of an existing\nfirewall policy.\n","type":"boolean"},"description":{"description":"A description for the firewall policy. Changing\nthis updates the <span pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\">`description`</span> of an existing firewall policy.\n","type":"string"},"fwPolicyV2Id":{"type":"string"},"name":{"description":"A name for the firewall policy. Changing this\nupdates the <span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span> of an existing firewall policy.\n","type":"string"},"region":{"type":"string"},"rules":{"description":"An array of one or more firewall rules that comprise\nthe policy. Changing this results in adding/removing rules from the\nexisting firewall policy.\n","items":{"type":"string"},"type":"array"},"shared":{"description":"Sharing status of the firewall policy (must be \"true\"\nor \"false\" if provided). If this is \"true\" the policy is visible to, and\ncan be used in, firewalls in other tenants. Changing this updates the\n<span pulumi-lang-nodejs=\"`shared`\" pulumi-lang-dotnet=\"`Shared`\" pulumi-lang-go=\"`shared`\" pulumi-lang-python=\"`shared`\" pulumi-lang-yaml=\"`shared`\" pulumi-lang-java=\"`shared`\">`shared`</span> status of an existing firewall policy. Only administrative users\ncan specify if the policy should be shared.\n","type":"boolean"},"tenantId":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FFwPolicyV2Timeouts:FwPolicyV2Timeouts"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options.\n","type":"object"}},"properties":{"audited":{"description":"Audit status of the firewall policy\n(must be \"true\" or \"false\" if provided - defaults to \"false\").\nThis status is set to \"false\" whenever the firewall policy or any of its\nrules are changed. Changing this updates the <span pulumi-lang-nodejs=\"`audited`\" pulumi-lang-dotnet=\"`Audited`\" pulumi-lang-go=\"`audited`\" pulumi-lang-python=\"`audited`\" pulumi-lang-yaml=\"`audited`\" pulumi-lang-java=\"`audited`\">`audited`</span> status of an existing\nfirewall policy.\n","type":"boolean"},"description":{"description":"A description for the firewall policy. Changing\nthis updates the <span pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\">`description`</span> of an existing firewall policy.\n","type":"string"},"fwPolicyV2Id":{"type":"string"},"name":{"description":"A name for the firewall policy. Changing this\nupdates the <span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span> of an existing firewall policy.\n","type":"string"},"region":{"type":"string"},"rules":{"description":"An array of one or more firewall rules that comprise\nthe policy. Changing this results in adding/removing rules from the\nexisting firewall policy.\n","items":{"type":"string"},"type":"array"},"shared":{"description":"Sharing status of the firewall policy (must be \"true\"\nor \"false\" if provided). If this is \"true\" the policy is visible to, and\ncan be used in, firewalls in other tenants. Changing this updates the\n<span pulumi-lang-nodejs=\"`shared`\" pulumi-lang-dotnet=\"`Shared`\" pulumi-lang-go=\"`shared`\" pulumi-lang-python=\"`shared`\" pulumi-lang-yaml=\"`shared`\" pulumi-lang-java=\"`shared`\">`shared`</span> status of an existing firewall policy. Only administrative users\ncan specify if the policy should be shared.\n","type":"boolean"},"tenantId":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FFwPolicyV2Timeouts:FwPolicyV2Timeouts"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options.\n","type":"object"}},"required":["fwPolicyV2Id","name","region","tenantId"],"stateInputs":{"description":"Input properties used for looking up and filtering FwPolicyV2 resources.\n","properties":{"audited":{"description":"Audit status of the firewall policy\n(must be \"true\" or \"false\" if provided - defaults to \"false\").\nThis status is set to \"false\" whenever the firewall policy or any of its\nrules are changed. Changing this updates the <span pulumi-lang-nodejs=\"`audited`\" pulumi-lang-dotnet=\"`Audited`\" pulumi-lang-go=\"`audited`\" pulumi-lang-python=\"`audited`\" pulumi-lang-yaml=\"`audited`\" pulumi-lang-java=\"`audited`\">`audited`</span> status of an existing\nfirewall policy.\n","type":"boolean"},"description":{"description":"A description for the firewall policy. Changing\nthis updates the <span pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\">`description`</span> of an existing firewall policy.\n","type":"string"},"fwPolicyV2Id":{"type":"string"},"name":{"description":"A name for the firewall policy. Changing this\nupdates the <span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span> of an existing firewall policy.\n","type":"string"},"region":{"type":"string"},"rules":{"description":"An array of one or more firewall rules that comprise\nthe policy. Changing this results in adding/removing rules from the\nexisting firewall policy.\n","items":{"type":"string"},"type":"array"},"shared":{"description":"Sharing status of the firewall policy (must be \"true\"\nor \"false\" if provided). If this is \"true\" the policy is visible to, and\ncan be used in, firewalls in other tenants. Changing this updates the\n<span pulumi-lang-nodejs=\"`shared`\" pulumi-lang-dotnet=\"`Shared`\" pulumi-lang-go=\"`shared`\" pulumi-lang-python=\"`shared`\" pulumi-lang-yaml=\"`shared`\" pulumi-lang-java=\"`shared`\">`shared`</span> status of an existing firewall policy. Only administrative users\ncan specify if the policy should be shared.\n","type":"boolean"},"tenantId":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FFwPolicyV2Timeouts:FwPolicyV2Timeouts"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options.\n","type":"object"}},"type":"object"},"type":"object"},"opentelekomcloud:index/fwRuleV2:FwRuleV2":{"description":"Up-to-date reference of API arguments for VPC firewall rule you can get at\n[documentation portal](https://docs.otc.t-systems.com/virtual-private-cloud/api-ref/native_openstack_neutron_apis_v2.0/firewall)\n\nManages a v2 firewall rule resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst rule1 = new opentelekomcloud.FwRuleV2(\"rule_1\", {\n    name: \"my_rule\",\n    description: \"drop TELNET traffic\",\n    action: \"deny\",\n    protocol: \"tcp\",\n    destinationPort: \"23\",\n    enabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nrule1 = opentelekomcloud.FwRuleV2(\"rule_1\",\n    name=\"my_rule\",\n    description=\"drop TELNET traffic\",\n    action=\"deny\",\n    protocol=\"tcp\",\n    destination_port=\"23\",\n    enabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var rule1 = new Opentelekomcloud.FwRuleV2(\"rule_1\", new()\n    {\n        Name = \"my_rule\",\n        Description = \"drop TELNET traffic\",\n        Action = \"deny\",\n        Protocol = \"tcp\",\n        DestinationPort = \"23\",\n        Enabled = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewFwRuleV2(ctx, \"rule_1\", &opentelekomcloud.FwRuleV2Args{\n\t\t\tName:            pulumi.String(\"my_rule\"),\n\t\t\tDescription:     pulumi.String(\"drop TELNET traffic\"),\n\t\t\tAction:          pulumi.String(\"deny\"),\n\t\t\tProtocol:        pulumi.String(\"tcp\"),\n\t\t\tDestinationPort: pulumi.String(\"23\"),\n\t\t\tEnabled:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.FwRuleV2;\nimport com.pulumi.opentelekomcloud.FwRuleV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var rule1 = new FwRuleV2(\"rule1\", FwRuleV2Args.builder()\n            .name(\"my_rule\")\n            .description(\"drop TELNET traffic\")\n            .action(\"deny\")\n            .protocol(\"tcp\")\n            .destinationPort(\"23\")\n            .enabled(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  rule1:\n    type: opentelekomcloud:FwRuleV2\n    name: rule_1\n    properties:\n      name: my_rule\n      description: drop TELNET traffic\n      action: deny\n      protocol: tcp\n      destinationPort: '23'\n      enabled: 'true'\n```\n<!--End PulumiCodeChooser -->\n\n## Example Ipv6 Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst rule1 = new opentelekomcloud.FwRuleV2(\"rule_1\", {\n    name: \"rule_1\",\n    description: \"Ipv6 deny\",\n    protocol: \"tcp\",\n    ipVersion: 6,\n    enabled: true,\n    action: \"deny\",\n    destinationIpAddress: \"2001:db8::\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nrule1 = opentelekomcloud.FwRuleV2(\"rule_1\",\n    name=\"rule_1\",\n    description=\"Ipv6 deny\",\n    protocol=\"tcp\",\n    ip_version=6,\n    enabled=True,\n    action=\"deny\",\n    destination_ip_address=\"2001:db8::\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var rule1 = new Opentelekomcloud.FwRuleV2(\"rule_1\", new()\n    {\n        Name = \"rule_1\",\n        Description = \"Ipv6 deny\",\n        Protocol = \"tcp\",\n        IpVersion = 6,\n        Enabled = true,\n        Action = \"deny\",\n        DestinationIpAddress = \"2001:db8::\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewFwRuleV2(ctx, \"rule_1\", &opentelekomcloud.FwRuleV2Args{\n\t\t\tName:                 pulumi.String(\"rule_1\"),\n\t\t\tDescription:          pulumi.String(\"Ipv6 deny\"),\n\t\t\tProtocol:             pulumi.String(\"tcp\"),\n\t\t\tIpVersion:            pulumi.Float64(6),\n\t\t\tEnabled:              pulumi.Bool(true),\n\t\t\tAction:               pulumi.String(\"deny\"),\n\t\t\tDestinationIpAddress: pulumi.String(\"2001:db8::\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.FwRuleV2;\nimport com.pulumi.opentelekomcloud.FwRuleV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var rule1 = new FwRuleV2(\"rule1\", FwRuleV2Args.builder()\n            .name(\"rule_1\")\n            .description(\"Ipv6 deny\")\n            .protocol(\"tcp\")\n            .ipVersion(6.0)\n            .enabled(true)\n            .action(\"deny\")\n            .destinationIpAddress(\"2001:db8::\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  rule1:\n    type: opentelekomcloud:FwRuleV2\n    name: rule_1\n    properties:\n      name: rule_1\n      description: Ipv6 deny\n      protocol: tcp\n      ipVersion: 6\n      enabled: true\n      action: deny\n      destinationIpAddress: '2001:db8::'\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nFirewall Rules can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/fwRuleV2:FwRuleV2 rule_1 8dbc0c28-e49c-463f-b712-5c5d1bbac327\n```\n\n","inputProperties":{"action":{"description":"Action to be taken ( must be \"allow\" or \"deny\") when the\nfirewall rule matches. Changing this updates the <span pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\">`action`</span> of an existing\nfirewall rule.\n","type":"string"},"description":{"description":"A description for the firewall rule. Changing this\nupdates the <span pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\">`description`</span> of an existing firewall rule.\n","type":"string"},"destinationIpAddress":{"description":"The destination IP address on which the\nfirewall rule operates. Changing this updates the <span pulumi-lang-nodejs=\"`destinationIpAddress`\" pulumi-lang-dotnet=\"`DestinationIpAddress`\" pulumi-lang-go=\"`destinationIpAddress`\" pulumi-lang-python=\"`destination_ip_address`\" pulumi-lang-yaml=\"`destinationIpAddress`\" pulumi-lang-java=\"`destinationIpAddress`\">`destination_ip_address`</span>\nof an existing firewall rule.\n","type":"string"},"destinationPort":{"description":"The destination port on which the firewall\nrule operates. Changing this updates the <span pulumi-lang-nodejs=\"`destinationPort`\" pulumi-lang-dotnet=\"`DestinationPort`\" pulumi-lang-go=\"`destinationPort`\" pulumi-lang-python=\"`destination_port`\" pulumi-lang-yaml=\"`destinationPort`\" pulumi-lang-java=\"`destinationPort`\">`destination_port`</span> of an existing\nfirewall rule.\n","type":"string"},"enabled":{"description":"Enabled status for the firewall rule (must be \"true\"\nor \"false\" if provided - defaults to \"true\"). Changing this updates the\n<span pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\">`enabled`</span> status of an existing firewall rule.\n","type":"boolean"},"fwRuleV2Id":{"type":"string"},"ipVersion":{"description":"IP version, either 4 (default) or 6. Changing this\nupdates the <span pulumi-lang-nodejs=\"`ipVersion`\" pulumi-lang-dotnet=\"`IpVersion`\" pulumi-lang-go=\"`ipVersion`\" pulumi-lang-python=\"`ip_version`\" pulumi-lang-yaml=\"`ipVersion`\" pulumi-lang-java=\"`ipVersion`\">`ip_version`</span> of an existing firewall rule.\n","type":"number"},"name":{"description":"A unique name for the firewall rule. Changing this\nupdates the <span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span> of an existing firewall rule.\n","type":"string"},"protocol":{"description":"The protocol type on which the firewall rule operates.\nValid values are: <span pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\">`tcp`</span>, <span pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\">`udp`</span>, <span pulumi-lang-nodejs=\"`icmp`\" pulumi-lang-dotnet=\"`Icmp`\" pulumi-lang-go=\"`icmp`\" pulumi-lang-python=\"`icmp`\" pulumi-lang-yaml=\"`icmp`\" pulumi-lang-java=\"`icmp`\">`icmp`</span>, and <span pulumi-lang-nodejs=\"`any`\" pulumi-lang-dotnet=\"`Any`\" pulumi-lang-go=\"`any`\" pulumi-lang-python=\"`any`\" pulumi-lang-yaml=\"`any`\" pulumi-lang-java=\"`any`\">`any`</span>. Changing this updates the\n<span pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\">`protocol`</span> of an existing firewall rule.\n","type":"string"},"region":{"type":"string"},"sourceIpAddress":{"description":"The source IP address on which the firewall\nrule operates. Changing this updates the <span pulumi-lang-nodejs=\"`sourceIpAddress`\" pulumi-lang-dotnet=\"`SourceIpAddress`\" pulumi-lang-go=\"`sourceIpAddress`\" pulumi-lang-python=\"`source_ip_address`\" pulumi-lang-yaml=\"`sourceIpAddress`\" pulumi-lang-java=\"`sourceIpAddress`\">`source_ip_address`</span> of an existing\nfirewall rule.\n","type":"string"},"sourcePort":{"description":"The source port on which the firewall\nrule operates. Changing this updates the <span pulumi-lang-nodejs=\"`sourcePort`\" pulumi-lang-dotnet=\"`SourcePort`\" pulumi-lang-go=\"`sourcePort`\" pulumi-lang-python=\"`source_port`\" pulumi-lang-yaml=\"`sourcePort`\" pulumi-lang-java=\"`sourcePort`\">`source_port`</span> of an existing\nfirewall rule.\n","type":"string"},"tenantId":{"description":"The owner of the firewall rule. Required if admin\nwants to create a firewall rule for another tenant. Changing this creates a\nnew firewall rule.\n","type":"string"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options.\n","type":"object"}},"properties":{"action":{"description":"Action to be taken ( must be \"allow\" or \"deny\") when the\nfirewall rule matches. Changing this updates the <span pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\">`action`</span> of an existing\nfirewall rule.\n","type":"string"},"description":{"description":"A description for the firewall rule. Changing this\nupdates the <span pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\">`description`</span> of an existing firewall rule.\n","type":"string"},"destinationIpAddress":{"description":"The destination IP address on which the\nfirewall rule operates. Changing this updates the <span pulumi-lang-nodejs=\"`destinationIpAddress`\" pulumi-lang-dotnet=\"`DestinationIpAddress`\" pulumi-lang-go=\"`destinationIpAddress`\" pulumi-lang-python=\"`destination_ip_address`\" pulumi-lang-yaml=\"`destinationIpAddress`\" pulumi-lang-java=\"`destinationIpAddress`\">`destination_ip_address`</span>\nof an existing firewall rule.\n","type":"string"},"destinationPort":{"description":"The destination port on which the firewall\nrule operates. Changing this updates the <span pulumi-lang-nodejs=\"`destinationPort`\" pulumi-lang-dotnet=\"`DestinationPort`\" pulumi-lang-go=\"`destinationPort`\" pulumi-lang-python=\"`destination_port`\" pulumi-lang-yaml=\"`destinationPort`\" pulumi-lang-java=\"`destinationPort`\">`destination_port`</span> of an existing\nfirewall rule.\n","type":"string"},"enabled":{"description":"Enabled status for the firewall rule (must be \"true\"\nor \"false\" if provided - defaults to \"true\"). Changing this updates the\n<span pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\">`enabled`</span> status of an existing firewall rule.\n","type":"boolean"},"fwRuleV2Id":{"type":"string"},"ipVersion":{"description":"IP version, either 4 (default) or 6. Changing this\nupdates the <span pulumi-lang-nodejs=\"`ipVersion`\" pulumi-lang-dotnet=\"`IpVersion`\" pulumi-lang-go=\"`ipVersion`\" pulumi-lang-python=\"`ip_version`\" pulumi-lang-yaml=\"`ipVersion`\" pulumi-lang-java=\"`ipVersion`\">`ip_version`</span> of an existing firewall rule.\n","type":"number"},"name":{"description":"A unique name for the firewall rule. Changing this\nupdates the <span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span> of an existing firewall rule.\n","type":"string"},"protocol":{"description":"The protocol type on which the firewall rule operates.\nValid values are: <span pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\">`tcp`</span>, <span pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\">`udp`</span>, <span pulumi-lang-nodejs=\"`icmp`\" pulumi-lang-dotnet=\"`Icmp`\" pulumi-lang-go=\"`icmp`\" pulumi-lang-python=\"`icmp`\" pulumi-lang-yaml=\"`icmp`\" pulumi-lang-java=\"`icmp`\">`icmp`</span>, and <span pulumi-lang-nodejs=\"`any`\" pulumi-lang-dotnet=\"`Any`\" pulumi-lang-go=\"`any`\" pulumi-lang-python=\"`any`\" pulumi-lang-yaml=\"`any`\" pulumi-lang-java=\"`any`\">`any`</span>. Changing this updates the\n<span pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\">`protocol`</span> of an existing firewall rule.\n","type":"string"},"region":{"type":"string"},"sourceIpAddress":{"description":"The source IP address on which the firewall\nrule operates. Changing this updates the <span pulumi-lang-nodejs=\"`sourceIpAddress`\" pulumi-lang-dotnet=\"`SourceIpAddress`\" pulumi-lang-go=\"`sourceIpAddress`\" pulumi-lang-python=\"`source_ip_address`\" pulumi-lang-yaml=\"`sourceIpAddress`\" pulumi-lang-java=\"`sourceIpAddress`\">`source_ip_address`</span> of an existing\nfirewall rule.\n","type":"string"},"sourcePort":{"description":"The source port on which the firewall\nrule operates. Changing this updates the <span pulumi-lang-nodejs=\"`sourcePort`\" pulumi-lang-dotnet=\"`SourcePort`\" pulumi-lang-go=\"`sourcePort`\" pulumi-lang-python=\"`source_port`\" pulumi-lang-yaml=\"`sourcePort`\" pulumi-lang-java=\"`sourcePort`\">`source_port`</span> of an existing\nfirewall rule.\n","type":"string"},"tenantId":{"description":"The owner of the firewall rule. Required if admin\nwants to create a firewall rule for another tenant. Changing this creates a\nnew firewall rule.\n","type":"string"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options.\n","type":"object"}},"required":["action","fwRuleV2Id","name","protocol","region"],"requiredInputs":["action","protocol"],"stateInputs":{"description":"Input properties used for looking up and filtering FwRuleV2 resources.\n","properties":{"action":{"description":"Action to be taken ( must be \"allow\" or \"deny\") when the\nfirewall rule matches. Changing this updates the <span pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\">`action`</span> of an existing\nfirewall rule.\n","type":"string"},"description":{"description":"A description for the firewall rule. Changing this\nupdates the <span pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\">`description`</span> of an existing firewall rule.\n","type":"string"},"destinationIpAddress":{"description":"The destination IP address on which the\nfirewall rule operates. Changing this updates the <span pulumi-lang-nodejs=\"`destinationIpAddress`\" pulumi-lang-dotnet=\"`DestinationIpAddress`\" pulumi-lang-go=\"`destinationIpAddress`\" pulumi-lang-python=\"`destination_ip_address`\" pulumi-lang-yaml=\"`destinationIpAddress`\" pulumi-lang-java=\"`destinationIpAddress`\">`destination_ip_address`</span>\nof an existing firewall rule.\n","type":"string"},"destinationPort":{"description":"The destination port on which the firewall\nrule operates. Changing this updates the <span pulumi-lang-nodejs=\"`destinationPort`\" pulumi-lang-dotnet=\"`DestinationPort`\" pulumi-lang-go=\"`destinationPort`\" pulumi-lang-python=\"`destination_port`\" pulumi-lang-yaml=\"`destinationPort`\" pulumi-lang-java=\"`destinationPort`\">`destination_port`</span> of an existing\nfirewall rule.\n","type":"string"},"enabled":{"description":"Enabled status for the firewall rule (must be \"true\"\nor \"false\" if provided - defaults to \"true\"). Changing this updates the\n<span pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\">`enabled`</span> status of an existing firewall rule.\n","type":"boolean"},"fwRuleV2Id":{"type":"string"},"ipVersion":{"description":"IP version, either 4 (default) or 6. Changing this\nupdates the <span pulumi-lang-nodejs=\"`ipVersion`\" pulumi-lang-dotnet=\"`IpVersion`\" pulumi-lang-go=\"`ipVersion`\" pulumi-lang-python=\"`ip_version`\" pulumi-lang-yaml=\"`ipVersion`\" pulumi-lang-java=\"`ipVersion`\">`ip_version`</span> of an existing firewall rule.\n","type":"number"},"name":{"description":"A unique name for the firewall rule. Changing this\nupdates the <span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span> of an existing firewall rule.\n","type":"string"},"protocol":{"description":"The protocol type on which the firewall rule operates.\nValid values are: <span pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\">`tcp`</span>, <span pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\">`udp`</span>, <span pulumi-lang-nodejs=\"`icmp`\" pulumi-lang-dotnet=\"`Icmp`\" pulumi-lang-go=\"`icmp`\" pulumi-lang-python=\"`icmp`\" pulumi-lang-yaml=\"`icmp`\" pulumi-lang-java=\"`icmp`\">`icmp`</span>, and <span pulumi-lang-nodejs=\"`any`\" pulumi-lang-dotnet=\"`Any`\" pulumi-lang-go=\"`any`\" pulumi-lang-python=\"`any`\" pulumi-lang-yaml=\"`any`\" pulumi-lang-java=\"`any`\">`any`</span>. Changing this updates the\n<span pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\">`protocol`</span> of an existing firewall rule.\n","type":"string"},"region":{"type":"string"},"sourceIpAddress":{"description":"The source IP address on which the firewall\nrule operates. Changing this updates the <span pulumi-lang-nodejs=\"`sourceIpAddress`\" pulumi-lang-dotnet=\"`SourceIpAddress`\" pulumi-lang-go=\"`sourceIpAddress`\" pulumi-lang-python=\"`source_ip_address`\" pulumi-lang-yaml=\"`sourceIpAddress`\" pulumi-lang-java=\"`sourceIpAddress`\">`source_ip_address`</span> of an existing\nfirewall rule.\n","type":"string"},"sourcePort":{"description":"The source port on which the firewall\nrule operates. Changing this updates the <span pulumi-lang-nodejs=\"`sourcePort`\" pulumi-lang-dotnet=\"`SourcePort`\" pulumi-lang-go=\"`sourcePort`\" pulumi-lang-python=\"`source_port`\" pulumi-lang-yaml=\"`sourcePort`\" pulumi-lang-java=\"`sourcePort`\">`source_port`</span> of an existing\nfirewall rule.\n","type":"string"},"tenantId":{"description":"The owner of the firewall rule. Required if admin\nwants to create a firewall rule for another tenant. Changing this creates a\nnew firewall rule.\n","type":"string"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options.\n","type":"object"}},"type":"object"},"type":"object"},"opentelekomcloud:index/gaussdbMysqlInstanceV3:GaussdbMysqlInstanceV3":{"description":"Up-to-date reference of API arguments for GaussDB for MySql you can get at\n[documentation portal](https://docs.otc.t-systems.com/gaussdb-mysql/api-ref/apis_recommended/managing_db_instances/index.html#gaussdb-04-0003).\n\nGaussDB MySql instance management within OpenTelekomCloud.\n\n~>\nDeprecated, use <span pulumi-lang-nodejs=\"`opentelekomcloud.TaurusdbMysqlInstanceV3`\" pulumi-lang-dotnet=\"`opentelekomcloud.TaurusdbMysqlInstanceV3`\" pulumi-lang-go=\"`TaurusdbMysqlInstanceV3`\" pulumi-lang-python=\"`TaurusdbMysqlInstanceV3`\" pulumi-lang-yaml=\"`opentelekomcloud.TaurusdbMysqlInstanceV3`\" pulumi-lang-java=\"`opentelekomcloud.TaurusdbMysqlInstanceV3`\">`opentelekomcloud.TaurusdbMysqlInstanceV3`</span> resource instead.\n\n## Example Usage\n\n### Create a basic instance\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst instance = new opentelekomcloud.GaussdbMysqlInstanceV3(\"instance\", {\n    name: \"gaussdb_instance\",\n    vpcId: vpcId,\n    subnetId: subnetId,\n    securityGroupId: secgroupId,\n    flavor: \"gaussdb.mysql.xlarge.x86.8\",\n    password: password,\n    availabilityZoneMode: \"multi\",\n    masterAvailabilityZone: \"eu-de-01\",\n    readReplicas: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ninstance = opentelekomcloud.GaussdbMysqlInstanceV3(\"instance\",\n    name=\"gaussdb_instance\",\n    vpc_id=vpc_id,\n    subnet_id=subnet_id,\n    security_group_id=secgroup_id,\n    flavor=\"gaussdb.mysql.xlarge.x86.8\",\n    password=password,\n    availability_zone_mode=\"multi\",\n    master_availability_zone=\"eu-de-01\",\n    read_replicas=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var instance = new Opentelekomcloud.GaussdbMysqlInstanceV3(\"instance\", new()\n    {\n        Name = \"gaussdb_instance\",\n        VpcId = vpcId,\n        SubnetId = subnetId,\n        SecurityGroupId = secgroupId,\n        Flavor = \"gaussdb.mysql.xlarge.x86.8\",\n        Password = password,\n        AvailabilityZoneMode = \"multi\",\n        MasterAvailabilityZone = \"eu-de-01\",\n        ReadReplicas = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewGaussdbMysqlInstanceV3(ctx, \"instance\", &opentelekomcloud.GaussdbMysqlInstanceV3Args{\n\t\t\tName:                   pulumi.String(\"gaussdb_instance\"),\n\t\t\tVpcId:                  pulumi.Any(vpcId),\n\t\t\tSubnetId:               pulumi.Any(subnetId),\n\t\t\tSecurityGroupId:        pulumi.Any(secgroupId),\n\t\t\tFlavor:                 pulumi.String(\"gaussdb.mysql.xlarge.x86.8\"),\n\t\t\tPassword:               pulumi.Any(password),\n\t\t\tAvailabilityZoneMode:   pulumi.String(\"multi\"),\n\t\t\tMasterAvailabilityZone: pulumi.String(\"eu-de-01\"),\n\t\t\tReadReplicas:           pulumi.Float64(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.GaussdbMysqlInstanceV3;\nimport com.pulumi.opentelekomcloud.GaussdbMysqlInstanceV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var instance = new GaussdbMysqlInstanceV3(\"instance\", GaussdbMysqlInstanceV3Args.builder()\n            .name(\"gaussdb_instance\")\n            .vpcId(vpcId)\n            .subnetId(subnetId)\n            .securityGroupId(secgroupId)\n            .flavor(\"gaussdb.mysql.xlarge.x86.8\")\n            .password(password)\n            .availabilityZoneMode(\"multi\")\n            .masterAvailabilityZone(\"eu-de-01\")\n            .readReplicas(1.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  instance:\n    type: opentelekomcloud:GaussdbMysqlInstanceV3\n    properties:\n      name: gaussdb_instance\n      vpcId: ${vpcId}\n      subnetId: ${subnetId}\n      securityGroupId: ${secgroupId}\n      flavor: gaussdb.mysql.xlarge.x86.8\n      password: ${password}\n      availabilityZoneMode: multi\n      masterAvailabilityZone: eu-de-01\n      readReplicas: 1\n```\n<!--End PulumiCodeChooser -->\n\n### Create an instance with backup strategy\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst instance = new opentelekomcloud.GaussdbMysqlInstanceV3(\"instance\", {\n    name: \"gaussdb_instance_1\",\n    password: password,\n    flavor: \"gaussdb.mysql.4xlarge.x86.4\",\n    vpcId: vpcId,\n    subnetId: subnetId,\n    securityGroupId: secgroupId,\n    backupStrategy: {\n        startTime: \"03:00-04:00\",\n        keepDays: \"7\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ninstance = opentelekomcloud.GaussdbMysqlInstanceV3(\"instance\",\n    name=\"gaussdb_instance_1\",\n    password=password,\n    flavor=\"gaussdb.mysql.4xlarge.x86.4\",\n    vpc_id=vpc_id,\n    subnet_id=subnet_id,\n    security_group_id=secgroup_id,\n    backup_strategy={\n        \"start_time\": \"03:00-04:00\",\n        \"keep_days\": \"7\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var instance = new Opentelekomcloud.GaussdbMysqlInstanceV3(\"instance\", new()\n    {\n        Name = \"gaussdb_instance_1\",\n        Password = password,\n        Flavor = \"gaussdb.mysql.4xlarge.x86.4\",\n        VpcId = vpcId,\n        SubnetId = subnetId,\n        SecurityGroupId = secgroupId,\n        BackupStrategy = new Opentelekomcloud.Inputs.GaussdbMysqlInstanceV3BackupStrategyArgs\n        {\n            StartTime = \"03:00-04:00\",\n            KeepDays = \"7\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewGaussdbMysqlInstanceV3(ctx, \"instance\", &opentelekomcloud.GaussdbMysqlInstanceV3Args{\n\t\t\tName:            pulumi.String(\"gaussdb_instance_1\"),\n\t\t\tPassword:        pulumi.Any(password),\n\t\t\tFlavor:          pulumi.String(\"gaussdb.mysql.4xlarge.x86.4\"),\n\t\t\tVpcId:           pulumi.Any(vpcId),\n\t\t\tSubnetId:        pulumi.Any(subnetId),\n\t\t\tSecurityGroupId: pulumi.Any(secgroupId),\n\t\t\tBackupStrategy: &opentelekomcloud.GaussdbMysqlInstanceV3BackupStrategyArgs{\n\t\t\t\tStartTime: pulumi.String(\"03:00-04:00\"),\n\t\t\t\tKeepDays:  pulumi.String(\"7\"),\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.opentelekomcloud.GaussdbMysqlInstanceV3;\nimport com.pulumi.opentelekomcloud.GaussdbMysqlInstanceV3Args;\nimport com.pulumi.opentelekomcloud.inputs.GaussdbMysqlInstanceV3BackupStrategyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var instance = new GaussdbMysqlInstanceV3(\"instance\", GaussdbMysqlInstanceV3Args.builder()\n            .name(\"gaussdb_instance_1\")\n            .password(password)\n            .flavor(\"gaussdb.mysql.4xlarge.x86.4\")\n            .vpcId(vpcId)\n            .subnetId(subnetId)\n            .securityGroupId(secgroupId)\n            .backupStrategy(GaussdbMysqlInstanceV3BackupStrategyArgs.builder()\n                .startTime(\"03:00-04:00\")\n                .keepDays(\"7\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  instance:\n    type: opentelekomcloud:GaussdbMysqlInstanceV3\n    properties:\n      name: gaussdb_instance_1\n      password: ${password}\n      flavor: gaussdb.mysql.4xlarge.x86.4\n      vpcId: ${vpcId}\n      subnetId: ${subnetId}\n      securityGroupId: ${secgroupId}\n      backupStrategy:\n        startTime: 03:00-04:00\n        keepDays: 7\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nGaussDB instance can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/gaussdbMysqlInstanceV3:GaussdbMysqlInstanceV3 instance_1 1a801c1e01e6458d8eed810912e29d0cin07\n```\n\nDue to the security reasons, `password` can not be imported. It can be ignored as shown below.\n\nhcl\n\nresource \"opentelekomcloud_gaussdb_mysql_instance_v3\" \"instance_1\" {\n\n  lifecycle {\n\n    ignore_changes = [\n\n      password,\n\n    ]\n\n  }\n\n}\n\n","inputProperties":{"availabilityZoneMode":{"description":"Specifies the availability zone mode: \"single\" or \"multi\".\nDefaults to \"single\". Changing this parameter will create a new resource.\n","type":"string"},"backupStrategy":{"$ref":"#/types/opentelekomcloud:index%2FGaussdbMysqlInstanceV3BackupStrategy:GaussdbMysqlInstanceV3BackupStrategy","description":"Specifies the advanced backup policy. Structure is documented below.\n"},"configurationId":{"description":"Specifies the configuration ID.\n","type":"string"},"configurationName":{"description":"Specifies the configuration name.\n","type":"string"},"datastore":{"$ref":"#/types/opentelekomcloud:index%2FGaussdbMysqlInstanceV3Datastore:GaussdbMysqlInstanceV3Datastore","description":"Specifies the database information. Structure is documented below.\n"},"dedicatedResourceId":{"description":"Specifies the dedicated resource ID. Changing this parameter\nwill create a new resource.\n","type":"string"},"dedicatedResourceName":{"description":"Specifies the dedicated resource name. Changing this parameter\nwill create a new resource.\n","type":"string"},"flavor":{"description":"Specifies the instance specifications.\n","type":"string"},"gaussdbMysqlInstanceV3Id":{"description":"Indicates the node ID.\n","type":"string"},"masterAvailabilityZone":{"description":"Specifies the availability zone where the master node\nresides. The parameter is required in multi availability zone mode. Changing this parameter will create a new\nresource.\n","type":"string"},"name":{"description":"Specifies the instance name, which can be the same as an existing instance name. The value\nmust be 4 to 64 characters in length and start with a letter. It is case-sensitive and can contain only letters,\ndigits, hyphens (-), and underscores (_).\n","type":"string"},"password":{"description":"Specifies the database password. The value must be 8 to 32 characters in length,\nincluding uppercase and lowercase letters, digits, and special characters, such as ~!@#%^*-_=+?\n","secret":true,"type":"string"},"readReplicas":{"description":"Specifies the count of read replicas. Defaults to 1.\n","type":"number"},"region":{"description":"The region in which to create the GaussDB mysql instance resource. If omitted,\nthe provider-level region will be used.\n","type":"string"},"securityGroupId":{"description":"Specifies the security group ID. Required if the selected subnet\ndoesn't enable network ACL.\n","type":"string"},"subnetId":{"description":"Specifies the network ID of a subnet.\n","type":"string"},"timeZone":{"description":"Specifies the time zone. Defaults to \"UTC+08:00\". Changing this parameter\nwill create a new resource.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FGaussdbMysqlInstanceV3Timeouts:GaussdbMysqlInstanceV3Timeouts"},"vpcId":{"description":"Specifies the VPC ID.\n","type":"string"}},"properties":{"alias":{"description":"Indicates the alias of the instance.\n","type":"string"},"availabilityZoneMode":{"description":"Specifies the availability zone mode: \"single\" or \"multi\".\nDefaults to \"single\". Changing this parameter will create a new resource.\n","type":"string"},"backupStrategy":{"$ref":"#/types/opentelekomcloud:index%2FGaussdbMysqlInstanceV3BackupStrategy:GaussdbMysqlInstanceV3BackupStrategy","description":"Specifies the advanced backup policy. Structure is documented below.\n"},"chargingMode":{"description":"Indicates the charging mode of the instance.\n","type":"string"},"configurationId":{"description":"Specifies the configuration ID.\n","type":"string"},"configurationName":{"description":"Specifies the configuration name.\n","type":"string"},"created":{"description":"Indicates the created time of the DB node.\n","type":"string"},"datastore":{"$ref":"#/types/opentelekomcloud:index%2FGaussdbMysqlInstanceV3Datastore:GaussdbMysqlInstanceV3Datastore","description":"Specifies the database information. Structure is documented below.\n"},"dbUserName":{"description":"Indicates the default username.\n","type":"string"},"dedicatedResourceId":{"description":"Specifies the dedicated resource ID. Changing this parameter\nwill create a new resource.\n","type":"string"},"dedicatedResourceName":{"description":"Specifies the dedicated resource name. Changing this parameter\nwill create a new resource.\n","type":"string"},"flavor":{"description":"Specifies the instance specifications.\n","type":"string"},"gaussdbMysqlInstanceV3Id":{"description":"Indicates the node ID.\n","type":"string"},"masterAvailabilityZone":{"description":"Specifies the availability zone where the master node\nresides. The parameter is required in multi availability zone mode. Changing this parameter will create a new\nresource.\n","type":"string"},"mode":{"description":"Indicates the instance mode.\n","type":"string"},"name":{"description":"Specifies the instance name, which can be the same as an existing instance name. The value\nmust be 4 to 64 characters in length and start with a letter. It is case-sensitive and can contain only letters,\ndigits, hyphens (-), and underscores (_).\n","type":"string"},"nodeCount":{"description":"Indicates the amount on nodes of the DB instance.\n","type":"number"},"nodes":{"description":"Indicates the instance nodes information. Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FGaussdbMysqlInstanceV3Node:GaussdbMysqlInstanceV3Node"},"type":"array"},"password":{"description":"Specifies the database password. The value must be 8 to 32 characters in length,\nincluding uppercase and lowercase letters, digits, and special characters, such as ~!@#%^*-_=+?\n","secret":true,"type":"string"},"port":{"description":"Indicates the database port.\n","type":"number"},"privateWriteIps":{"description":"Indicates the private IP address of the DB instance.\n","items":{"type":"string"},"type":"array"},"projectId":{"description":"Indicates the id of the project.\n","type":"string"},"publicIp":{"description":"Indicates the public IP address of the DB instance.\n","type":"string"},"readReplicas":{"description":"Specifies the count of read replicas. Defaults to 1.\n","type":"number"},"region":{"description":"The region in which to create the GaussDB mysql instance resource. If omitted,\nthe provider-level region will be used.\n","type":"string"},"securityGroupId":{"description":"Specifies the security group ID. Required if the selected subnet\ndoesn't enable network ACL.\n","type":"string"},"status":{"description":"Indicates the node status.\n","type":"string"},"subnetId":{"description":"Specifies the network ID of a subnet.\n","type":"string"},"timeZone":{"description":"Specifies the time zone. Defaults to \"UTC+08:00\". Changing this parameter\nwill create a new resource.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FGaussdbMysqlInstanceV3Timeouts:GaussdbMysqlInstanceV3Timeouts"},"updated":{"description":"Indicates the updated time of the DB node.\n","type":"string"},"vpcId":{"description":"Specifies the VPC ID.\n","type":"string"}},"required":["alias","chargingMode","configurationId","configurationName","created","dbUserName","dedicatedResourceId","dedicatedResourceName","flavor","gaussdbMysqlInstanceV3Id","masterAvailabilityZone","mode","name","nodeCount","nodes","password","port","privateWriteIps","projectId","publicIp","region","status","subnetId","updated","vpcId"],"requiredInputs":["flavor","password","subnetId","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering GaussdbMysqlInstanceV3 resources.\n","properties":{"alias":{"description":"Indicates the alias of the instance.\n","type":"string"},"availabilityZoneMode":{"description":"Specifies the availability zone mode: \"single\" or \"multi\".\nDefaults to \"single\". Changing this parameter will create a new resource.\n","type":"string"},"backupStrategy":{"$ref":"#/types/opentelekomcloud:index%2FGaussdbMysqlInstanceV3BackupStrategy:GaussdbMysqlInstanceV3BackupStrategy","description":"Specifies the advanced backup policy. Structure is documented below.\n"},"chargingMode":{"description":"Indicates the charging mode of the instance.\n","type":"string"},"configurationId":{"description":"Specifies the configuration ID.\n","type":"string"},"configurationName":{"description":"Specifies the configuration name.\n","type":"string"},"created":{"description":"Indicates the created time of the DB node.\n","type":"string"},"datastore":{"$ref":"#/types/opentelekomcloud:index%2FGaussdbMysqlInstanceV3Datastore:GaussdbMysqlInstanceV3Datastore","description":"Specifies the database information. Structure is documented below.\n"},"dbUserName":{"description":"Indicates the default username.\n","type":"string"},"dedicatedResourceId":{"description":"Specifies the dedicated resource ID. Changing this parameter\nwill create a new resource.\n","type":"string"},"dedicatedResourceName":{"description":"Specifies the dedicated resource name. Changing this parameter\nwill create a new resource.\n","type":"string"},"flavor":{"description":"Specifies the instance specifications.\n","type":"string"},"gaussdbMysqlInstanceV3Id":{"description":"Indicates the node ID.\n","type":"string"},"masterAvailabilityZone":{"description":"Specifies the availability zone where the master node\nresides. The parameter is required in multi availability zone mode. Changing this parameter will create a new\nresource.\n","type":"string"},"mode":{"description":"Indicates the instance mode.\n","type":"string"},"name":{"description":"Specifies the instance name, which can be the same as an existing instance name. The value\nmust be 4 to 64 characters in length and start with a letter. It is case-sensitive and can contain only letters,\ndigits, hyphens (-), and underscores (_).\n","type":"string"},"nodeCount":{"description":"Indicates the amount on nodes of the DB instance.\n","type":"number"},"nodes":{"description":"Indicates the instance nodes information. Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FGaussdbMysqlInstanceV3Node:GaussdbMysqlInstanceV3Node"},"type":"array"},"password":{"description":"Specifies the database password. The value must be 8 to 32 characters in length,\nincluding uppercase and lowercase letters, digits, and special characters, such as ~!@#%^*-_=+?\n","secret":true,"type":"string"},"port":{"description":"Indicates the database port.\n","type":"number"},"privateWriteIps":{"description":"Indicates the private IP address of the DB instance.\n","items":{"type":"string"},"type":"array"},"projectId":{"description":"Indicates the id of the project.\n","type":"string"},"publicIp":{"description":"Indicates the public IP address of the DB instance.\n","type":"string"},"readReplicas":{"description":"Specifies the count of read replicas. Defaults to 1.\n","type":"number"},"region":{"description":"The region in which to create the GaussDB mysql instance resource. If omitted,\nthe provider-level region will be used.\n","type":"string"},"securityGroupId":{"description":"Specifies the security group ID. Required if the selected subnet\ndoesn't enable network ACL.\n","type":"string"},"status":{"description":"Indicates the node status.\n","type":"string"},"subnetId":{"description":"Specifies the network ID of a subnet.\n","type":"string"},"timeZone":{"description":"Specifies the time zone. Defaults to \"UTC+08:00\". Changing this parameter\nwill create a new resource.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FGaussdbMysqlInstanceV3Timeouts:GaussdbMysqlInstanceV3Timeouts"},"updated":{"description":"Indicates the updated time of the DB node.\n","type":"string"},"vpcId":{"description":"Specifies the VPC ID.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/geminiInstanceV3:GeminiInstanceV3":{"description":"Up-to-date reference of API arguments for GeminiDB you can get at\n[documentation portal](https://docs.otc.t-systems.com/geminidb/api-ref/apis_v3/instances/index.html).\n\nGeminiDB instance management within OpenTelekomCloud.\n\n## Example Usage\n\n### Create a basic instance with tags\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst instance1 = new opentelekomcloud.GeminiInstanceV3(\"instance_1\", {\n    name: \"gaussdb_cassandra_instance_1\",\n    password: password,\n    flavor: \"geminidb.cassandra.xlarge.8\",\n    volumeSize: 100,\n    vpcId: vpcId,\n    subnetId: subnetId,\n    securityGroupId: secgroupId,\n    availabilityZone: availabilityZone,\n    tags: {\n        foo: \"bar\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ninstance1 = opentelekomcloud.GeminiInstanceV3(\"instance_1\",\n    name=\"gaussdb_cassandra_instance_1\",\n    password=password,\n    flavor=\"geminidb.cassandra.xlarge.8\",\n    volume_size=100,\n    vpc_id=vpc_id,\n    subnet_id=subnet_id,\n    security_group_id=secgroup_id,\n    availability_zone=availability_zone,\n    tags={\n        \"foo\": \"bar\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var instance1 = new Opentelekomcloud.GeminiInstanceV3(\"instance_1\", new()\n    {\n        Name = \"gaussdb_cassandra_instance_1\",\n        Password = password,\n        Flavor = \"geminidb.cassandra.xlarge.8\",\n        VolumeSize = 100,\n        VpcId = vpcId,\n        SubnetId = subnetId,\n        SecurityGroupId = secgroupId,\n        AvailabilityZone = availabilityZone,\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewGeminiInstanceV3(ctx, \"instance_1\", &opentelekomcloud.GeminiInstanceV3Args{\n\t\t\tName:             pulumi.String(\"gaussdb_cassandra_instance_1\"),\n\t\t\tPassword:         pulumi.Any(password),\n\t\t\tFlavor:           pulumi.String(\"geminidb.cassandra.xlarge.8\"),\n\t\t\tVolumeSize:       pulumi.Float64(100),\n\t\t\tVpcId:            pulumi.Any(vpcId),\n\t\t\tSubnetId:         pulumi.Any(subnetId),\n\t\t\tSecurityGroupId:  pulumi.Any(secgroupId),\n\t\t\tAvailabilityZone: pulumi.Any(availabilityZone),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.GeminiInstanceV3;\nimport com.pulumi.opentelekomcloud.GeminiInstanceV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var instance1 = new GeminiInstanceV3(\"instance1\", GeminiInstanceV3Args.builder()\n            .name(\"gaussdb_cassandra_instance_1\")\n            .password(password)\n            .flavor(\"geminidb.cassandra.xlarge.8\")\n            .volumeSize(100.0)\n            .vpcId(vpcId)\n            .subnetId(subnetId)\n            .securityGroupId(secgroupId)\n            .availabilityZone(availabilityZone)\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  instance1:\n    type: opentelekomcloud:GeminiInstanceV3\n    name: instance_1\n    properties:\n      name: gaussdb_cassandra_instance_1\n      password: ${password}\n      flavor: geminidb.cassandra.xlarge.8\n      volumeSize: 100\n      vpcId: ${vpcId}\n      subnetId: ${subnetId}\n      securityGroupId: ${secgroupId}\n      availabilityZone: ${availabilityZone}\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n### Create an instance with backup strategy\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst instance1 = new opentelekomcloud.GeminiInstanceV3(\"instance_1\", {\n    name: \"gaussdb_cassandra_instance_1\",\n    password: password,\n    flavor: \"geminidb.cassandra.xlarge.4\",\n    volumeSize: 100,\n    vpcId: vpcId,\n    subnetId: subnetId,\n    securityGroupId: secgroupId,\n    availabilityZone: availabilityZone,\n    backupStrategy: {\n        startTime: \"03:00-04:00\",\n        keepDays: 14,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ninstance1 = opentelekomcloud.GeminiInstanceV3(\"instance_1\",\n    name=\"gaussdb_cassandra_instance_1\",\n    password=password,\n    flavor=\"geminidb.cassandra.xlarge.4\",\n    volume_size=100,\n    vpc_id=vpc_id,\n    subnet_id=subnet_id,\n    security_group_id=secgroup_id,\n    availability_zone=availability_zone,\n    backup_strategy={\n        \"start_time\": \"03:00-04:00\",\n        \"keep_days\": 14,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var instance1 = new Opentelekomcloud.GeminiInstanceV3(\"instance_1\", new()\n    {\n        Name = \"gaussdb_cassandra_instance_1\",\n        Password = password,\n        Flavor = \"geminidb.cassandra.xlarge.4\",\n        VolumeSize = 100,\n        VpcId = vpcId,\n        SubnetId = subnetId,\n        SecurityGroupId = secgroupId,\n        AvailabilityZone = availabilityZone,\n        BackupStrategy = new Opentelekomcloud.Inputs.GeminiInstanceV3BackupStrategyArgs\n        {\n            StartTime = \"03:00-04:00\",\n            KeepDays = 14,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewGeminiInstanceV3(ctx, \"instance_1\", &opentelekomcloud.GeminiInstanceV3Args{\n\t\t\tName:             pulumi.String(\"gaussdb_cassandra_instance_1\"),\n\t\t\tPassword:         pulumi.Any(password),\n\t\t\tFlavor:           pulumi.String(\"geminidb.cassandra.xlarge.4\"),\n\t\t\tVolumeSize:       pulumi.Float64(100),\n\t\t\tVpcId:            pulumi.Any(vpcId),\n\t\t\tSubnetId:         pulumi.Any(subnetId),\n\t\t\tSecurityGroupId:  pulumi.Any(secgroupId),\n\t\t\tAvailabilityZone: pulumi.Any(availabilityZone),\n\t\t\tBackupStrategy: &opentelekomcloud.GeminiInstanceV3BackupStrategyArgs{\n\t\t\t\tStartTime: pulumi.String(\"03:00-04:00\"),\n\t\t\t\tKeepDays:  pulumi.Float64(14),\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.opentelekomcloud.GeminiInstanceV3;\nimport com.pulumi.opentelekomcloud.GeminiInstanceV3Args;\nimport com.pulumi.opentelekomcloud.inputs.GeminiInstanceV3BackupStrategyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var instance1 = new GeminiInstanceV3(\"instance1\", GeminiInstanceV3Args.builder()\n            .name(\"gaussdb_cassandra_instance_1\")\n            .password(password)\n            .flavor(\"geminidb.cassandra.xlarge.4\")\n            .volumeSize(100.0)\n            .vpcId(vpcId)\n            .subnetId(subnetId)\n            .securityGroupId(secgroupId)\n            .availabilityZone(availabilityZone)\n            .backupStrategy(GeminiInstanceV3BackupStrategyArgs.builder()\n                .startTime(\"03:00-04:00\")\n                .keepDays(14.0)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  instance1:\n    type: opentelekomcloud:GeminiInstanceV3\n    name: instance_1\n    properties:\n      name: gaussdb_cassandra_instance_1\n      password: ${password}\n      flavor: geminidb.cassandra.xlarge.4\n      volumeSize: 100\n      vpcId: ${vpcId}\n      subnetId: ${subnetId}\n      securityGroupId: ${secgroupId}\n      availabilityZone: ${availabilityZone}\n      backupStrategy:\n        startTime: 03:00-04:00\n        keepDays: 14\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nGeminiDB instance can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/geminiInstanceV3:GeminiInstanceV3 instance_1 749112383d5342e9acb6c7825801b452in06\n```\n\nDue to the security reasons, `password` can not be imported. It can be ignored as shown below.\n\nhcl\n\nresource \"opentelekomcloud_gemini_instance_v3\" \"instance_1\" {\n\n  lifecycle {\n\n    ignore_changes = [\n\n      password,\n\n    ]\n\n  }\n\n}\n\n","inputProperties":{"availabilityZone":{"description":"Specifies the AZ name. For a three-AZ deployment instance,\nuse commas (,) to separate the AZs, for example, `eu-de-01,eu-de-02,eu-de-03`.\nChanging this parameter will create a new resource.\n","type":"string"},"backupStrategy":{"$ref":"#/types/opentelekomcloud:index%2FGeminiInstanceV3BackupStrategy:GeminiInstanceV3BackupStrategy","description":"Specifies the advanced backup policy. Structure is documented below.\n"},"configurationId":{"description":"Specifies the Parameter Template ID.\n","type":"string"},"datastore":{"$ref":"#/types/opentelekomcloud:index%2FGeminiInstanceV3Datastore:GeminiInstanceV3Datastore","description":"Specifies the database information. Structure is documented below. Changing\nthis parameter will create a new resource.\n"},"flavor":{"description":"Specifies the instance specifications. For details,\nsee [DB Instance Specifications](https://docs.otc.t-systems.com/geminidb/api-ref/apis_v3/versions_and_specifications/querying_instance_specifications.html).\n","type":"string"},"geminiInstanceV3Id":{"description":"Indicates the node ID.\n","type":"string"},"name":{"description":"Specifies the instance name, which can be the same as an existing instance name. The value\nmust be 4 to 64 characters in length and start with a letter. It is case-sensitive and can contain only letters,\ndigits, hyphens (-), and underscores (_).\n","type":"string"},"nodeNum":{"description":"Specifies the number of nodes, ranges from 3 to 200. Defaults to 3.\n","type":"number"},"password":{"description":"Specifies the database password. The value must be 8 to 32 characters in length,\nincluding uppercase and lowercase letters, digits, and special characters, such as ~!@#%^*-_=+? You are advised to\nenter a strong password to improve security, preventing security risks such as brute force cracking.\n","secret":true,"type":"string"},"period":{"type":"number"},"securityGroupId":{"description":"Specifies the security group ID. Required if the selected subnet doesn't\nenable network ACL.\n","type":"string"},"ssl":{"description":"Specifies whether to enable or disable SSL. Defaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Changing this\nparameter will create a new resource.\n","type":"boolean"},"subnetId":{"description":"Specifies the network ID of a subnet. Changing this parameter will create a\nnew resource.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The key/value pairs to associate with the instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FGeminiInstanceV3Timeouts:GeminiInstanceV3Timeouts"},"volumeSize":{"description":"Specifies the storage space in GB. The value must be a multiple of 10. For a GeminiDB\nCassandra DB instance, the minimum storage space is 100 GB, and the maximum storage space is related to the instance\nperformance specifications.\n","type":"number"},"vpcId":{"description":"Specifies the VPC ID. Changing this parameter will create a new resource.\n","type":"string"}},"properties":{"availabilityZone":{"description":"Specifies the AZ name. For a three-AZ deployment instance,\nuse commas (,) to separate the AZs, for example, `eu-de-01,eu-de-02,eu-de-03`.\nChanging this parameter will create a new resource.\n","type":"string"},"backupStrategy":{"$ref":"#/types/opentelekomcloud:index%2FGeminiInstanceV3BackupStrategy:GeminiInstanceV3BackupStrategy","description":"Specifies the advanced backup policy. Structure is documented below.\n"},"configurationId":{"description":"Specifies the Parameter Template ID.\n","type":"string"},"datastore":{"$ref":"#/types/opentelekomcloud:index%2FGeminiInstanceV3Datastore:GeminiInstanceV3Datastore","description":"Specifies the database information. Structure is documented below. Changing\nthis parameter will create a new resource.\n"},"dbUserName":{"description":"Indicates the default username.\n","type":"string"},"flavor":{"description":"Specifies the instance specifications. For details,\nsee [DB Instance Specifications](https://docs.otc.t-systems.com/geminidb/api-ref/apis_v3/versions_and_specifications/querying_instance_specifications.html).\n","type":"string"},"geminiInstanceV3Id":{"description":"Indicates the node ID.\n","type":"string"},"mode":{"description":"Indicates the instance type.\n","type":"string"},"name":{"description":"Specifies the instance name, which can be the same as an existing instance name. The value\nmust be 4 to 64 characters in length and start with a letter. It is case-sensitive and can contain only letters,\ndigits, hyphens (-), and underscores (_).\n","type":"string"},"nodeNum":{"description":"Specifies the number of nodes, ranges from 3 to 200. Defaults to 3.\n","type":"number"},"nodes":{"description":"Indicates the instance nodes information. Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FGeminiInstanceV3Node:GeminiInstanceV3Node"},"type":"array"},"password":{"description":"Specifies the database password. The value must be 8 to 32 characters in length,\nincluding uppercase and lowercase letters, digits, and special characters, such as ~!@#%^*-_=+? You are advised to\nenter a strong password to improve security, preventing security risks such as brute force cracking.\n","secret":true,"type":"string"},"period":{"type":"number"},"port":{"description":"Indicates the database port.\n","type":"number"},"privateIps":{"description":"Indicates the IP address list of the db.\n","items":{"type":"string"},"type":"array"},"region":{"description":"Indicates the DB instance region.\n","type":"string"},"securityGroupId":{"description":"Specifies the security group ID. Required if the selected subnet doesn't\nenable network ACL.\n","type":"string"},"ssl":{"description":"Specifies whether to enable or disable SSL. Defaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Changing this\nparameter will create a new resource.\n","type":"boolean"},"status":{"description":"Indicates the node status.\n","type":"string"},"subnetId":{"description":"Specifies the network ID of a subnet. Changing this parameter will create a\nnew resource.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The key/value pairs to associate with the instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FGeminiInstanceV3Timeouts:GeminiInstanceV3Timeouts"},"volumeSize":{"description":"Specifies the storage space in GB. The value must be a multiple of 10. For a GeminiDB\nCassandra DB instance, the minimum storage space is 100 GB, and the maximum storage space is related to the instance\nperformance specifications.\n","type":"number"},"vpcId":{"description":"Specifies the VPC ID. Changing this parameter will create a new resource.\n","type":"string"}},"required":["availabilityZone","configurationId","dbUserName","flavor","geminiInstanceV3Id","mode","name","nodes","password","port","privateIps","region","status","subnetId","volumeSize","vpcId"],"requiredInputs":["availabilityZone","flavor","password","subnetId","volumeSize","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering GeminiInstanceV3 resources.\n","properties":{"availabilityZone":{"description":"Specifies the AZ name. For a three-AZ deployment instance,\nuse commas (,) to separate the AZs, for example, `eu-de-01,eu-de-02,eu-de-03`.\nChanging this parameter will create a new resource.\n","type":"string"},"backupStrategy":{"$ref":"#/types/opentelekomcloud:index%2FGeminiInstanceV3BackupStrategy:GeminiInstanceV3BackupStrategy","description":"Specifies the advanced backup policy. Structure is documented below.\n"},"configurationId":{"description":"Specifies the Parameter Template ID.\n","type":"string"},"datastore":{"$ref":"#/types/opentelekomcloud:index%2FGeminiInstanceV3Datastore:GeminiInstanceV3Datastore","description":"Specifies the database information. Structure is documented below. Changing\nthis parameter will create a new resource.\n"},"dbUserName":{"description":"Indicates the default username.\n","type":"string"},"flavor":{"description":"Specifies the instance specifications. For details,\nsee [DB Instance Specifications](https://docs.otc.t-systems.com/geminidb/api-ref/apis_v3/versions_and_specifications/querying_instance_specifications.html).\n","type":"string"},"geminiInstanceV3Id":{"description":"Indicates the node ID.\n","type":"string"},"mode":{"description":"Indicates the instance type.\n","type":"string"},"name":{"description":"Specifies the instance name, which can be the same as an existing instance name. The value\nmust be 4 to 64 characters in length and start with a letter. It is case-sensitive and can contain only letters,\ndigits, hyphens (-), and underscores (_).\n","type":"string"},"nodeNum":{"description":"Specifies the number of nodes, ranges from 3 to 200. Defaults to 3.\n","type":"number"},"nodes":{"description":"Indicates the instance nodes information. Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FGeminiInstanceV3Node:GeminiInstanceV3Node"},"type":"array"},"password":{"description":"Specifies the database password. The value must be 8 to 32 characters in length,\nincluding uppercase and lowercase letters, digits, and special characters, such as ~!@#%^*-_=+? You are advised to\nenter a strong password to improve security, preventing security risks such as brute force cracking.\n","secret":true,"type":"string"},"period":{"type":"number"},"port":{"description":"Indicates the database port.\n","type":"number"},"privateIps":{"description":"Indicates the IP address list of the db.\n","items":{"type":"string"},"type":"array"},"region":{"description":"Indicates the DB instance region.\n","type":"string"},"securityGroupId":{"description":"Specifies the security group ID. Required if the selected subnet doesn't\nenable network ACL.\n","type":"string"},"ssl":{"description":"Specifies whether to enable or disable SSL. Defaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Changing this\nparameter will create a new resource.\n","type":"boolean"},"status":{"description":"Indicates the node status.\n","type":"string"},"subnetId":{"description":"Specifies the network ID of a subnet. Changing this parameter will create a\nnew resource.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The key/value pairs to associate with the instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FGeminiInstanceV3Timeouts:GeminiInstanceV3Timeouts"},"volumeSize":{"description":"Specifies the storage space in GB. The value must be a multiple of 10. For a GeminiDB\nCassandra DB instance, the minimum storage space is 100 GB, and the maximum storage space is related to the instance\nperformance specifications.\n","type":"number"},"vpcId":{"description":"Specifies the VPC ID. Changing this parameter will create a new resource.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/geminiTemplateV3:GeminiTemplateV3":{"description":"Up-to-date reference of API arguments for GeminiDB you can get at\n[documentation portal](https://docs.otc.t-systems.com/geminidb/api-ref/apis_v3/parameter_templates/index.html).\n\nManages a GeminiDB Parameter Template resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Basic Parameter Template\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst template = new opentelekomcloud.GeminiTemplateV3(\"template\", {\n    name: \"cassandra_template\",\n    description: \"Custom Cassandra configuration\",\n    instanceType: \"cassandra\",\n    engineVersion: \"3.11\",\n    parameters: [\n        {\n            name: \"write_request_timeout_in_ms\",\n            value: \"7000\",\n        },\n        {\n            name: \"read_request_timeout_in_ms\",\n            value: \"8000\",\n        },\n        {\n            name: \"slow_query_log_timeout_in_ms\",\n            value: \"15000\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntemplate = opentelekomcloud.GeminiTemplateV3(\"template\",\n    name=\"cassandra_template\",\n    description=\"Custom Cassandra configuration\",\n    instance_type=\"cassandra\",\n    engine_version=\"3.11\",\n    parameters=[\n        {\n            \"name\": \"write_request_timeout_in_ms\",\n            \"value\": \"7000\",\n        },\n        {\n            \"name\": \"read_request_timeout_in_ms\",\n            \"value\": \"8000\",\n        },\n        {\n            \"name\": \"slow_query_log_timeout_in_ms\",\n            \"value\": \"15000\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var template = new Opentelekomcloud.GeminiTemplateV3(\"template\", new()\n    {\n        Name = \"cassandra_template\",\n        Description = \"Custom Cassandra configuration\",\n        InstanceType = \"cassandra\",\n        EngineVersion = \"3.11\",\n        Parameters = new[]\n        {\n            new Opentelekomcloud.Inputs.GeminiTemplateV3ParameterArgs\n            {\n                Name = \"write_request_timeout_in_ms\",\n                Value = \"7000\",\n            },\n            new Opentelekomcloud.Inputs.GeminiTemplateV3ParameterArgs\n            {\n                Name = \"read_request_timeout_in_ms\",\n                Value = \"8000\",\n            },\n            new Opentelekomcloud.Inputs.GeminiTemplateV3ParameterArgs\n            {\n                Name = \"slow_query_log_timeout_in_ms\",\n                Value = \"15000\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewGeminiTemplateV3(ctx, \"template\", &opentelekomcloud.GeminiTemplateV3Args{\n\t\t\tName:          pulumi.String(\"cassandra_template\"),\n\t\t\tDescription:   pulumi.String(\"Custom Cassandra configuration\"),\n\t\t\tInstanceType:  pulumi.String(\"cassandra\"),\n\t\t\tEngineVersion: pulumi.String(\"3.11\"),\n\t\t\tParameters: opentelekomcloud.GeminiTemplateV3ParameterArray{\n\t\t\t\t&opentelekomcloud.GeminiTemplateV3ParameterArgs{\n\t\t\t\t\tName:  pulumi.String(\"write_request_timeout_in_ms\"),\n\t\t\t\t\tValue: pulumi.String(\"7000\"),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.GeminiTemplateV3ParameterArgs{\n\t\t\t\t\tName:  pulumi.String(\"read_request_timeout_in_ms\"),\n\t\t\t\t\tValue: pulumi.String(\"8000\"),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.GeminiTemplateV3ParameterArgs{\n\t\t\t\t\tName:  pulumi.String(\"slow_query_log_timeout_in_ms\"),\n\t\t\t\t\tValue: pulumi.String(\"15000\"),\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.opentelekomcloud.GeminiTemplateV3;\nimport com.pulumi.opentelekomcloud.GeminiTemplateV3Args;\nimport com.pulumi.opentelekomcloud.inputs.GeminiTemplateV3ParameterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var template = new GeminiTemplateV3(\"template\", GeminiTemplateV3Args.builder()\n            .name(\"cassandra_template\")\n            .description(\"Custom Cassandra configuration\")\n            .instanceType(\"cassandra\")\n            .engineVersion(\"3.11\")\n            .parameters(            \n                GeminiTemplateV3ParameterArgs.builder()\n                    .name(\"write_request_timeout_in_ms\")\n                    .value(\"7000\")\n                    .build(),\n                GeminiTemplateV3ParameterArgs.builder()\n                    .name(\"read_request_timeout_in_ms\")\n                    .value(\"8000\")\n                    .build(),\n                GeminiTemplateV3ParameterArgs.builder()\n                    .name(\"slow_query_log_timeout_in_ms\")\n                    .value(\"15000\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  template:\n    type: opentelekomcloud:GeminiTemplateV3\n    properties:\n      name: cassandra_template\n      description: Custom Cassandra configuration\n      instanceType: cassandra\n      engineVersion: '3.11'\n      parameters:\n        - name: write_request_timeout_in_ms\n          value: '7000'\n        - name: read_request_timeout_in_ms\n          value: '8000'\n        - name: slow_query_log_timeout_in_ms\n          value: '15000'\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"description":{"description":"Specifies the parameter template description. It can contain a\nmaximum of 256 characters. The following special characters are not allowed: `>!<\"&'=`\n","type":"string"},"engineVersion":{"description":"Specifies the database version. Currently, only `3.11`\nis supported for GeminiDB Cassandra. Changing this creates a new resource.\n","type":"string"},"geminiTemplateV3Id":{"description":"The resource ID (parameter template ID).\n","type":"string"},"instanceType":{"description":"Specifies the database type. Currently, only <span pulumi-lang-nodejs=\"`cassandra`\" pulumi-lang-dotnet=\"`Cassandra`\" pulumi-lang-go=\"`cassandra`\" pulumi-lang-python=\"`cassandra`\" pulumi-lang-yaml=\"`cassandra`\" pulumi-lang-java=\"`cassandra`\">`cassandra`</span>\nis supported. Changing this creates a new resource.\n","type":"string"},"name":{"description":"Specifies the parameter template name. The template name can include\n1 to 64 characters and can contain only uppercase letters, lowercase letters, digits, hyphens (-),\nunderscores (_), and periods (.). Changing this creates a new resource.\n","type":"string"},"parameters":{"description":"Specifies the parameter values. The structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FGeminiTemplateV3Parameter:GeminiTemplateV3Parameter"},"type":"array"}},"properties":{"createdAt":{"description":"The creation time in the `yyyy-MM-ddTHH:mm:ssZ` format.\n","type":"string"},"description":{"description":"Specifies the parameter template description. It can contain a\nmaximum of 256 characters. The following special characters are not allowed: `>!<\"&'=`\n","type":"string"},"engineVersion":{"description":"Specifies the database version. Currently, only `3.11`\nis supported for GeminiDB Cassandra. Changing this creates a new resource.\n","type":"string"},"geminiTemplateV3Id":{"description":"The resource ID (parameter template ID).\n","type":"string"},"instanceType":{"description":"Specifies the database type. Currently, only <span pulumi-lang-nodejs=\"`cassandra`\" pulumi-lang-dotnet=\"`Cassandra`\" pulumi-lang-go=\"`cassandra`\" pulumi-lang-python=\"`cassandra`\" pulumi-lang-yaml=\"`cassandra`\" pulumi-lang-java=\"`cassandra`\">`cassandra`</span>\nis supported. Changing this creates a new resource.\n","type":"string"},"name":{"description":"Specifies the parameter template name. The template name can include\n1 to 64 characters and can contain only uppercase letters, lowercase letters, digits, hyphens (-),\nunderscores (_), and periods (.). Changing this creates a new resource.\n","type":"string"},"parameters":{"description":"Specifies the parameter values. The structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FGeminiTemplateV3Parameter:GeminiTemplateV3Parameter"},"type":"array"},"region":{"description":"The region in which the parameter template is created.\n","type":"string"},"updatedAt":{"description":"The update time in the `yyyy-MM-ddTHH:mm:ssZ` format.\n","type":"string"}},"required":["createdAt","description","engineVersion","geminiTemplateV3Id","instanceType","name","parameters","region","updatedAt"],"requiredInputs":["engineVersion","instanceType","parameters"],"stateInputs":{"description":"Input properties used for looking up and filtering GeminiTemplateV3 resources.\n","properties":{"createdAt":{"description":"The creation time in the `yyyy-MM-ddTHH:mm:ssZ` format.\n","type":"string"},"description":{"description":"Specifies the parameter template description. It can contain a\nmaximum of 256 characters. The following special characters are not allowed: `>!<\"&'=`\n","type":"string"},"engineVersion":{"description":"Specifies the database version. Currently, only `3.11`\nis supported for GeminiDB Cassandra. Changing this creates a new resource.\n","type":"string"},"geminiTemplateV3Id":{"description":"The resource ID (parameter template ID).\n","type":"string"},"instanceType":{"description":"Specifies the database type. Currently, only <span pulumi-lang-nodejs=\"`cassandra`\" pulumi-lang-dotnet=\"`Cassandra`\" pulumi-lang-go=\"`cassandra`\" pulumi-lang-python=\"`cassandra`\" pulumi-lang-yaml=\"`cassandra`\" pulumi-lang-java=\"`cassandra`\">`cassandra`</span>\nis supported. Changing this creates a new resource.\n","type":"string"},"name":{"description":"Specifies the parameter template name. The template name can include\n1 to 64 characters and can contain only uppercase letters, lowercase letters, digits, hyphens (-),\nunderscores (_), and periods (.). Changing this creates a new resource.\n","type":"string"},"parameters":{"description":"Specifies the parameter values. The structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FGeminiTemplateV3Parameter:GeminiTemplateV3Parameter"},"type":"array"},"region":{"description":"The region in which the parameter template is created.\n","type":"string"},"updatedAt":{"description":"The update time in the `yyyy-MM-ddTHH:mm:ssZ` format.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/hssHostGroupV5:HssHostGroupV5":{"description":"Up-to-date reference of API arguments for HSS host group you can get at\n[documentation portal](https://docs.otc.t-systems.com/host-security-service/api-ref/api_description/server_management/creating_a_server_group.html#addhostsgroup).\n\nManages an HSS host group resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Create an HSS host group and bind ECS instances\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst hostGroupName = config.requireObject<any>(\"hostGroupName\");\nconst hostIds = config.requireObject<Array<string>>(\"hostIds\");\nconst test = new opentelekomcloud.HssHostGroupV5(\"test\", {\n    name: hostGroupName,\n    hostIds: hostIds,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nhost_group_name = config.require_object(\"hostGroupName\")\nhost_ids = config.require_object(\"hostIds\")\ntest = opentelekomcloud.HssHostGroupV5(\"test\",\n    name=host_group_name,\n    host_ids=host_ids)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var hostGroupName = config.RequireObject<dynamic>(\"hostGroupName\");\n    var hostIds = config.RequireObject<string[]>(\"hostIds\");\n    var test = new Opentelekomcloud.HssHostGroupV5(\"test\", new()\n    {\n        Name = hostGroupName,\n        HostIds = hostIds,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\thostGroupName := cfg.RequireObject(\"hostGroupName\")\n\t\thostIds := cfg.Require(\"hostIds\")\n\t\t_, err := opentelekomcloud.NewHssHostGroupV5(ctx, \"test\", &opentelekomcloud.HssHostGroupV5Args{\n\t\t\tName:    pulumi.Any(hostGroupName),\n\t\t\tHostIds: hostIds,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.HssHostGroupV5;\nimport com.pulumi.opentelekomcloud.HssHostGroupV5Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var hostGroupName = config.get(\"hostGroupName\");\n        final var hostIds = config.get(\"hostIds\");\n        var test = new HssHostGroupV5(\"test\", HssHostGroupV5Args.builder()\n            .name(hostGroupName)\n            .hostIds(hostIds)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  hostGroupName:\n    type: dynamic\n  hostIds:\n    type: list(string)\nresources:\n  test:\n    type: opentelekomcloud:HssHostGroupV5\n    properties:\n      name: ${hostGroupName}\n      hostIds: ${hostIds}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe host group resource can be imported using `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/hssHostGroupV5:HssHostGroupV5 group <id>\n```\n\n","inputProperties":{"hostIds":{"description":"Specifies the list of host IDs.\n","items":{"type":"string"},"type":"array"},"hssHostGroupV5Id":{"description":"The resource ID in UUID format.\n","type":"string"},"name":{"description":"Specifies the name of the host group.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, only Chinese characters, English letters, digits, hyphens (-),\nunderscores (_), dots (.), pluses (+) and asterisks (*) are allowed.\nThe Chinese characters must be in `UTF-8` or `Unicode` format.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FHssHostGroupV5Timeouts:HssHostGroupV5Timeouts"}},"properties":{"hostIds":{"description":"Specifies the list of host IDs.\n","items":{"type":"string"},"type":"array"},"hostNum":{"description":"The total host number.\n","type":"number"},"hssHostGroupV5Id":{"description":"The resource ID in UUID format.\n","type":"string"},"name":{"description":"Specifies the name of the host group.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, only Chinese characters, English letters, digits, hyphens (-),\nunderscores (_), dots (.), pluses (+) and asterisks (*) are allowed.\nThe Chinese characters must be in `UTF-8` or `Unicode` format.\n","type":"string"},"region":{"description":"The region where the host group is located.\n","type":"string"},"riskHostNum":{"description":"The number of hosts at risk.\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FHssHostGroupV5Timeouts:HssHostGroupV5Timeouts"},"unprotectHostIds":{"description":"The ID list of the unprotect hosts.\n","items":{"type":"string"},"type":"array"},"unprotectHostNum":{"description":"The number of unprotect hosts.\n","type":"number"}},"required":["hostNum","hssHostGroupV5Id","name","region","riskHostNum","unprotectHostIds","unprotectHostNum"],"stateInputs":{"description":"Input properties used for looking up and filtering HssHostGroupV5 resources.\n","properties":{"hostIds":{"description":"Specifies the list of host IDs.\n","items":{"type":"string"},"type":"array"},"hostNum":{"description":"The total host number.\n","type":"number"},"hssHostGroupV5Id":{"description":"The resource ID in UUID format.\n","type":"string"},"name":{"description":"Specifies the name of the host group.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>, only Chinese characters, English letters, digits, hyphens (-),\nunderscores (_), dots (.), pluses (+) and asterisks (*) are allowed.\nThe Chinese characters must be in `UTF-8` or `Unicode` format.\n","type":"string"},"region":{"description":"The region where the host group is located.\n","type":"string"},"riskHostNum":{"description":"The number of hosts at risk.\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FHssHostGroupV5Timeouts:HssHostGroupV5Timeouts"},"unprotectHostIds":{"description":"The ID list of the unprotect hosts.\n","items":{"type":"string"},"type":"array"},"unprotectHostNum":{"description":"The number of unprotect hosts.\n","type":"number"}},"type":"object"},"type":"object"},"opentelekomcloud:index/hssHostProtectionV5:HssHostProtectionV5":{"description":"Up-to-date reference of API arguments for HSS host protection you can get at\n[documentation portal](https://docs.otc.t-systems.com/host-security-service/api-ref/api_description/server_management/changing_the_protection_status.html).\n\nManages an HSS host protection resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst hostId = config.requireObject<any>(\"hostId\");\nconst pro = new opentelekomcloud.HssHostProtectionV5(\"pro\", {\n    hostId: hostId,\n    version: \"hss.version.premium\",\n    chargingMode: \"on_demand\",\n    isWaitHostAvailable: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nhost_id = config.require_object(\"hostId\")\npro = opentelekomcloud.HssHostProtectionV5(\"pro\",\n    host_id=host_id,\n    version=\"hss.version.premium\",\n    charging_mode=\"on_demand\",\n    is_wait_host_available=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var hostId = config.RequireObject<dynamic>(\"hostId\");\n    var pro = new Opentelekomcloud.HssHostProtectionV5(\"pro\", new()\n    {\n        HostId = hostId,\n        Version = \"hss.version.premium\",\n        ChargingMode = \"on_demand\",\n        IsWaitHostAvailable = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\thostId := cfg.RequireObject(\"hostId\")\n\t\t_, err := opentelekomcloud.NewHssHostProtectionV5(ctx, \"pro\", &opentelekomcloud.HssHostProtectionV5Args{\n\t\t\tHostId:              pulumi.Any(hostId),\n\t\t\tVersion:             pulumi.String(\"hss.version.premium\"),\n\t\t\tChargingMode:        pulumi.String(\"on_demand\"),\n\t\t\tIsWaitHostAvailable: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.HssHostProtectionV5;\nimport com.pulumi.opentelekomcloud.HssHostProtectionV5Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var hostId = config.get(\"hostId\");\n        var pro = new HssHostProtectionV5(\"pro\", HssHostProtectionV5Args.builder()\n            .hostId(hostId)\n            .version(\"hss.version.premium\")\n            .chargingMode(\"on_demand\")\n            .isWaitHostAvailable(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  hostId:\n    type: dynamic\nresources:\n  pro:\n    type: opentelekomcloud:HssHostProtectionV5\n    properties:\n      hostId: ${hostId}\n      version: hss.version.premium\n      chargingMode: on_demand\n      isWaitHostAvailable: true\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe host protection can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/hssHostProtectionV5:HssHostProtectionV5 pro <id>\n```\n\nNote that the imported state may not be identical to your resource definition, due to some attributes missing from the\n\nAPI response, security or some other reason. The missing attributes include: `resource_id`, `is_wait_host_available`.\n\nIt is generally recommended running `pulumi preview` after importing a resource.\n\nYou can then decide if changes should be applied to the resource, or the resource definition\n\nshould be updated to align with the resource. Also, you can ignore changes as below.\n\nhcl\n\nresource \"opentelekomcloud_hss_host_protection_v5\" \"pro\" {\n\n  lifecycle {\n\n    ignore_changes = [\n\n      quota_id, is_wait_host_available,\n\n    ]\n\n  }\n\n}\n\n","inputProperties":{"chargingMode":{"description":"Specifies the charging mode for host protection.\nThe valid values are as follows:\n","type":"string"},"hostId":{"description":"Specifies the host ID for the host protection.\nChanging this parameter will create a new resource.\n\n> Before using host protection, it is necessary to ensure that the agent status of the host is <span pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\">`online`</span>.\n","type":"string"},"hssHostProtectionV5Id":{"description":"The resource ID same as <span pulumi-lang-nodejs=\"`hostId`\" pulumi-lang-dotnet=\"`HostId`\" pulumi-lang-go=\"`hostId`\" pulumi-lang-python=\"`host_id`\" pulumi-lang-yaml=\"`hostId`\" pulumi-lang-java=\"`hostId`\">`host_id`</span>.\n","type":"string"},"isWaitHostAvailable":{"description":"Specifies whether to wait for the host agent status to become <span pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\">`online`</span>.\nThe value can be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Defaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n\n> If this field is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>, the program will wait for a maximum of <span pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\">`30`</span> minutes until the host's agent status\nbecomes <span pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\">`online`</span>, and then enable host protection.\n","type":"boolean"},"resourceId":{"description":"Specifies Instance ID for host protection.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FHssHostProtectionV5Timeouts:HssHostProtectionV5Timeouts"},"version":{"description":"Specifies the protection version enabled by the host.\nThe valid values are as follows:\n+ `hss.version.enterprise`: Enterprise version.\n+ `hss.version.premium`: Ultimate version.\n","type":"string"}},"properties":{"agentId":{"description":"The agent ID installed on the host.\n","type":"string"},"agentStatus":{"description":"The agent status of the host. The value can be <span pulumi-lang-nodejs=\"`installed`\" pulumi-lang-dotnet=\"`Installed`\" pulumi-lang-go=\"`installed`\" pulumi-lang-python=\"`installed`\" pulumi-lang-yaml=\"`installed`\" pulumi-lang-java=\"`installed`\">`installed`</span>, <span pulumi-lang-nodejs=\"`notInstalled`\" pulumi-lang-dotnet=\"`NotInstalled`\" pulumi-lang-go=\"`notInstalled`\" pulumi-lang-python=\"`not_installed`\" pulumi-lang-yaml=\"`notInstalled`\" pulumi-lang-java=\"`notInstalled`\">`not_installed`</span>, <span pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\">`online`</span>,\n<span pulumi-lang-nodejs=\"`offline`\" pulumi-lang-dotnet=\"`Offline`\" pulumi-lang-go=\"`offline`\" pulumi-lang-python=\"`offline`\" pulumi-lang-yaml=\"`offline`\" pulumi-lang-java=\"`offline`\">`offline`</span>, <span pulumi-lang-nodejs=\"`installFailed`\" pulumi-lang-dotnet=\"`InstallFailed`\" pulumi-lang-go=\"`installFailed`\" pulumi-lang-python=\"`install_failed`\" pulumi-lang-yaml=\"`installFailed`\" pulumi-lang-java=\"`installFailed`\">`install_failed`</span>, or <span pulumi-lang-nodejs=\"`installing`\" pulumi-lang-dotnet=\"`Installing`\" pulumi-lang-go=\"`installing`\" pulumi-lang-python=\"`installing`\" pulumi-lang-yaml=\"`installing`\" pulumi-lang-java=\"`installing`\">`installing`</span>.\n","type":"string"},"assetValue":{"description":"The asset importance. The value can be <span pulumi-lang-nodejs=\"`important`\" pulumi-lang-dotnet=\"`Important`\" pulumi-lang-go=\"`important`\" pulumi-lang-python=\"`important`\" pulumi-lang-yaml=\"`important`\" pulumi-lang-java=\"`important`\">`important`</span>, <span pulumi-lang-nodejs=\"`common`\" pulumi-lang-dotnet=\"`Common`\" pulumi-lang-go=\"`common`\" pulumi-lang-python=\"`common`\" pulumi-lang-yaml=\"`common`\" pulumi-lang-java=\"`common`\">`common`</span>, or <span pulumi-lang-nodejs=\"`test`\" pulumi-lang-dotnet=\"`Test`\" pulumi-lang-go=\"`test`\" pulumi-lang-python=\"`test`\" pulumi-lang-yaml=\"`test`\" pulumi-lang-java=\"`test`\">`test`</span>.\n","type":"string"},"chargingMode":{"description":"Specifies the charging mode for host protection.\nThe valid values are as follows:\n","type":"string"},"detectResult":{"description":"The security detection result of the host. The value can be <span pulumi-lang-nodejs=\"`undetected`\" pulumi-lang-dotnet=\"`Undetected`\" pulumi-lang-go=\"`undetected`\" pulumi-lang-python=\"`undetected`\" pulumi-lang-yaml=\"`undetected`\" pulumi-lang-java=\"`undetected`\">`undetected`</span>, <span pulumi-lang-nodejs=\"`clean`\" pulumi-lang-dotnet=\"`Clean`\" pulumi-lang-go=\"`clean`\" pulumi-lang-python=\"`clean`\" pulumi-lang-yaml=\"`clean`\" pulumi-lang-java=\"`clean`\">`clean`</span>, <span pulumi-lang-nodejs=\"`risk`\" pulumi-lang-dotnet=\"`Risk`\" pulumi-lang-go=\"`risk`\" pulumi-lang-python=\"`risk`\" pulumi-lang-yaml=\"`risk`\" pulumi-lang-java=\"`risk`\">`risk`</span>,\nor <span pulumi-lang-nodejs=\"`scanning`\" pulumi-lang-dotnet=\"`Scanning`\" pulumi-lang-go=\"`scanning`\" pulumi-lang-python=\"`scanning`\" pulumi-lang-yaml=\"`scanning`\" pulumi-lang-java=\"`scanning`\">`scanning`</span>.\n","type":"string"},"hostId":{"description":"Specifies the host ID for the host protection.\nChanging this parameter will create a new resource.\n\n> Before using host protection, it is necessary to ensure that the agent status of the host is <span pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\">`online`</span>.\n","type":"string"},"hostName":{"description":"The host name.\n","type":"string"},"hostStatus":{"description":"The host status. The value can be `ACTIVE`, `SHUTOFF`, `BUILDING`, or `ERROR`.\n","type":"string"},"hssHostProtectionV5Id":{"description":"The resource ID same as <span pulumi-lang-nodejs=\"`hostId`\" pulumi-lang-dotnet=\"`HostId`\" pulumi-lang-go=\"`hostId`\" pulumi-lang-python=\"`host_id`\" pulumi-lang-yaml=\"`hostId`\" pulumi-lang-java=\"`hostId`\">`host_id`</span>.\n","type":"string"},"isWaitHostAvailable":{"description":"Specifies whether to wait for the host agent status to become <span pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\">`online`</span>.\nThe value can be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Defaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n\n> If this field is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>, the program will wait for a maximum of <span pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\">`30`</span> minutes until the host's agent status\nbecomes <span pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\">`online`</span>, and then enable host protection.\n","type":"boolean"},"osType":{"description":"The operating system type of the host. The value can be `Linux` or `Windows`.\n","type":"string"},"privateIp":{"description":"The private IP address of the host.\n","type":"string"},"region":{"description":"The region to which the HSS host protection resource belongs.\n","type":"string"},"resourceId":{"description":"Specifies Instance ID for host protection.\n","type":"string"},"status":{"description":"The protection status of the host. The value can be <span pulumi-lang-nodejs=\"`closed`\" pulumi-lang-dotnet=\"`Closed`\" pulumi-lang-go=\"`closed`\" pulumi-lang-python=\"`closed`\" pulumi-lang-yaml=\"`closed`\" pulumi-lang-java=\"`closed`\">`closed`</span> or <span pulumi-lang-nodejs=\"`opened`\" pulumi-lang-dotnet=\"`Opened`\" pulumi-lang-go=\"`opened`\" pulumi-lang-python=\"`opened`\" pulumi-lang-yaml=\"`opened`\" pulumi-lang-java=\"`opened`\">`opened`</span>.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FHssHostProtectionV5Timeouts:HssHostProtectionV5Timeouts"},"version":{"description":"Specifies the protection version enabled by the host.\nThe valid values are as follows:\n+ `hss.version.enterprise`: Enterprise version.\n+ `hss.version.premium`: Ultimate version.\n","type":"string"}},"required":["agentId","agentStatus","assetValue","chargingMode","detectResult","hostId","hostName","hostStatus","hssHostProtectionV5Id","osType","privateIp","region","status","version"],"requiredInputs":["chargingMode","hostId","version"],"stateInputs":{"description":"Input properties used for looking up and filtering HssHostProtectionV5 resources.\n","properties":{"agentId":{"description":"The agent ID installed on the host.\n","type":"string"},"agentStatus":{"description":"The agent status of the host. The value can be <span pulumi-lang-nodejs=\"`installed`\" pulumi-lang-dotnet=\"`Installed`\" pulumi-lang-go=\"`installed`\" pulumi-lang-python=\"`installed`\" pulumi-lang-yaml=\"`installed`\" pulumi-lang-java=\"`installed`\">`installed`</span>, <span pulumi-lang-nodejs=\"`notInstalled`\" pulumi-lang-dotnet=\"`NotInstalled`\" pulumi-lang-go=\"`notInstalled`\" pulumi-lang-python=\"`not_installed`\" pulumi-lang-yaml=\"`notInstalled`\" pulumi-lang-java=\"`notInstalled`\">`not_installed`</span>, <span pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\">`online`</span>,\n<span pulumi-lang-nodejs=\"`offline`\" pulumi-lang-dotnet=\"`Offline`\" pulumi-lang-go=\"`offline`\" pulumi-lang-python=\"`offline`\" pulumi-lang-yaml=\"`offline`\" pulumi-lang-java=\"`offline`\">`offline`</span>, <span pulumi-lang-nodejs=\"`installFailed`\" pulumi-lang-dotnet=\"`InstallFailed`\" pulumi-lang-go=\"`installFailed`\" pulumi-lang-python=\"`install_failed`\" pulumi-lang-yaml=\"`installFailed`\" pulumi-lang-java=\"`installFailed`\">`install_failed`</span>, or <span pulumi-lang-nodejs=\"`installing`\" pulumi-lang-dotnet=\"`Installing`\" pulumi-lang-go=\"`installing`\" pulumi-lang-python=\"`installing`\" pulumi-lang-yaml=\"`installing`\" pulumi-lang-java=\"`installing`\">`installing`</span>.\n","type":"string"},"assetValue":{"description":"The asset importance. The value can be <span pulumi-lang-nodejs=\"`important`\" pulumi-lang-dotnet=\"`Important`\" pulumi-lang-go=\"`important`\" pulumi-lang-python=\"`important`\" pulumi-lang-yaml=\"`important`\" pulumi-lang-java=\"`important`\">`important`</span>, <span pulumi-lang-nodejs=\"`common`\" pulumi-lang-dotnet=\"`Common`\" pulumi-lang-go=\"`common`\" pulumi-lang-python=\"`common`\" pulumi-lang-yaml=\"`common`\" pulumi-lang-java=\"`common`\">`common`</span>, or <span pulumi-lang-nodejs=\"`test`\" pulumi-lang-dotnet=\"`Test`\" pulumi-lang-go=\"`test`\" pulumi-lang-python=\"`test`\" pulumi-lang-yaml=\"`test`\" pulumi-lang-java=\"`test`\">`test`</span>.\n","type":"string"},"chargingMode":{"description":"Specifies the charging mode for host protection.\nThe valid values are as follows:\n","type":"string"},"detectResult":{"description":"The security detection result of the host. The value can be <span pulumi-lang-nodejs=\"`undetected`\" pulumi-lang-dotnet=\"`Undetected`\" pulumi-lang-go=\"`undetected`\" pulumi-lang-python=\"`undetected`\" pulumi-lang-yaml=\"`undetected`\" pulumi-lang-java=\"`undetected`\">`undetected`</span>, <span pulumi-lang-nodejs=\"`clean`\" pulumi-lang-dotnet=\"`Clean`\" pulumi-lang-go=\"`clean`\" pulumi-lang-python=\"`clean`\" pulumi-lang-yaml=\"`clean`\" pulumi-lang-java=\"`clean`\">`clean`</span>, <span pulumi-lang-nodejs=\"`risk`\" pulumi-lang-dotnet=\"`Risk`\" pulumi-lang-go=\"`risk`\" pulumi-lang-python=\"`risk`\" pulumi-lang-yaml=\"`risk`\" pulumi-lang-java=\"`risk`\">`risk`</span>,\nor <span pulumi-lang-nodejs=\"`scanning`\" pulumi-lang-dotnet=\"`Scanning`\" pulumi-lang-go=\"`scanning`\" pulumi-lang-python=\"`scanning`\" pulumi-lang-yaml=\"`scanning`\" pulumi-lang-java=\"`scanning`\">`scanning`</span>.\n","type":"string"},"hostId":{"description":"Specifies the host ID for the host protection.\nChanging this parameter will create a new resource.\n\n> Before using host protection, it is necessary to ensure that the agent status of the host is <span pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\">`online`</span>.\n","type":"string"},"hostName":{"description":"The host name.\n","type":"string"},"hostStatus":{"description":"The host status. The value can be `ACTIVE`, `SHUTOFF`, `BUILDING`, or `ERROR`.\n","type":"string"},"hssHostProtectionV5Id":{"description":"The resource ID same as <span pulumi-lang-nodejs=\"`hostId`\" pulumi-lang-dotnet=\"`HostId`\" pulumi-lang-go=\"`hostId`\" pulumi-lang-python=\"`host_id`\" pulumi-lang-yaml=\"`hostId`\" pulumi-lang-java=\"`hostId`\">`host_id`</span>.\n","type":"string"},"isWaitHostAvailable":{"description":"Specifies whether to wait for the host agent status to become <span pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\">`online`</span>.\nThe value can be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Defaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n\n> If this field is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>, the program will wait for a maximum of <span pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\">`30`</span> minutes until the host's agent status\nbecomes <span pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\">`online`</span>, and then enable host protection.\n","type":"boolean"},"osType":{"description":"The operating system type of the host. The value can be `Linux` or `Windows`.\n","type":"string"},"privateIp":{"description":"The private IP address of the host.\n","type":"string"},"region":{"description":"The region to which the HSS host protection resource belongs.\n","type":"string"},"resourceId":{"description":"Specifies Instance ID for host protection.\n","type":"string"},"status":{"description":"The protection status of the host. The value can be <span pulumi-lang-nodejs=\"`closed`\" pulumi-lang-dotnet=\"`Closed`\" pulumi-lang-go=\"`closed`\" pulumi-lang-python=\"`closed`\" pulumi-lang-yaml=\"`closed`\" pulumi-lang-java=\"`closed`\">`closed`</span> or <span pulumi-lang-nodejs=\"`opened`\" pulumi-lang-dotnet=\"`Opened`\" pulumi-lang-go=\"`opened`\" pulumi-lang-python=\"`opened`\" pulumi-lang-yaml=\"`opened`\" pulumi-lang-java=\"`opened`\">`opened`</span>.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FHssHostProtectionV5Timeouts:HssHostProtectionV5Timeouts"},"version":{"description":"Specifies the protection version enabled by the host.\nThe valid values are as follows:\n+ `hss.version.enterprise`: Enterprise version.\n+ `hss.version.premium`: Ultimate version.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/identityAclV3:IdentityAclV3":{"description":"Up-to-date reference of API arguments for IAM agency you can get at\n[documentation portal](https://docs.otc.t-systems.com/identity-access-management/api-ref/apis/security_settings/index.html)\n\n\nManages an ACL resource within OpenTelekomCloud IAM service. The ACL allows user access only from specified IP address\nranges and CIDR blocks. The ACL takes effect for IAM users under the Domain account rather than the account itself.\n\n> **NOTE:** You _must_ have `Security Administrator` privileges in your OpenTelekomCloud\ncloud to use this resource. Please refer to [User Management Model](https://docs.otc.t-systems.com/en-us/usermanual/iam/iam_01_0034.html).\n\n## Example Usage\n\n### ACL through console\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst acl = new opentelekomcloud.IdentityAclV3(\"acl\", {\n    type: \"console\",\n    ipRanges: [{\n        range: \"172.16.0.0-172.16.255.255\",\n        description: \"This is a basic ip range for console access\",\n    }],\n    ipCidrs: [{\n        cidr: \"192.168.0.1/32\",\n        description: \"This is a basic ip address for console access\",\n    }],\n    ipv6Ranges: [{\n        range: \"0000:0000:0000:0000:0000:0000:0000:0000-FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF\",\n        description: \"This is a basic ipv6 range for console access\",\n    }],\n    ipv6Cidrs: [{\n        cidr: \"0000:0000:0000:0000:0000:0000:0000:0000/100\",\n        description: \"This is a basic ipv6 address for console access\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nacl = opentelekomcloud.IdentityAclV3(\"acl\",\n    type=\"console\",\n    ip_ranges=[{\n        \"range\": \"172.16.0.0-172.16.255.255\",\n        \"description\": \"This is a basic ip range for console access\",\n    }],\n    ip_cidrs=[{\n        \"cidr\": \"192.168.0.1/32\",\n        \"description\": \"This is a basic ip address for console access\",\n    }],\n    ipv6_ranges=[{\n        \"range\": \"0000:0000:0000:0000:0000:0000:0000:0000-FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF\",\n        \"description\": \"This is a basic ipv6 range for console access\",\n    }],\n    ipv6_cidrs=[{\n        \"cidr\": \"0000:0000:0000:0000:0000:0000:0000:0000/100\",\n        \"description\": \"This is a basic ipv6 address for console access\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var acl = new Opentelekomcloud.IdentityAclV3(\"acl\", new()\n    {\n        Type = \"console\",\n        IpRanges = new[]\n        {\n            new Opentelekomcloud.Inputs.IdentityAclV3IpRangeArgs\n            {\n                Range = \"172.16.0.0-172.16.255.255\",\n                Description = \"This is a basic ip range for console access\",\n            },\n        },\n        IpCidrs = new[]\n        {\n            new Opentelekomcloud.Inputs.IdentityAclV3IpCidrArgs\n            {\n                Cidr = \"192.168.0.1/32\",\n                Description = \"This is a basic ip address for console access\",\n            },\n        },\n        Ipv6Ranges = new[]\n        {\n            new Opentelekomcloud.Inputs.IdentityAclV3Ipv6RangeArgs\n            {\n                Range = \"0000:0000:0000:0000:0000:0000:0000:0000-FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF\",\n                Description = \"This is a basic ipv6 range for console access\",\n            },\n        },\n        Ipv6Cidrs = new[]\n        {\n            new Opentelekomcloud.Inputs.IdentityAclV3Ipv6CidrArgs\n            {\n                Cidr = \"0000:0000:0000:0000:0000:0000:0000:0000/100\",\n                Description = \"This is a basic ipv6 address for console access\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewIdentityAclV3(ctx, \"acl\", &opentelekomcloud.IdentityAclV3Args{\n\t\t\tType: pulumi.String(\"console\"),\n\t\t\tIpRanges: opentelekomcloud.IdentityAclV3IpRangeArray{\n\t\t\t\t&opentelekomcloud.IdentityAclV3IpRangeArgs{\n\t\t\t\t\tRange:       pulumi.String(\"172.16.0.0-172.16.255.255\"),\n\t\t\t\t\tDescription: pulumi.String(\"This is a basic ip range for console access\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tIpCidrs: opentelekomcloud.IdentityAclV3IpCidrArray{\n\t\t\t\t&opentelekomcloud.IdentityAclV3IpCidrArgs{\n\t\t\t\t\tCidr:        pulumi.String(\"192.168.0.1/32\"),\n\t\t\t\t\tDescription: pulumi.String(\"This is a basic ip address for console access\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tIpv6Ranges: opentelekomcloud.IdentityAclV3Ipv6RangeArray{\n\t\t\t\t&opentelekomcloud.IdentityAclV3Ipv6RangeArgs{\n\t\t\t\t\tRange:       pulumi.String(\"0000:0000:0000:0000:0000:0000:0000:0000-FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF\"),\n\t\t\t\t\tDescription: pulumi.String(\"This is a basic ipv6 range for console access\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tIpv6Cidrs: opentelekomcloud.IdentityAclV3Ipv6CidrArray{\n\t\t\t\t&opentelekomcloud.IdentityAclV3Ipv6CidrArgs{\n\t\t\t\t\tCidr:        pulumi.String(\"0000:0000:0000:0000:0000:0000:0000:0000/100\"),\n\t\t\t\t\tDescription: pulumi.String(\"This is a basic ipv6 address for console access\"),\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.opentelekomcloud.IdentityAclV3;\nimport com.pulumi.opentelekomcloud.IdentityAclV3Args;\nimport com.pulumi.opentelekomcloud.inputs.IdentityAclV3IpRangeArgs;\nimport com.pulumi.opentelekomcloud.inputs.IdentityAclV3IpCidrArgs;\nimport com.pulumi.opentelekomcloud.inputs.IdentityAclV3Ipv6RangeArgs;\nimport com.pulumi.opentelekomcloud.inputs.IdentityAclV3Ipv6CidrArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var acl = new IdentityAclV3(\"acl\", IdentityAclV3Args.builder()\n            .type(\"console\")\n            .ipRanges(IdentityAclV3IpRangeArgs.builder()\n                .range(\"172.16.0.0-172.16.255.255\")\n                .description(\"This is a basic ip range for console access\")\n                .build())\n            .ipCidrs(IdentityAclV3IpCidrArgs.builder()\n                .cidr(\"192.168.0.1/32\")\n                .description(\"This is a basic ip address for console access\")\n                .build())\n            .ipv6Ranges(IdentityAclV3Ipv6RangeArgs.builder()\n                .range(\"0000:0000:0000:0000:0000:0000:0000:0000-FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF\")\n                .description(\"This is a basic ipv6 range for console access\")\n                .build())\n            .ipv6Cidrs(IdentityAclV3Ipv6CidrArgs.builder()\n                .cidr(\"0000:0000:0000:0000:0000:0000:0000:0000/100\")\n                .description(\"This is a basic ipv6 address for console access\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  acl:\n    type: opentelekomcloud:IdentityAclV3\n    properties:\n      type: console\n      ipRanges:\n        - range: 172.16.0.0-172.16.255.255\n          description: This is a basic ip range for console access\n      ipCidrs:\n        - cidr: 192.168.0.1/32\n          description: This is a basic ip address for console access\n      ipv6Ranges:\n        - range: 0000:0000:0000:0000:0000:0000:0000:0000-FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF\n          description: This is a basic ipv6 range for console access\n      ipv6Cidrs:\n        - cidr: 0000:0000:0000:0000:0000:0000:0000:0000/100\n          description: This is a basic ipv6 address for console access\n```\n<!--End PulumiCodeChooser -->\n\n### ACL through API\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst acl = new opentelekomcloud.IdentityAclV3(\"acl\", {\n    type: \"api\",\n    ipCidrs: [{\n        cidr: \"159.138.39.192/32\",\n        description: \"This is a test ip address\",\n    }],\n    ipRanges: [{\n        range: \"0.0.0.0-255.255.255.0\",\n        description: \"This is a test ip range\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nacl = opentelekomcloud.IdentityAclV3(\"acl\",\n    type=\"api\",\n    ip_cidrs=[{\n        \"cidr\": \"159.138.39.192/32\",\n        \"description\": \"This is a test ip address\",\n    }],\n    ip_ranges=[{\n        \"range\": \"0.0.0.0-255.255.255.0\",\n        \"description\": \"This is a test ip range\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var acl = new Opentelekomcloud.IdentityAclV3(\"acl\", new()\n    {\n        Type = \"api\",\n        IpCidrs = new[]\n        {\n            new Opentelekomcloud.Inputs.IdentityAclV3IpCidrArgs\n            {\n                Cidr = \"159.138.39.192/32\",\n                Description = \"This is a test ip address\",\n            },\n        },\n        IpRanges = new[]\n        {\n            new Opentelekomcloud.Inputs.IdentityAclV3IpRangeArgs\n            {\n                Range = \"0.0.0.0-255.255.255.0\",\n                Description = \"This is a test ip range\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewIdentityAclV3(ctx, \"acl\", &opentelekomcloud.IdentityAclV3Args{\n\t\t\tType: pulumi.String(\"api\"),\n\t\t\tIpCidrs: opentelekomcloud.IdentityAclV3IpCidrArray{\n\t\t\t\t&opentelekomcloud.IdentityAclV3IpCidrArgs{\n\t\t\t\t\tCidr:        pulumi.String(\"159.138.39.192/32\"),\n\t\t\t\t\tDescription: pulumi.String(\"This is a test ip address\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tIpRanges: opentelekomcloud.IdentityAclV3IpRangeArray{\n\t\t\t\t&opentelekomcloud.IdentityAclV3IpRangeArgs{\n\t\t\t\t\tRange:       pulumi.String(\"0.0.0.0-255.255.255.0\"),\n\t\t\t\t\tDescription: pulumi.String(\"This is a test ip range\"),\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.opentelekomcloud.IdentityAclV3;\nimport com.pulumi.opentelekomcloud.IdentityAclV3Args;\nimport com.pulumi.opentelekomcloud.inputs.IdentityAclV3IpCidrArgs;\nimport com.pulumi.opentelekomcloud.inputs.IdentityAclV3IpRangeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var acl = new IdentityAclV3(\"acl\", IdentityAclV3Args.builder()\n            .type(\"api\")\n            .ipCidrs(IdentityAclV3IpCidrArgs.builder()\n                .cidr(\"159.138.39.192/32\")\n                .description(\"This is a test ip address\")\n                .build())\n            .ipRanges(IdentityAclV3IpRangeArgs.builder()\n                .range(\"0.0.0.0-255.255.255.0\")\n                .description(\"This is a test ip range\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  acl:\n    type: opentelekomcloud:IdentityAclV3\n    properties:\n      type: api\n      ipCidrs:\n        - cidr: 159.138.39.192/32\n          description: This is a test ip address\n      ipRanges:\n        - range: 0.0.0.0-255.255.255.0\n          description: This is a test ip range\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"identityAclV3Id":{"description":"The ID of identity ACL.\n","type":"string"},"ipCidrs":{"description":"Specifies the IPv4 CIDR blocks from which console access or api access is allowed. The <span pulumi-lang-nodejs=\"`ipCidrs`\" pulumi-lang-dotnet=\"`IpCidrs`\" pulumi-lang-go=\"`ipCidrs`\" pulumi-lang-python=\"`ip_cidrs`\" pulumi-lang-yaml=\"`ipCidrs`\" pulumi-lang-java=\"`ipCidrs`\">`ip_cidrs`</span> cannot repeat. At least one of the two, <span pulumi-lang-nodejs=\"`ipCidrs`\" pulumi-lang-dotnet=\"`IpCidrs`\" pulumi-lang-go=\"`ipCidrs`\" pulumi-lang-python=\"`ip_cidrs`\" pulumi-lang-yaml=\"`ipCidrs`\" pulumi-lang-java=\"`ipCidrs`\">`ip_cidrs`</span> and <span pulumi-lang-nodejs=\"`ipRanges`\" pulumi-lang-dotnet=\"`IpRanges`\" pulumi-lang-go=\"`ipRanges`\" pulumi-lang-python=\"`ip_ranges`\" pulumi-lang-yaml=\"`ipRanges`\" pulumi-lang-java=\"`ipRanges`\">`ip_ranges`</span>, must be specified. Both cannot be empty.\nThe structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FIdentityAclV3IpCidr:IdentityAclV3IpCidr"},"type":"array"},"ipRanges":{"description":"Specifies the IP address ranges from which console access or api access is allowed. The <span pulumi-lang-nodejs=\"`ipRanges`\" pulumi-lang-dotnet=\"`IpRanges`\" pulumi-lang-go=\"`ipRanges`\" pulumi-lang-python=\"`ip_ranges`\" pulumi-lang-yaml=\"`ipRanges`\" pulumi-lang-java=\"`ipRanges`\">`ip_ranges`</span> cannot repeat. At least one of the two, <span pulumi-lang-nodejs=\"`ipCidrs`\" pulumi-lang-dotnet=\"`IpCidrs`\" pulumi-lang-go=\"`ipCidrs`\" pulumi-lang-python=\"`ip_cidrs`\" pulumi-lang-yaml=\"`ipCidrs`\" pulumi-lang-java=\"`ipCidrs`\">`ip_cidrs`</span> and <span pulumi-lang-nodejs=\"`ipRanges`\" pulumi-lang-dotnet=\"`IpRanges`\" pulumi-lang-go=\"`ipRanges`\" pulumi-lang-python=\"`ip_ranges`\" pulumi-lang-yaml=\"`ipRanges`\" pulumi-lang-java=\"`ipRanges`\">`ip_ranges`</span>, must be specified. Both cannot be empty. \nThe structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FIdentityAclV3IpRange:IdentityAclV3IpRange"},"type":"array"},"ipv6Cidrs":{"description":"Specifies the IPv6 CIDR blocks from which console access or api access is allowed. The <span pulumi-lang-nodejs=\"`ipv6Cidrs`\" pulumi-lang-dotnet=\"`Ipv6Cidrs`\" pulumi-lang-go=\"`ipv6Cidrs`\" pulumi-lang-python=\"`ipv6_cidrs`\" pulumi-lang-yaml=\"`ipv6Cidrs`\" pulumi-lang-java=\"`ipv6Cidrs`\">`ipv6_cidrs`</span> cannot repeat. The <span pulumi-lang-nodejs=\"`ipv6Cidrs`\" pulumi-lang-dotnet=\"`Ipv6Cidrs`\" pulumi-lang-go=\"`ipv6Cidrs`\" pulumi-lang-python=\"`ipv6_cidrs`\" pulumi-lang-yaml=\"`ipv6Cidrs`\" pulumi-lang-java=\"`ipv6Cidrs`\">`ipv6_cidrs`</span> can only be used when <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is <span pulumi-lang-nodejs=\"`console`\" pulumi-lang-dotnet=\"`Console`\" pulumi-lang-go=\"`console`\" pulumi-lang-python=\"`console`\" pulumi-lang-yaml=\"`console`\" pulumi-lang-java=\"`console`\">`console`</span>. At least one of the two, <span pulumi-lang-nodejs=\"`ipv6Cidrs`\" pulumi-lang-dotnet=\"`Ipv6Cidrs`\" pulumi-lang-go=\"`ipv6Cidrs`\" pulumi-lang-python=\"`ipv6_cidrs`\" pulumi-lang-yaml=\"`ipv6Cidrs`\" pulumi-lang-java=\"`ipv6Cidrs`\">`ipv6_cidrs`</span> and <span pulumi-lang-nodejs=\"`ipv6Ranges`\" pulumi-lang-dotnet=\"`Ipv6Ranges`\" pulumi-lang-go=\"`ipv6Ranges`\" pulumi-lang-python=\"`ipv6_ranges`\" pulumi-lang-yaml=\"`ipv6Ranges`\" pulumi-lang-java=\"`ipv6Ranges`\">`ipv6_ranges`</span>, must be specified. Both cannot be empty. \nThe structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FIdentityAclV3Ipv6Cidr:IdentityAclV3Ipv6Cidr"},"type":"array"},"ipv6Ranges":{"description":"Specifies the IPv6 address ranges from which console access or api access is allowed. The <span pulumi-lang-nodejs=\"`ipv6Ranges`\" pulumi-lang-dotnet=\"`Ipv6Ranges`\" pulumi-lang-go=\"`ipv6Ranges`\" pulumi-lang-python=\"`ipv6_ranges`\" pulumi-lang-yaml=\"`ipv6Ranges`\" pulumi-lang-java=\"`ipv6Ranges`\">`ipv6_ranges`</span> cannot repeat. The <span pulumi-lang-nodejs=\"`ipv6Ranges`\" pulumi-lang-dotnet=\"`Ipv6Ranges`\" pulumi-lang-go=\"`ipv6Ranges`\" pulumi-lang-python=\"`ipv6_ranges`\" pulumi-lang-yaml=\"`ipv6Ranges`\" pulumi-lang-java=\"`ipv6Ranges`\">`ipv6_ranges`</span> can only be used when <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is <span pulumi-lang-nodejs=\"`console`\" pulumi-lang-dotnet=\"`Console`\" pulumi-lang-go=\"`console`\" pulumi-lang-python=\"`console`\" pulumi-lang-yaml=\"`console`\" pulumi-lang-java=\"`console`\">`console`</span>. At least one of the two, <span pulumi-lang-nodejs=\"`ipv6Cidrs`\" pulumi-lang-dotnet=\"`Ipv6Cidrs`\" pulumi-lang-go=\"`ipv6Cidrs`\" pulumi-lang-python=\"`ipv6_cidrs`\" pulumi-lang-yaml=\"`ipv6Cidrs`\" pulumi-lang-java=\"`ipv6Cidrs`\">`ipv6_cidrs`</span> and <span pulumi-lang-nodejs=\"`ipv6Ranges`\" pulumi-lang-dotnet=\"`Ipv6Ranges`\" pulumi-lang-go=\"`ipv6Ranges`\" pulumi-lang-python=\"`ipv6_ranges`\" pulumi-lang-yaml=\"`ipv6Ranges`\" pulumi-lang-java=\"`ipv6Ranges`\">`ipv6_ranges`</span>, must be specified. Both cannot be empty. \nThe structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FIdentityAclV3Ipv6Range:IdentityAclV3Ipv6Range"},"type":"array"},"type":{"description":"Specifies the ACL is created through the Console or API.\nValid values are **console** and **api**. Changing this parameter will create a new ACL.\n","type":"string"}},"properties":{"identityAclV3Id":{"description":"The ID of identity ACL.\n","type":"string"},"ipCidrs":{"description":"Specifies the IPv4 CIDR blocks from which console access or api access is allowed. The <span pulumi-lang-nodejs=\"`ipCidrs`\" pulumi-lang-dotnet=\"`IpCidrs`\" pulumi-lang-go=\"`ipCidrs`\" pulumi-lang-python=\"`ip_cidrs`\" pulumi-lang-yaml=\"`ipCidrs`\" pulumi-lang-java=\"`ipCidrs`\">`ip_cidrs`</span> cannot repeat. At least one of the two, <span pulumi-lang-nodejs=\"`ipCidrs`\" pulumi-lang-dotnet=\"`IpCidrs`\" pulumi-lang-go=\"`ipCidrs`\" pulumi-lang-python=\"`ip_cidrs`\" pulumi-lang-yaml=\"`ipCidrs`\" pulumi-lang-java=\"`ipCidrs`\">`ip_cidrs`</span> and <span pulumi-lang-nodejs=\"`ipRanges`\" pulumi-lang-dotnet=\"`IpRanges`\" pulumi-lang-go=\"`ipRanges`\" pulumi-lang-python=\"`ip_ranges`\" pulumi-lang-yaml=\"`ipRanges`\" pulumi-lang-java=\"`ipRanges`\">`ip_ranges`</span>, must be specified. Both cannot be empty.\nThe structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FIdentityAclV3IpCidr:IdentityAclV3IpCidr"},"type":"array"},"ipRanges":{"description":"Specifies the IP address ranges from which console access or api access is allowed. The <span pulumi-lang-nodejs=\"`ipRanges`\" pulumi-lang-dotnet=\"`IpRanges`\" pulumi-lang-go=\"`ipRanges`\" pulumi-lang-python=\"`ip_ranges`\" pulumi-lang-yaml=\"`ipRanges`\" pulumi-lang-java=\"`ipRanges`\">`ip_ranges`</span> cannot repeat. At least one of the two, <span pulumi-lang-nodejs=\"`ipCidrs`\" pulumi-lang-dotnet=\"`IpCidrs`\" pulumi-lang-go=\"`ipCidrs`\" pulumi-lang-python=\"`ip_cidrs`\" pulumi-lang-yaml=\"`ipCidrs`\" pulumi-lang-java=\"`ipCidrs`\">`ip_cidrs`</span> and <span pulumi-lang-nodejs=\"`ipRanges`\" pulumi-lang-dotnet=\"`IpRanges`\" pulumi-lang-go=\"`ipRanges`\" pulumi-lang-python=\"`ip_ranges`\" pulumi-lang-yaml=\"`ipRanges`\" pulumi-lang-java=\"`ipRanges`\">`ip_ranges`</span>, must be specified. Both cannot be empty. \nThe structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FIdentityAclV3IpRange:IdentityAclV3IpRange"},"type":"array"},"ipv6Cidrs":{"description":"Specifies the IPv6 CIDR blocks from which console access or api access is allowed. The <span pulumi-lang-nodejs=\"`ipv6Cidrs`\" pulumi-lang-dotnet=\"`Ipv6Cidrs`\" pulumi-lang-go=\"`ipv6Cidrs`\" pulumi-lang-python=\"`ipv6_cidrs`\" pulumi-lang-yaml=\"`ipv6Cidrs`\" pulumi-lang-java=\"`ipv6Cidrs`\">`ipv6_cidrs`</span> cannot repeat. The <span pulumi-lang-nodejs=\"`ipv6Cidrs`\" pulumi-lang-dotnet=\"`Ipv6Cidrs`\" pulumi-lang-go=\"`ipv6Cidrs`\" pulumi-lang-python=\"`ipv6_cidrs`\" pulumi-lang-yaml=\"`ipv6Cidrs`\" pulumi-lang-java=\"`ipv6Cidrs`\">`ipv6_cidrs`</span> can only be used when <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is <span pulumi-lang-nodejs=\"`console`\" pulumi-lang-dotnet=\"`Console`\" pulumi-lang-go=\"`console`\" pulumi-lang-python=\"`console`\" pulumi-lang-yaml=\"`console`\" pulumi-lang-java=\"`console`\">`console`</span>. At least one of the two, <span pulumi-lang-nodejs=\"`ipv6Cidrs`\" pulumi-lang-dotnet=\"`Ipv6Cidrs`\" pulumi-lang-go=\"`ipv6Cidrs`\" pulumi-lang-python=\"`ipv6_cidrs`\" pulumi-lang-yaml=\"`ipv6Cidrs`\" pulumi-lang-java=\"`ipv6Cidrs`\">`ipv6_cidrs`</span> and <span pulumi-lang-nodejs=\"`ipv6Ranges`\" pulumi-lang-dotnet=\"`Ipv6Ranges`\" pulumi-lang-go=\"`ipv6Ranges`\" pulumi-lang-python=\"`ipv6_ranges`\" pulumi-lang-yaml=\"`ipv6Ranges`\" pulumi-lang-java=\"`ipv6Ranges`\">`ipv6_ranges`</span>, must be specified. Both cannot be empty. \nThe structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FIdentityAclV3Ipv6Cidr:IdentityAclV3Ipv6Cidr"},"type":"array"},"ipv6Ranges":{"description":"Specifies the IPv6 address ranges from which console access or api access is allowed. The <span pulumi-lang-nodejs=\"`ipv6Ranges`\" pulumi-lang-dotnet=\"`Ipv6Ranges`\" pulumi-lang-go=\"`ipv6Ranges`\" pulumi-lang-python=\"`ipv6_ranges`\" pulumi-lang-yaml=\"`ipv6Ranges`\" pulumi-lang-java=\"`ipv6Ranges`\">`ipv6_ranges`</span> cannot repeat. The <span pulumi-lang-nodejs=\"`ipv6Ranges`\" pulumi-lang-dotnet=\"`Ipv6Ranges`\" pulumi-lang-go=\"`ipv6Ranges`\" pulumi-lang-python=\"`ipv6_ranges`\" pulumi-lang-yaml=\"`ipv6Ranges`\" pulumi-lang-java=\"`ipv6Ranges`\">`ipv6_ranges`</span> can only be used when <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is <span pulumi-lang-nodejs=\"`console`\" pulumi-lang-dotnet=\"`Console`\" pulumi-lang-go=\"`console`\" pulumi-lang-python=\"`console`\" pulumi-lang-yaml=\"`console`\" pulumi-lang-java=\"`console`\">`console`</span>. At least one of the two, <span pulumi-lang-nodejs=\"`ipv6Cidrs`\" pulumi-lang-dotnet=\"`Ipv6Cidrs`\" pulumi-lang-go=\"`ipv6Cidrs`\" pulumi-lang-python=\"`ipv6_cidrs`\" pulumi-lang-yaml=\"`ipv6Cidrs`\" pulumi-lang-java=\"`ipv6Cidrs`\">`ipv6_cidrs`</span> and <span pulumi-lang-nodejs=\"`ipv6Ranges`\" pulumi-lang-dotnet=\"`Ipv6Ranges`\" pulumi-lang-go=\"`ipv6Ranges`\" pulumi-lang-python=\"`ipv6_ranges`\" pulumi-lang-yaml=\"`ipv6Ranges`\" pulumi-lang-java=\"`ipv6Ranges`\">`ipv6_ranges`</span>, must be specified. Both cannot be empty. \nThe structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FIdentityAclV3Ipv6Range:IdentityAclV3Ipv6Range"},"type":"array"},"type":{"description":"Specifies the ACL is created through the Console or API.\nValid values are **console** and **api**. Changing this parameter will create a new ACL.\n","type":"string"}},"required":["identityAclV3Id","type"],"requiredInputs":["type"],"stateInputs":{"description":"Input properties used for looking up and filtering IdentityAclV3 resources.\n","properties":{"identityAclV3Id":{"description":"The ID of identity ACL.\n","type":"string"},"ipCidrs":{"description":"Specifies the IPv4 CIDR blocks from which console access or api access is allowed. The <span pulumi-lang-nodejs=\"`ipCidrs`\" pulumi-lang-dotnet=\"`IpCidrs`\" pulumi-lang-go=\"`ipCidrs`\" pulumi-lang-python=\"`ip_cidrs`\" pulumi-lang-yaml=\"`ipCidrs`\" pulumi-lang-java=\"`ipCidrs`\">`ip_cidrs`</span> cannot repeat. At least one of the two, <span pulumi-lang-nodejs=\"`ipCidrs`\" pulumi-lang-dotnet=\"`IpCidrs`\" pulumi-lang-go=\"`ipCidrs`\" pulumi-lang-python=\"`ip_cidrs`\" pulumi-lang-yaml=\"`ipCidrs`\" pulumi-lang-java=\"`ipCidrs`\">`ip_cidrs`</span> and <span pulumi-lang-nodejs=\"`ipRanges`\" pulumi-lang-dotnet=\"`IpRanges`\" pulumi-lang-go=\"`ipRanges`\" pulumi-lang-python=\"`ip_ranges`\" pulumi-lang-yaml=\"`ipRanges`\" pulumi-lang-java=\"`ipRanges`\">`ip_ranges`</span>, must be specified. Both cannot be empty.\nThe structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FIdentityAclV3IpCidr:IdentityAclV3IpCidr"},"type":"array"},"ipRanges":{"description":"Specifies the IP address ranges from which console access or api access is allowed. The <span pulumi-lang-nodejs=\"`ipRanges`\" pulumi-lang-dotnet=\"`IpRanges`\" pulumi-lang-go=\"`ipRanges`\" pulumi-lang-python=\"`ip_ranges`\" pulumi-lang-yaml=\"`ipRanges`\" pulumi-lang-java=\"`ipRanges`\">`ip_ranges`</span> cannot repeat. At least one of the two, <span pulumi-lang-nodejs=\"`ipCidrs`\" pulumi-lang-dotnet=\"`IpCidrs`\" pulumi-lang-go=\"`ipCidrs`\" pulumi-lang-python=\"`ip_cidrs`\" pulumi-lang-yaml=\"`ipCidrs`\" pulumi-lang-java=\"`ipCidrs`\">`ip_cidrs`</span> and <span pulumi-lang-nodejs=\"`ipRanges`\" pulumi-lang-dotnet=\"`IpRanges`\" pulumi-lang-go=\"`ipRanges`\" pulumi-lang-python=\"`ip_ranges`\" pulumi-lang-yaml=\"`ipRanges`\" pulumi-lang-java=\"`ipRanges`\">`ip_ranges`</span>, must be specified. Both cannot be empty. \nThe structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FIdentityAclV3IpRange:IdentityAclV3IpRange"},"type":"array"},"ipv6Cidrs":{"description":"Specifies the IPv6 CIDR blocks from which console access or api access is allowed. The <span pulumi-lang-nodejs=\"`ipv6Cidrs`\" pulumi-lang-dotnet=\"`Ipv6Cidrs`\" pulumi-lang-go=\"`ipv6Cidrs`\" pulumi-lang-python=\"`ipv6_cidrs`\" pulumi-lang-yaml=\"`ipv6Cidrs`\" pulumi-lang-java=\"`ipv6Cidrs`\">`ipv6_cidrs`</span> cannot repeat. The <span pulumi-lang-nodejs=\"`ipv6Cidrs`\" pulumi-lang-dotnet=\"`Ipv6Cidrs`\" pulumi-lang-go=\"`ipv6Cidrs`\" pulumi-lang-python=\"`ipv6_cidrs`\" pulumi-lang-yaml=\"`ipv6Cidrs`\" pulumi-lang-java=\"`ipv6Cidrs`\">`ipv6_cidrs`</span> can only be used when <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is <span pulumi-lang-nodejs=\"`console`\" pulumi-lang-dotnet=\"`Console`\" pulumi-lang-go=\"`console`\" pulumi-lang-python=\"`console`\" pulumi-lang-yaml=\"`console`\" pulumi-lang-java=\"`console`\">`console`</span>. At least one of the two, <span pulumi-lang-nodejs=\"`ipv6Cidrs`\" pulumi-lang-dotnet=\"`Ipv6Cidrs`\" pulumi-lang-go=\"`ipv6Cidrs`\" pulumi-lang-python=\"`ipv6_cidrs`\" pulumi-lang-yaml=\"`ipv6Cidrs`\" pulumi-lang-java=\"`ipv6Cidrs`\">`ipv6_cidrs`</span> and <span pulumi-lang-nodejs=\"`ipv6Ranges`\" pulumi-lang-dotnet=\"`Ipv6Ranges`\" pulumi-lang-go=\"`ipv6Ranges`\" pulumi-lang-python=\"`ipv6_ranges`\" pulumi-lang-yaml=\"`ipv6Ranges`\" pulumi-lang-java=\"`ipv6Ranges`\">`ipv6_ranges`</span>, must be specified. Both cannot be empty. \nThe structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FIdentityAclV3Ipv6Cidr:IdentityAclV3Ipv6Cidr"},"type":"array"},"ipv6Ranges":{"description":"Specifies the IPv6 address ranges from which console access or api access is allowed. The <span pulumi-lang-nodejs=\"`ipv6Ranges`\" pulumi-lang-dotnet=\"`Ipv6Ranges`\" pulumi-lang-go=\"`ipv6Ranges`\" pulumi-lang-python=\"`ipv6_ranges`\" pulumi-lang-yaml=\"`ipv6Ranges`\" pulumi-lang-java=\"`ipv6Ranges`\">`ipv6_ranges`</span> cannot repeat. The <span pulumi-lang-nodejs=\"`ipv6Ranges`\" pulumi-lang-dotnet=\"`Ipv6Ranges`\" pulumi-lang-go=\"`ipv6Ranges`\" pulumi-lang-python=\"`ipv6_ranges`\" pulumi-lang-yaml=\"`ipv6Ranges`\" pulumi-lang-java=\"`ipv6Ranges`\">`ipv6_ranges`</span> can only be used when <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is <span pulumi-lang-nodejs=\"`console`\" pulumi-lang-dotnet=\"`Console`\" pulumi-lang-go=\"`console`\" pulumi-lang-python=\"`console`\" pulumi-lang-yaml=\"`console`\" pulumi-lang-java=\"`console`\">`console`</span>. At least one of the two, <span pulumi-lang-nodejs=\"`ipv6Cidrs`\" pulumi-lang-dotnet=\"`Ipv6Cidrs`\" pulumi-lang-go=\"`ipv6Cidrs`\" pulumi-lang-python=\"`ipv6_cidrs`\" pulumi-lang-yaml=\"`ipv6Cidrs`\" pulumi-lang-java=\"`ipv6Cidrs`\">`ipv6_cidrs`</span> and <span pulumi-lang-nodejs=\"`ipv6Ranges`\" pulumi-lang-dotnet=\"`Ipv6Ranges`\" pulumi-lang-go=\"`ipv6Ranges`\" pulumi-lang-python=\"`ipv6_ranges`\" pulumi-lang-yaml=\"`ipv6Ranges`\" pulumi-lang-java=\"`ipv6Ranges`\">`ipv6_ranges`</span>, must be specified. Both cannot be empty. \nThe structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FIdentityAclV3Ipv6Range:IdentityAclV3Ipv6Range"},"type":"array"},"type":{"description":"Specifies the ACL is created through the Console or API.\nValid values are **console** and **api**. Changing this parameter will create a new ACL.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/identityAgencyV3:IdentityAgencyV3":{"description":"Up-to-date reference of API arguments for IAM agency you can get at\n[documentation portal](https://docs.otc.t-systems.com/identity-access-management/api-ref/apis/agency_management)\n\nManages an agency resource within OpenTelekomcloud.\n\n> **Note:** You _must_ have `Security Administrator` privileges in your OpenTelekomCloud\ncloud to use this resource. Please refer to [User Management Model](https://docs.otc.t-systems.com/en-us/usermanual/iam/iam_01_0034.html).\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst agency = new opentelekomcloud.IdentityAgencyV3(\"agency\", {\n    name: \"test_agency\",\n    description: \"test agency\",\n    delegatedDomainName: \"***\",\n    projectRoles: [\n        {\n            project: \"eu-de\",\n            roles: [\n                \"KMS Administrator\",\n                \"CCE ReadOnlyAccess\",\n            ],\n        },\n        {\n            allProjects: true,\n            roles: [\n                \"CES Administrator\",\n                \"ER ReadOnlyAccess\",\n            ],\n        },\n    ],\n    domainRoles: [\"Anti-DDoS Administrator\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nagency = opentelekomcloud.IdentityAgencyV3(\"agency\",\n    name=\"test_agency\",\n    description=\"test agency\",\n    delegated_domain_name=\"***\",\n    project_roles=[\n        {\n            \"project\": \"eu-de\",\n            \"roles\": [\n                \"KMS Administrator\",\n                \"CCE ReadOnlyAccess\",\n            ],\n        },\n        {\n            \"all_projects\": True,\n            \"roles\": [\n                \"CES Administrator\",\n                \"ER ReadOnlyAccess\",\n            ],\n        },\n    ],\n    domain_roles=[\"Anti-DDoS Administrator\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var agency = new Opentelekomcloud.IdentityAgencyV3(\"agency\", new()\n    {\n        Name = \"test_agency\",\n        Description = \"test agency\",\n        DelegatedDomainName = \"***\",\n        ProjectRoles = new[]\n        {\n            new Opentelekomcloud.Inputs.IdentityAgencyV3ProjectRoleArgs\n            {\n                Project = \"eu-de\",\n                Roles = new[]\n                {\n                    \"KMS Administrator\",\n                    \"CCE ReadOnlyAccess\",\n                },\n            },\n            new Opentelekomcloud.Inputs.IdentityAgencyV3ProjectRoleArgs\n            {\n                AllProjects = true,\n                Roles = new[]\n                {\n                    \"CES Administrator\",\n                    \"ER ReadOnlyAccess\",\n                },\n            },\n        },\n        DomainRoles = new[]\n        {\n            \"Anti-DDoS Administrator\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewIdentityAgencyV3(ctx, \"agency\", &opentelekomcloud.IdentityAgencyV3Args{\n\t\t\tName:                pulumi.String(\"test_agency\"),\n\t\t\tDescription:         pulumi.String(\"test agency\"),\n\t\t\tDelegatedDomainName: pulumi.String(\"***\"),\n\t\t\tProjectRoles: opentelekomcloud.IdentityAgencyV3ProjectRoleArray{\n\t\t\t\t&opentelekomcloud.IdentityAgencyV3ProjectRoleArgs{\n\t\t\t\t\tProject: pulumi.String(\"eu-de\"),\n\t\t\t\t\tRoles: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"KMS Administrator\"),\n\t\t\t\t\t\tpulumi.String(\"CCE ReadOnlyAccess\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.IdentityAgencyV3ProjectRoleArgs{\n\t\t\t\t\tAllProjects: pulumi.Bool(true),\n\t\t\t\t\tRoles: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"CES Administrator\"),\n\t\t\t\t\t\tpulumi.String(\"ER ReadOnlyAccess\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDomainRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Anti-DDoS Administrator\"),\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.opentelekomcloud.IdentityAgencyV3;\nimport com.pulumi.opentelekomcloud.IdentityAgencyV3Args;\nimport com.pulumi.opentelekomcloud.inputs.IdentityAgencyV3ProjectRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var agency = new IdentityAgencyV3(\"agency\", IdentityAgencyV3Args.builder()\n            .name(\"test_agency\")\n            .description(\"test agency\")\n            .delegatedDomainName(\"***\")\n            .projectRoles(            \n                IdentityAgencyV3ProjectRoleArgs.builder()\n                    .project(\"eu-de\")\n                    .roles(                    \n                        \"KMS Administrator\",\n                        \"CCE ReadOnlyAccess\")\n                    .build(),\n                IdentityAgencyV3ProjectRoleArgs.builder()\n                    .allProjects(true)\n                    .roles(                    \n                        \"CES Administrator\",\n                        \"ER ReadOnlyAccess\")\n                    .build())\n            .domainRoles(\"Anti-DDoS Administrator\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  agency:\n    type: opentelekomcloud:IdentityAgencyV3\n    properties:\n      name: test_agency\n      description: test agency\n      delegatedDomainName: '***'\n      projectRoles:\n        - project: eu-de\n          roles:\n            - KMS Administrator\n            - CCE ReadOnlyAccess\n        - allProjects: true\n          roles:\n            - CES Administrator\n            - ER ReadOnlyAccess\n      domainRoles:\n        - Anti-DDoS Administrator\n```\n<!--End PulumiCodeChooser -->\n\n> **Note**: It can not set <span pulumi-lang-nodejs=\"`tenantName`\" pulumi-lang-dotnet=\"`TenantName`\" pulumi-lang-go=\"`tenantName`\" pulumi-lang-python=\"`tenant_name`\" pulumi-lang-yaml=\"`tenantName`\" pulumi-lang-java=\"`tenantName`\">`tenant_name`</span> in `provider \"opentelekomcloud\"` when using this resource.\n\n## Import\n\nAgencies can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/identityAgencyV3:IdentityAgencyV3 this 1bc93b8b-37a4-4b50-92cc-daa4c89d4e4c\n```\n\n","inputProperties":{"delegatedDomainName":{"description":"The name of delegated domain.\n","type":"string"},"description":{"description":"Provides supplementary information about the\nagency. The value is a string of 0 to 255 characters.\n","type":"string"},"domainRoles":{"description":"An array of role names which stand for the\npermissions to be granted to agency on domain.\n","items":{"type":"string"},"type":"array"},"identityAgencyV3Id":{"description":"The agency ID.\n","type":"string"},"name":{"description":"The name of agency. The name is a string of 1 to 64\ncharacters.\n","type":"string"},"projectRoles":{"description":"An array of roles and projects which are used to\ngrant permissions to agency on project. The structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FIdentityAgencyV3ProjectRole:IdentityAgencyV3ProjectRole"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FIdentityAgencyV3Timeouts:IdentityAgencyV3Timeouts"}},"properties":{"createTime":{"description":"The time when the agency was created.\n","type":"string"},"delegatedDomainName":{"description":"The name of delegated domain.\n","type":"string"},"description":{"description":"Provides supplementary information about the\nagency. The value is a string of 0 to 255 characters.\n","type":"string"},"domainRoles":{"description":"An array of role names which stand for the\npermissions to be granted to agency on domain.\n","items":{"type":"string"},"type":"array"},"duration":{"description":"Validity period of an agency. The default value is null,\nindicating that the agency is permanently valid.\n","type":"string"},"expireTime":{"description":"The expiration time of agency\n","type":"string"},"identityAgencyV3Id":{"description":"The agency ID.\n","type":"string"},"name":{"description":"The name of agency. The name is a string of 1 to 64\ncharacters.\n","type":"string"},"projectRoles":{"description":"An array of roles and projects which are used to\ngrant permissions to agency on project. The structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FIdentityAgencyV3ProjectRole:IdentityAgencyV3ProjectRole"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FIdentityAgencyV3Timeouts:IdentityAgencyV3Timeouts"}},"required":["createTime","delegatedDomainName","description","duration","expireTime","identityAgencyV3Id","name"],"requiredInputs":["delegatedDomainName"],"stateInputs":{"description":"Input properties used for looking up and filtering IdentityAgencyV3 resources.\n","properties":{"createTime":{"description":"The time when the agency was created.\n","type":"string"},"delegatedDomainName":{"description":"The name of delegated domain.\n","type":"string"},"description":{"description":"Provides supplementary information about the\nagency. The value is a string of 0 to 255 characters.\n","type":"string"},"domainRoles":{"description":"An array of role names which stand for the\npermissions to be granted to agency on domain.\n","items":{"type":"string"},"type":"array"},"duration":{"description":"Validity period of an agency. The default value is null,\nindicating that the agency is permanently valid.\n","type":"string"},"expireTime":{"description":"The expiration time of agency\n","type":"string"},"identityAgencyV3Id":{"description":"The agency ID.\n","type":"string"},"name":{"description":"The name of agency. The name is a string of 1 to 64\ncharacters.\n","type":"string"},"projectRoles":{"description":"An array of roles and projects which are used to\ngrant permissions to agency on project. The structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FIdentityAgencyV3ProjectRole:IdentityAgencyV3ProjectRole"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FIdentityAgencyV3Timeouts:IdentityAgencyV3Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/identityCredentialV3:IdentityCredentialV3":{"description":"Up-to-date reference of API arguments for IAM credential you can get at\n[documentation portal](https://docs.otc.t-systems.com/identity-access-management/api-ref/apis/access_key_management)\n\nManages permanent access key for an OpenTelekomCloud user.\n\n> **Note:** You _must_ have `Security Administrator` privileges in your OpenTelekomCloud\ncloud to use this resource for managing other users' credentials. Please refer to [User Management Model](https://docs.otc.t-systems.com/en-us/usermanual/iam/iam_01_0034.html).\n\n## Example Usage\n\n### Create AK/SK for yourself\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst aksk = new opentelekomcloud.IdentityCredentialV3(\"aksk\", {});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\naksk = opentelekomcloud.IdentityCredentialV3(\"aksk\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var aksk = new Opentelekomcloud.IdentityCredentialV3(\"aksk\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewIdentityCredentialV3(ctx, \"aksk\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.IdentityCredentialV3;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var aksk = new IdentityCredentialV3(\"aksk\");\n\n    }\n}\n```\n```yaml\nresources:\n  aksk:\n    type: opentelekomcloud:IdentityCredentialV3\n```\n<!--End PulumiCodeChooser -->\n\n### Create user with AK/SK\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst user = new opentelekomcloud.IdentityUserV3(\"user\", {\n    name: \"user_1\",\n    password: \"password123!\",\n});\nconst aksk = new opentelekomcloud.IdentityCredentialV3(\"aksk\", {\n    userId: user.identityUserV3Id,\n    description: \"Created by administrator\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nuser = opentelekomcloud.IdentityUserV3(\"user\",\n    name=\"user_1\",\n    password=\"password123!\")\naksk = opentelekomcloud.IdentityCredentialV3(\"aksk\",\n    user_id=user.identity_user_v3_id,\n    description=\"Created by administrator\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var user = new Opentelekomcloud.IdentityUserV3(\"user\", new()\n    {\n        Name = \"user_1\",\n        Password = \"password123!\",\n    });\n\n    var aksk = new Opentelekomcloud.IdentityCredentialV3(\"aksk\", new()\n    {\n        UserId = user.IdentityUserV3Id,\n        Description = \"Created by administrator\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tuser, err := opentelekomcloud.NewIdentityUserV3(ctx, \"user\", &opentelekomcloud.IdentityUserV3Args{\n\t\t\tName:     pulumi.String(\"user_1\"),\n\t\t\tPassword: pulumi.String(\"password123!\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewIdentityCredentialV3(ctx, \"aksk\", &opentelekomcloud.IdentityCredentialV3Args{\n\t\t\tUserId:      user.IdentityUserV3Id,\n\t\t\tDescription: pulumi.String(\"Created by administrator\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.IdentityUserV3;\nimport com.pulumi.opentelekomcloud.IdentityUserV3Args;\nimport com.pulumi.opentelekomcloud.IdentityCredentialV3;\nimport com.pulumi.opentelekomcloud.IdentityCredentialV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var user = new IdentityUserV3(\"user\", IdentityUserV3Args.builder()\n            .name(\"user_1\")\n            .password(\"password123!\")\n            .build());\n\n        var aksk = new IdentityCredentialV3(\"aksk\", IdentityCredentialV3Args.builder()\n            .userId(user.identityUserV3Id())\n            .description(\"Created by administrator\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  user:\n    type: opentelekomcloud:IdentityUserV3\n    properties:\n      name: user_1\n      password: password123!\n  aksk:\n    type: opentelekomcloud:IdentityCredentialV3\n    properties:\n      userId: ${user.identityUserV3Id}\n      description: Created by administrator\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"description":{"description":"Description of the access key.\n","type":"string"},"identityCredentialV3Id":{"type":"string"},"pgpKey":{"description":"Either a base-64 encoded PGP public key, or a keybase username in the form\n`keybase:some_person_that_exists`. Changing this creates a new resource.\n","type":"string"},"status":{"description":"Status of the access key to be changed to. The value can be <span pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\">`active`</span> or <span pulumi-lang-nodejs=\"`inactive`\" pulumi-lang-dotnet=\"`Inactive`\" pulumi-lang-go=\"`inactive`\" pulumi-lang-python=\"`inactive`\" pulumi-lang-yaml=\"`inactive`\" pulumi-lang-java=\"`inactive`\">`inactive`</span>.\n","type":"string"},"userId":{"description":"IAM user ID. If not set, will create AK/SK for yourself.\n","type":"string"}},"properties":{"access":{"description":"Access key ID.\n","secret":true,"type":"string"},"createTime":{"description":"Time of the access key creation.\n","type":"string"},"description":{"description":"Description of the access key.\n","type":"string"},"identityCredentialV3Id":{"type":"string"},"keyFingerprint":{"type":"string"},"lastUseTime":{"description":"Time of the access key last usage.\n","type":"string"},"pgpKey":{"description":"Either a base-64 encoded PGP public key, or a keybase username in the form\n`keybase:some_person_that_exists`. Changing this creates a new resource.\n","type":"string"},"secret":{"secret":true,"type":"string"},"status":{"description":"Status of the access key to be changed to. The value can be <span pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\">`active`</span> or <span pulumi-lang-nodejs=\"`inactive`\" pulumi-lang-dotnet=\"`Inactive`\" pulumi-lang-go=\"`inactive`\" pulumi-lang-python=\"`inactive`\" pulumi-lang-yaml=\"`inactive`\" pulumi-lang-java=\"`inactive`\">`inactive`</span>.\n","type":"string"},"userId":{"description":"IAM user ID. If not set, will create AK/SK for yourself.\n","type":"string"}},"required":["access","createTime","identityCredentialV3Id","keyFingerprint","lastUseTime","secret","status","userId"],"stateInputs":{"description":"Input properties used for looking up and filtering IdentityCredentialV3 resources.\n","properties":{"access":{"description":"Access key ID.\n","secret":true,"type":"string"},"createTime":{"description":"Time of the access key creation.\n","type":"string"},"description":{"description":"Description of the access key.\n","type":"string"},"identityCredentialV3Id":{"type":"string"},"keyFingerprint":{"type":"string"},"lastUseTime":{"description":"Time of the access key last usage.\n","type":"string"},"pgpKey":{"description":"Either a base-64 encoded PGP public key, or a keybase username in the form\n`keybase:some_person_that_exists`. Changing this creates a new resource.\n","type":"string"},"secret":{"secret":true,"type":"string"},"status":{"description":"Status of the access key to be changed to. The value can be <span pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\">`active`</span> or <span pulumi-lang-nodejs=\"`inactive`\" pulumi-lang-dotnet=\"`Inactive`\" pulumi-lang-go=\"`inactive`\" pulumi-lang-python=\"`inactive`\" pulumi-lang-yaml=\"`inactive`\" pulumi-lang-java=\"`inactive`\">`inactive`</span>.\n","type":"string"},"userId":{"description":"IAM user ID. If not set, will create AK/SK for yourself.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/identityGroupMembershipV3:IdentityGroupMembershipV3":{"description":"Up-to-date reference of API arguments for IAM group membership you can get at\n[documentation portal](https://docs.otc.t-systems.com/identity-access-management/api-ref/apis/user_group_management)\n\nManages a Group Membership resource within OpenTelekomCloud IAM service.\n\n> **Note:** You _must_ have `Security Administrator` privileges in your OpenTelekomCloud\ncloud to use this resource. Please refer to [User Management Model](https://docs.otc.t-systems.com/en-us/usermanual/iam/iam_01_0034.html).\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst group1 = new opentelekomcloud.IdentityGroupV3(\"group_1\", {\n    name: \"group1\",\n    description: \"This is a test group\",\n});\nconst user1 = new opentelekomcloud.IdentityUserV3(\"user_1\", {\n    name: \"user1\",\n    enabled: true,\n    password: \"password12345!\",\n});\nconst user2 = new opentelekomcloud.IdentityUserV3(\"user_2\", {\n    name: \"user2\",\n    enabled: true,\n    password: \"password12345!\",\n});\nconst membership1 = new opentelekomcloud.IdentityGroupMembershipV3(\"membership_1\", {\n    group: group1.identityGroupV3Id,\n    users: [\n        user1.identityUserV3Id,\n        user2.identityUserV3Id,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ngroup1 = opentelekomcloud.IdentityGroupV3(\"group_1\",\n    name=\"group1\",\n    description=\"This is a test group\")\nuser1 = opentelekomcloud.IdentityUserV3(\"user_1\",\n    name=\"user1\",\n    enabled=True,\n    password=\"password12345!\")\nuser2 = opentelekomcloud.IdentityUserV3(\"user_2\",\n    name=\"user2\",\n    enabled=True,\n    password=\"password12345!\")\nmembership1 = opentelekomcloud.IdentityGroupMembershipV3(\"membership_1\",\n    group=group1.identity_group_v3_id,\n    users=[\n        user1.identity_user_v3_id,\n        user2.identity_user_v3_id,\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var group1 = new Opentelekomcloud.IdentityGroupV3(\"group_1\", new()\n    {\n        Name = \"group1\",\n        Description = \"This is a test group\",\n    });\n\n    var user1 = new Opentelekomcloud.IdentityUserV3(\"user_1\", new()\n    {\n        Name = \"user1\",\n        Enabled = true,\n        Password = \"password12345!\",\n    });\n\n    var user2 = new Opentelekomcloud.IdentityUserV3(\"user_2\", new()\n    {\n        Name = \"user2\",\n        Enabled = true,\n        Password = \"password12345!\",\n    });\n\n    var membership1 = new Opentelekomcloud.IdentityGroupMembershipV3(\"membership_1\", new()\n    {\n        Group = group1.IdentityGroupV3Id,\n        Users = new[]\n        {\n            user1.IdentityUserV3Id,\n            user2.IdentityUserV3Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tgroup1, err := opentelekomcloud.NewIdentityGroupV3(ctx, \"group_1\", &opentelekomcloud.IdentityGroupV3Args{\n\t\t\tName:        pulumi.String(\"group1\"),\n\t\t\tDescription: pulumi.String(\"This is a test group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuser1, err := opentelekomcloud.NewIdentityUserV3(ctx, \"user_1\", &opentelekomcloud.IdentityUserV3Args{\n\t\t\tName:     pulumi.String(\"user1\"),\n\t\t\tEnabled:  pulumi.Bool(true),\n\t\t\tPassword: pulumi.String(\"password12345!\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuser2, err := opentelekomcloud.NewIdentityUserV3(ctx, \"user_2\", &opentelekomcloud.IdentityUserV3Args{\n\t\t\tName:     pulumi.String(\"user2\"),\n\t\t\tEnabled:  pulumi.Bool(true),\n\t\t\tPassword: pulumi.String(\"password12345!\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewIdentityGroupMembershipV3(ctx, \"membership_1\", &opentelekomcloud.IdentityGroupMembershipV3Args{\n\t\t\tGroup: group1.IdentityGroupV3Id,\n\t\t\tUsers: pulumi.StringArray{\n\t\t\t\tuser1.IdentityUserV3Id,\n\t\t\t\tuser2.IdentityUserV3Id,\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.opentelekomcloud.IdentityGroupV3;\nimport com.pulumi.opentelekomcloud.IdentityGroupV3Args;\nimport com.pulumi.opentelekomcloud.IdentityUserV3;\nimport com.pulumi.opentelekomcloud.IdentityUserV3Args;\nimport com.pulumi.opentelekomcloud.IdentityGroupMembershipV3;\nimport com.pulumi.opentelekomcloud.IdentityGroupMembershipV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var group1 = new IdentityGroupV3(\"group1\", IdentityGroupV3Args.builder()\n            .name(\"group1\")\n            .description(\"This is a test group\")\n            .build());\n\n        var user1 = new IdentityUserV3(\"user1\", IdentityUserV3Args.builder()\n            .name(\"user1\")\n            .enabled(true)\n            .password(\"password12345!\")\n            .build());\n\n        var user2 = new IdentityUserV3(\"user2\", IdentityUserV3Args.builder()\n            .name(\"user2\")\n            .enabled(true)\n            .password(\"password12345!\")\n            .build());\n\n        var membership1 = new IdentityGroupMembershipV3(\"membership1\", IdentityGroupMembershipV3Args.builder()\n            .group(group1.identityGroupV3Id())\n            .users(            \n                user1.identityUserV3Id(),\n                user2.identityUserV3Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  group1:\n    type: opentelekomcloud:IdentityGroupV3\n    name: group_1\n    properties:\n      name: group1\n      description: This is a test group\n  user1:\n    type: opentelekomcloud:IdentityUserV3\n    name: user_1\n    properties:\n      name: user1\n      enabled: true\n      password: password12345!\n  user2:\n    type: opentelekomcloud:IdentityUserV3\n    name: user_2\n    properties:\n      name: user2\n      enabled: true\n      password: password12345!\n  membership1:\n    type: opentelekomcloud:IdentityGroupMembershipV3\n    name: membership_1\n    properties:\n      group: ${group1.identityGroupV3Id}\n      users:\n        - ${user1.identityUserV3Id}\n        - ${user2.identityUserV3Id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nGroup memberships can be imported using the group ID, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/identityGroupMembershipV3:IdentityGroupMembershipV3 membership_1 <group_id>\n```\n\n","inputProperties":{"group":{"description":"The group ID of this membership.\n","type":"string"},"identityGroupMembershipV3Id":{"type":"string"},"users":{"description":"A List of user IDs to associate to the group.\n","items":{"type":"string"},"type":"array"}},"properties":{"group":{"description":"The group ID of this membership.\n","type":"string"},"identityGroupMembershipV3Id":{"type":"string"},"users":{"description":"A List of user IDs to associate to the group.\n","items":{"type":"string"},"type":"array"}},"required":["group","identityGroupMembershipV3Id","users"],"requiredInputs":["group","users"],"stateInputs":{"description":"Input properties used for looking up and filtering IdentityGroupMembershipV3 resources.\n","properties":{"group":{"description":"The group ID of this membership.\n","type":"string"},"identityGroupMembershipV3Id":{"type":"string"},"users":{"description":"A List of user IDs to associate to the group.\n","items":{"type":"string"},"type":"array"}},"type":"object"},"type":"object"},"opentelekomcloud:index/identityGroupV3:IdentityGroupV3":{"description":"Up-to-date reference of API arguments for IAM group you can get at\n[documentation portal](https://docs.otc.t-systems.com/identity-access-management/api-ref/apis/user_group_management)\n\nManages a User Group resource within OpenTelekomCloud IAM service.\n\n> **Note:** You _must_ have `Security Administrator` privileges in your OpenTelekomCloud\ncloud to use this resource. Please refer to [User Management Model](https://docs.otc.t-systems.com/en-us/usermanual/iam/iam_01_0034.html).\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst group1 = new opentelekomcloud.IdentityGroupV3(\"group_1\", {\n    name: \"group_1\",\n    description: \"This is a test group\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ngroup1 = opentelekomcloud.IdentityGroupV3(\"group_1\",\n    name=\"group_1\",\n    description=\"This is a test group\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var group1 = new Opentelekomcloud.IdentityGroupV3(\"group_1\", new()\n    {\n        Name = \"group_1\",\n        Description = \"This is a test group\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewIdentityGroupV3(ctx, \"group_1\", &opentelekomcloud.IdentityGroupV3Args{\n\t\t\tName:        pulumi.String(\"group_1\"),\n\t\t\tDescription: pulumi.String(\"This is a test group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.IdentityGroupV3;\nimport com.pulumi.opentelekomcloud.IdentityGroupV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var group1 = new IdentityGroupV3(\"group1\", IdentityGroupV3Args.builder()\n            .name(\"group_1\")\n            .description(\"This is a test group\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  group1:\n    type: opentelekomcloud:IdentityGroupV3\n    name: group_1\n    properties:\n      name: group_1\n      description: This is a test group\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nGroups can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/identityGroupV3:IdentityGroupV3 group_1 89c60255-9bd6-460c-822a-e2b959ede9d2\n```\n\n","inputProperties":{"description":{"description":"A description of the group.\n","type":"string"},"domainId":{"description":"The domain this group belongs to.\n","type":"string"},"identityGroupV3Id":{"description":"The resource ID\n","type":"string"},"name":{"description":"The name of the group. The length is less than or equal to 64 bytes.\n","type":"string"},"region":{"type":"string"}},"properties":{"description":{"description":"A description of the group.\n","type":"string"},"domainId":{"description":"The domain this group belongs to.\n","type":"string"},"identityGroupV3Id":{"description":"The resource ID\n","type":"string"},"name":{"description":"The name of the group. The length is less than or equal to 64 bytes.\n","type":"string"},"region":{"type":"string"}},"required":["domainId","identityGroupV3Id","name","region"],"stateInputs":{"description":"Input properties used for looking up and filtering IdentityGroupV3 resources.\n","properties":{"description":{"description":"A description of the group.\n","type":"string"},"domainId":{"description":"The domain this group belongs to.\n","type":"string"},"identityGroupV3Id":{"description":"The resource ID\n","type":"string"},"name":{"description":"The name of the group. The length is less than or equal to 64 bytes.\n","type":"string"},"region":{"type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/identityLoginPolicyV3:IdentityLoginPolicyV3":{"description":"## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst policy1 = new opentelekomcloud.IdentityLoginPolicyV3(\"policy_1\", {\n    customInfoForLogin: \"\",\n    periodWithLoginFailures: 60,\n    lockoutDuration: 15,\n    accountValidityPeriod: 0,\n    loginFailedTimes: 3,\n    sessionTimeout: 1395,\n    showRecentLoginInfo: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\npolicy1 = opentelekomcloud.IdentityLoginPolicyV3(\"policy_1\",\n    custom_info_for_login=\"\",\n    period_with_login_failures=60,\n    lockout_duration=15,\n    account_validity_period=0,\n    login_failed_times=3,\n    session_timeout=1395,\n    show_recent_login_info=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var policy1 = new Opentelekomcloud.IdentityLoginPolicyV3(\"policy_1\", new()\n    {\n        CustomInfoForLogin = \"\",\n        PeriodWithLoginFailures = 60,\n        LockoutDuration = 15,\n        AccountValidityPeriod = 0,\n        LoginFailedTimes = 3,\n        SessionTimeout = 1395,\n        ShowRecentLoginInfo = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewIdentityLoginPolicyV3(ctx, \"policy_1\", &opentelekomcloud.IdentityLoginPolicyV3Args{\n\t\t\tCustomInfoForLogin:      pulumi.String(\"\"),\n\t\t\tPeriodWithLoginFailures: pulumi.Float64(60),\n\t\t\tLockoutDuration:         pulumi.Float64(15),\n\t\t\tAccountValidityPeriod:   pulumi.Float64(0),\n\t\t\tLoginFailedTimes:        pulumi.Float64(3),\n\t\t\tSessionTimeout:          pulumi.Float64(1395),\n\t\t\tShowRecentLoginInfo:     pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.IdentityLoginPolicyV3;\nimport com.pulumi.opentelekomcloud.IdentityLoginPolicyV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var policy1 = new IdentityLoginPolicyV3(\"policy1\", IdentityLoginPolicyV3Args.builder()\n            .customInfoForLogin(\"\")\n            .periodWithLoginFailures(60.0)\n            .lockoutDuration(15.0)\n            .accountValidityPeriod(0.0)\n            .loginFailedTimes(3.0)\n            .sessionTimeout(1395.0)\n            .showRecentLoginInfo(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  policy1:\n    type: opentelekomcloud:IdentityLoginPolicyV3\n    name: policy_1\n    properties:\n      customInfoForLogin: \"\"\n      periodWithLoginFailures: 60\n      lockoutDuration: 15\n      accountValidityPeriod: 0\n      loginFailedTimes: 3\n      sessionTimeout: 1395\n      showRecentLoginInfo: false\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nIdentity login authentication policy can be imported using the account ID or domain ID, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/identityLoginPolicyV3:IdentityLoginPolicyV3 example <ID>\n```\n\n","inputProperties":{"accountValidityPeriod":{"description":"Validity period (days) to disable users if they have not logged in within the period.\nValue range: `0-240`. If this parameter is set to <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>, no users will be disabled. Default: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>.\n","type":"number"},"customInfoForLogin":{"description":"Custom information that will be displayed upon successful login.\n","type":"string"},"identityLoginPolicyV3Id":{"description":"The ID of account login policy, which is the same as the domain ID.\n","type":"string"},"lockoutDuration":{"description":"Duration (minutes) to lock users out. Value range: `15-30`.\n","type":"number"},"loginFailedTimes":{"description":"Number of unsuccessful login attempts to lock users out. Value range: `3-10`.\n","type":"number"},"periodWithLoginFailures":{"description":"Period (minutes) to count the number of unsuccessful login attempts.\nValue range: `15-60`.\n","type":"number"},"sessionTimeout":{"description":"Session timeout (minutes) that will apply if you or users created using your\naccount do not perform any operations within a specific period. Value range: `15-1440`.\n","type":"number"},"showRecentLoginInfo":{"description":"Indicates whether to display last login information upon successful login.\nThe value can be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Default: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"}},"properties":{"accountValidityPeriod":{"description":"Validity period (days) to disable users if they have not logged in within the period.\nValue range: `0-240`. If this parameter is set to <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>, no users will be disabled. Default: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>.\n","type":"number"},"customInfoForLogin":{"description":"Custom information that will be displayed upon successful login.\n","type":"string"},"identityLoginPolicyV3Id":{"description":"The ID of account login policy, which is the same as the domain ID.\n","type":"string"},"lockoutDuration":{"description":"Duration (minutes) to lock users out. Value range: `15-30`.\n","type":"number"},"loginFailedTimes":{"description":"Number of unsuccessful login attempts to lock users out. Value range: `3-10`.\n","type":"number"},"periodWithLoginFailures":{"description":"Period (minutes) to count the number of unsuccessful login attempts.\nValue range: `15-60`.\n","type":"number"},"sessionTimeout":{"description":"Session timeout (minutes) that will apply if you or users created using your\naccount do not perform any operations within a specific period. Value range: `15-1440`.\n","type":"number"},"showRecentLoginInfo":{"description":"Indicates whether to display last login information upon successful login.\nThe value can be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Default: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"}},"required":["customInfoForLogin","identityLoginPolicyV3Id","lockoutDuration","loginFailedTimes","periodWithLoginFailures","sessionTimeout"],"stateInputs":{"description":"Input properties used for looking up and filtering IdentityLoginPolicyV3 resources.\n","properties":{"accountValidityPeriod":{"description":"Validity period (days) to disable users if they have not logged in within the period.\nValue range: `0-240`. If this parameter is set to <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>, no users will be disabled. Default: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>.\n","type":"number"},"customInfoForLogin":{"description":"Custom information that will be displayed upon successful login.\n","type":"string"},"identityLoginPolicyV3Id":{"description":"The ID of account login policy, which is the same as the domain ID.\n","type":"string"},"lockoutDuration":{"description":"Duration (minutes) to lock users out. Value range: `15-30`.\n","type":"number"},"loginFailedTimes":{"description":"Number of unsuccessful login attempts to lock users out. Value range: `3-10`.\n","type":"number"},"periodWithLoginFailures":{"description":"Period (minutes) to count the number of unsuccessful login attempts.\nValue range: `15-60`.\n","type":"number"},"sessionTimeout":{"description":"Session timeout (minutes) that will apply if you or users created using your\naccount do not perform any operations within a specific period. Value range: `15-1440`.\n","type":"number"},"showRecentLoginInfo":{"description":"Indicates whether to display last login information upon successful login.\nThe value can be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Default: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"}},"type":"object"},"type":"object"},"opentelekomcloud:index/identityMappingV3:IdentityMappingV3":{"description":"Up-to-date reference of API arguments for IAM mapping you can get at\n[documentation portal](https://docs.otc.t-systems.com/identity-access-management/api-ref/apis/federated_identity_authentication_management/mapping)\n\n> You _must_ have `Security Administrator` privileges in your OpenTelekomCloud\ncloud to use this resource. Please refer to [User Management Model](https://docs.otc.t-systems.com/en-us/usermanual/iam/iam_01_0034.html).\n\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst mapping = new opentelekomcloud.IdentityMappingV3(\"mapping\", {\n    mappingId: \"ACME\",\n    rules: `  [\n    {\n      \\\\\"local\\\\\":[\n        {\n          \\\\\"user\\\\\":{\\\\\"name\\\\\":\\\\\"{0}\\\\\"}\n        },\n        {\n          \\\\\"groups\\\\\":\\\\\"[\\\\\\\\\\\\\"admin\\\\\\\\\\\\\",\\\\\\\\\\\\\"manager\\\\\\\\\\\\\"]\\\\\"\n        }\n      ],\n      \\\\\"remote\\\\\":[\n        {\n          \\\\\"type\\\\\":\\\\\"uid\\\\\"\n        }\n      ]\n    }\n  ]\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nmapping = opentelekomcloud.IdentityMappingV3(\"mapping\",\n    mapping_id=\"ACME\",\n    rules=\"\"\"  [\n    {\n      \\\"local\\\":[\n        {\n          \\\"user\\\":{\\\"name\\\":\\\"{0}\\\"}\n        },\n        {\n          \\\"groups\\\":\\\"[\\\\\\\"admin\\\\\\\",\\\\\\\"manager\\\\\\\"]\\\"\n        }\n      ],\n      \\\"remote\\\":[\n        {\n          \\\"type\\\":\\\"uid\\\"\n        }\n      ]\n    }\n  ]\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var mapping = new Opentelekomcloud.IdentityMappingV3(\"mapping\", new()\n    {\n        MappingId = \"ACME\",\n        Rules = @\"  [\n    {\n      \\\"\"local\\\"\":[\n        {\n          \\\"\"user\\\"\":{\\\"\"name\\\"\":\\\"\"{0}\\\"\"}\n        },\n        {\n          \\\"\"groups\\\"\":\\\"\"[\\\\\\\"\"admin\\\\\\\"\",\\\\\\\"\"manager\\\\\\\"\"]\\\"\"\n        }\n      ],\n      \\\"\"remote\\\"\":[\n        {\n          \\\"\"type\\\"\":\\\"\"uid\\\"\"\n        }\n      ]\n    }\n  ]\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewIdentityMappingV3(ctx, \"mapping\", &opentelekomcloud.IdentityMappingV3Args{\n\t\t\tMappingId: pulumi.String(\"ACME\"),\n\t\t\tRules: pulumi.String(`  [\n    {\n      \\\"local\\\":[\n        {\n          \\\"user\\\":{\\\"name\\\":\\\"{0}\\\"}\n        },\n        {\n          \\\"groups\\\":\\\"[\\\\\\\"admin\\\\\\\",\\\\\\\"manager\\\\\\\"]\\\"\n        }\n      ],\n      \\\"remote\\\":[\n        {\n          \\\"type\\\":\\\"uid\\\"\n        }\n      ]\n    }\n  ]\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.IdentityMappingV3;\nimport com.pulumi.opentelekomcloud.IdentityMappingV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var mapping = new IdentityMappingV3(\"mapping\", IdentityMappingV3Args.builder()\n            .mappingId(\"ACME\")\n            .rules(\"\"\"\n  [\n    {\n      \\\"local\\\":[\n        {\n          \\\"user\\\":{\\\"name\\\":\\\"{0}\\\"}\n        },\n        {\n          \\\"groups\\\":\\\"[\\\\\\\"admin\\\\\\\",\\\\\\\"manager\\\\\\\"]\\\"\n        }\n      ],\n      \\\"remote\\\":[\n        {\n          \\\"type\\\":\\\"uid\\\"\n        }\n      ]\n    }\n  ]\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mapping:\n    type: opentelekomcloud:IdentityMappingV3\n    properties:\n      mappingId: ACME\n      rules: |2\n          [\n            {\n              \\\"local\\\":[\n                {\n                  \\\"user\\\":{\\\"name\\\":\\\"{0}\\\"}\n                },\n                {\n                  \\\"groups\\\":\\\"[\\\\\\\"admin\\\\\\\",\\\\\\\"manager\\\\\\\"]\\\"\n                }\n              ],\n              \\\"remote\\\":[\n                {\n                  \\\"type\\\":\\\"uid\\\"\n                }\n              ]\n            }\n          ]\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nMappings can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/identityMappingV3:IdentityMappingV3 mapping ACME\n```\n\n","inputProperties":{"identityMappingV3Id":{"type":"string"},"mappingId":{"description":"The ID of the mapping. Changing this creates a new mapping.\n","type":"string"},"rules":{"description":"Rules used to map federated users to local users.\n\n> For the full reference checkout [Syntax of Identity Conversion Rules](https://docs.otc.t-systems.com/en-us/usermanual/iam/en-us_topic_0079620340.html).\n","type":"string"}},"properties":{"identityMappingV3Id":{"type":"string"},"links":{"additionalProperties":{"type":"string"},"type":"object"},"mappingId":{"description":"The ID of the mapping. Changing this creates a new mapping.\n","type":"string"},"rules":{"description":"Rules used to map federated users to local users.\n\n> For the full reference checkout [Syntax of Identity Conversion Rules](https://docs.otc.t-systems.com/en-us/usermanual/iam/en-us_topic_0079620340.html).\n","type":"string"}},"required":["identityMappingV3Id","links","mappingId","rules"],"requiredInputs":["mappingId","rules"],"stateInputs":{"description":"Input properties used for looking up and filtering IdentityMappingV3 resources.\n","properties":{"identityMappingV3Id":{"type":"string"},"links":{"additionalProperties":{"type":"string"},"type":"object"},"mappingId":{"description":"The ID of the mapping. Changing this creates a new mapping.\n","type":"string"},"rules":{"description":"Rules used to map federated users to local users.\n\n> For the full reference checkout [Syntax of Identity Conversion Rules](https://docs.otc.t-systems.com/en-us/usermanual/iam/en-us_topic_0079620340.html).\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/identityPasswordPolicyV3:IdentityPasswordPolicyV3":{"description":"## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst policy1 = new opentelekomcloud.IdentityPasswordPolicyV3(\"policy_1\", {\n    maximumConsecutiveIdenticalChars: 0,\n    minimumPasswordLength: 6,\n    minimumPasswordAge: 0,\n    numberOfRecentPasswordsDisallowed: 0,\n    passwordNotUsernameOrInvert: true,\n    passwordValidityPeriod: 179,\n    passwordCharCombination: 3,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\npolicy1 = opentelekomcloud.IdentityPasswordPolicyV3(\"policy_1\",\n    maximum_consecutive_identical_chars=0,\n    minimum_password_length=6,\n    minimum_password_age=0,\n    number_of_recent_passwords_disallowed=0,\n    password_not_username_or_invert=True,\n    password_validity_period=179,\n    password_char_combination=3)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var policy1 = new Opentelekomcloud.IdentityPasswordPolicyV3(\"policy_1\", new()\n    {\n        MaximumConsecutiveIdenticalChars = 0,\n        MinimumPasswordLength = 6,\n        MinimumPasswordAge = 0,\n        NumberOfRecentPasswordsDisallowed = 0,\n        PasswordNotUsernameOrInvert = true,\n        PasswordValidityPeriod = 179,\n        PasswordCharCombination = 3,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewIdentityPasswordPolicyV3(ctx, \"policy_1\", &opentelekomcloud.IdentityPasswordPolicyV3Args{\n\t\t\tMaximumConsecutiveIdenticalChars:  pulumi.Float64(0),\n\t\t\tMinimumPasswordLength:             pulumi.Float64(6),\n\t\t\tMinimumPasswordAge:                pulumi.Float64(0),\n\t\t\tNumberOfRecentPasswordsDisallowed: pulumi.Float64(0),\n\t\t\tPasswordNotUsernameOrInvert:       pulumi.Bool(true),\n\t\t\tPasswordValidityPeriod:            pulumi.Float64(179),\n\t\t\tPasswordCharCombination:           pulumi.Float64(3),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.IdentityPasswordPolicyV3;\nimport com.pulumi.opentelekomcloud.IdentityPasswordPolicyV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var policy1 = new IdentityPasswordPolicyV3(\"policy1\", IdentityPasswordPolicyV3Args.builder()\n            .maximumConsecutiveIdenticalChars(0.0)\n            .minimumPasswordLength(6.0)\n            .minimumPasswordAge(0.0)\n            .numberOfRecentPasswordsDisallowed(0.0)\n            .passwordNotUsernameOrInvert(true)\n            .passwordValidityPeriod(179.0)\n            .passwordCharCombination(3.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  policy1:\n    type: opentelekomcloud:IdentityPasswordPolicyV3\n    name: policy_1\n    properties:\n      maximumConsecutiveIdenticalChars: 0\n      minimumPasswordLength: 6\n      minimumPasswordAge: 0\n      numberOfRecentPasswordsDisallowed: 0\n      passwordNotUsernameOrInvert: true\n      passwordValidityPeriod: 179\n      passwordCharCombination: 3\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nIdentity password policy can be imported using the account ID or domain ID, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/identityPasswordPolicyV3:IdentityPasswordPolicyV3 example <ID>\n```\n\n","inputProperties":{"identityPasswordPolicyV3Id":{"description":"The ID of account password policy, which is the same as the domain ID.\n","type":"string"},"maximumConsecutiveIdenticalChars":{"description":"Maximum number of times that a character is allowed to\nconsecutively present in a password. Value range: `0-32`.\n","type":"number"},"minimumPasswordAge":{"description":"Minimum period (minutes) after which users are allowed to make a password change.\nValue range: `0-1440`.\n","type":"number"},"minimumPasswordLength":{"description":"Minimum number of characters that a password must contain. Value range: `6-32`.\nDefault: <span pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\">`8`</span>.\n","type":"number"},"numberOfRecentPasswordsDisallowed":{"description":"Number of previously used passwords that are not allowed. Value range: `0-10`.\nDefault: <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>.\n","type":"number"},"passwordCharCombination":{"description":"Minimum number of character types that a password must contain.\nValue range: 2-4.\n","type":"number"},"passwordNotUsernameOrInvert":{"description":"Indicates whether the password can be the username or the username spelled backwards.\nDefault: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"passwordValidityPeriod":{"description":"Password validity period (days).\nValue range: 0-180. Value 0 indicates that this requirement does not apply.\n","type":"number"}},"properties":{"identityPasswordPolicyV3Id":{"description":"The ID of account password policy, which is the same as the domain ID.\n","type":"string"},"maximumConsecutiveIdenticalChars":{"description":"Maximum number of times that a character is allowed to\nconsecutively present in a password. Value range: `0-32`.\n","type":"number"},"maximumPasswordLength":{"description":"The maximum number of characters that a password can contain.\n","type":"number"},"minimumPasswordAge":{"description":"Minimum period (minutes) after which users are allowed to make a password change.\nValue range: `0-1440`.\n","type":"number"},"minimumPasswordLength":{"description":"Minimum number of characters that a password must contain. Value range: `6-32`.\nDefault: <span pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\">`8`</span>.\n","type":"number"},"numberOfRecentPasswordsDisallowed":{"description":"Number of previously used passwords that are not allowed. Value range: `0-10`.\nDefault: <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>.\n","type":"number"},"passwordCharCombination":{"description":"Minimum number of character types that a password must contain.\nValue range: 2-4.\n","type":"number"},"passwordNotUsernameOrInvert":{"description":"Indicates whether the password can be the username or the username spelled backwards.\nDefault: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"passwordRequirements":{"type":"string"},"passwordValidityPeriod":{"description":"Password validity period (days).\nValue range: 0-180. Value 0 indicates that this requirement does not apply.\n","type":"number"}},"required":["identityPasswordPolicyV3Id","maximumConsecutiveIdenticalChars","maximumPasswordLength","minimumPasswordAge","passwordCharCombination","passwordRequirements","passwordValidityPeriod"],"stateInputs":{"description":"Input properties used for looking up and filtering IdentityPasswordPolicyV3 resources.\n","properties":{"identityPasswordPolicyV3Id":{"description":"The ID of account password policy, which is the same as the domain ID.\n","type":"string"},"maximumConsecutiveIdenticalChars":{"description":"Maximum number of times that a character is allowed to\nconsecutively present in a password. Value range: `0-32`.\n","type":"number"},"maximumPasswordLength":{"description":"The maximum number of characters that a password can contain.\n","type":"number"},"minimumPasswordAge":{"description":"Minimum period (minutes) after which users are allowed to make a password change.\nValue range: `0-1440`.\n","type":"number"},"minimumPasswordLength":{"description":"Minimum number of characters that a password must contain. Value range: `6-32`.\nDefault: <span pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\">`8`</span>.\n","type":"number"},"numberOfRecentPasswordsDisallowed":{"description":"Number of previously used passwords that are not allowed. Value range: `0-10`.\nDefault: <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>.\n","type":"number"},"passwordCharCombination":{"description":"Minimum number of character types that a password must contain.\nValue range: 2-4.\n","type":"number"},"passwordNotUsernameOrInvert":{"description":"Indicates whether the password can be the username or the username spelled backwards.\nDefault: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"passwordRequirements":{"type":"string"},"passwordValidityPeriod":{"description":"Password validity period (days).\nValue range: 0-180. Value 0 indicates that this requirement does not apply.\n","type":"number"}},"type":"object"},"type":"object"},"opentelekomcloud:index/identityProjectV3:IdentityProjectV3":{"description":"Up-to-date reference of API arguments for IAM project you can get at\n[documentation portal](https://docs.otc.t-systems.com/identity-access-management/api-ref/apis/project_management)\n\nManages a Project resource within OpenTelekomCloud Identity And Access\nManagement service.\n\n> **Note:** You _must_ have `Security Administrator` privileges in your OpenTelekomCloud\ncloud to use this resource. Please refer to [User Management Model](https://docs.otc.t-systems.com/en-us/usermanual/iam/iam_01_0034.html).\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst project1 = new opentelekomcloud.IdentityProjectV3(\"project_1\", {\n    name: \"eu-de_project1\",\n    description: \"This is a test project\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nproject1 = opentelekomcloud.IdentityProjectV3(\"project_1\",\n    name=\"eu-de_project1\",\n    description=\"This is a test project\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var project1 = new Opentelekomcloud.IdentityProjectV3(\"project_1\", new()\n    {\n        Name = \"eu-de_project1\",\n        Description = \"This is a test project\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewIdentityProjectV3(ctx, \"project_1\", &opentelekomcloud.IdentityProjectV3Args{\n\t\t\tName:        pulumi.String(\"eu-de_project1\"),\n\t\t\tDescription: pulumi.String(\"This is a test project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.IdentityProjectV3;\nimport com.pulumi.opentelekomcloud.IdentityProjectV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var project1 = new IdentityProjectV3(\"project1\", IdentityProjectV3Args.builder()\n            .name(\"eu-de_project1\")\n            .description(\"This is a test project\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  project1:\n    type: opentelekomcloud:IdentityProjectV3\n    name: project_1\n    properties:\n      name: eu-de_project1\n      description: This is a test project\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nProjects can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/identityProjectV3:IdentityProjectV3 project_1 89c60255-9bd6-460c-822a-e2b959ede9d2\n```\n\n","inputProperties":{"description":{"description":"A description of the project.\n","type":"string"},"domainId":{"description":"The domain this project belongs to. Changing this\ncreates a new Project.\n","type":"string"},"identityProjectV3Id":{"type":"string"},"name":{"description":"The name of the project. it must start with\nID of an existing region and be less than or equal to 64 characters.\nExample: eu-de_project1.\n","type":"string"},"parentId":{"description":"The parent of this project. Changing this creates\na new Project.\n","type":"string"},"region":{"type":"string"}},"properties":{"description":{"description":"A description of the project.\n","type":"string"},"domainId":{"description":"The domain this project belongs to. Changing this\ncreates a new Project.\n","type":"string"},"enabled":{"type":"boolean"},"identityProjectV3Id":{"type":"string"},"isDomain":{"type":"boolean"},"name":{"description":"The name of the project. it must start with\nID of an existing region and be less than or equal to 64 characters.\nExample: eu-de_project1.\n","type":"string"},"parentId":{"description":"The parent of this project. Changing this creates\na new Project.\n","type":"string"},"region":{"type":"string"}},"required":["domainId","enabled","identityProjectV3Id","isDomain","name","parentId","region"],"stateInputs":{"description":"Input properties used for looking up and filtering IdentityProjectV3 resources.\n","properties":{"description":{"description":"A description of the project.\n","type":"string"},"domainId":{"description":"The domain this project belongs to. Changing this\ncreates a new Project.\n","type":"string"},"enabled":{"type":"boolean"},"identityProjectV3Id":{"type":"string"},"isDomain":{"type":"boolean"},"name":{"description":"The name of the project. it must start with\nID of an existing region and be less than or equal to 64 characters.\nExample: eu-de_project1.\n","type":"string"},"parentId":{"description":"The parent of this project. Changing this creates\na new Project.\n","type":"string"},"region":{"type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/identityProtectionPolicyV3:IdentityProtectionPolicyV3":{"description":"## Example Usage\n\n### Self-Verification\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst policy1 = new opentelekomcloud.IdentityProtectionPolicyV3(\"policy_1\", {\n    enableOperationProtectionPolicy: true,\n    selfManagement: {\n        accessKey: true,\n        password: true,\n        email: false,\n        mobile: false,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\npolicy1 = opentelekomcloud.IdentityProtectionPolicyV3(\"policy_1\",\n    enable_operation_protection_policy=True,\n    self_management={\n        \"access_key\": True,\n        \"password\": True,\n        \"email\": False,\n        \"mobile\": False,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var policy1 = new Opentelekomcloud.IdentityProtectionPolicyV3(\"policy_1\", new()\n    {\n        EnableOperationProtectionPolicy = true,\n        SelfManagement = new Opentelekomcloud.Inputs.IdentityProtectionPolicyV3SelfManagementArgs\n        {\n            AccessKey = true,\n            Password = true,\n            Email = false,\n            Mobile = false,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewIdentityProtectionPolicyV3(ctx, \"policy_1\", &opentelekomcloud.IdentityProtectionPolicyV3Args{\n\t\t\tEnableOperationProtectionPolicy: pulumi.Bool(true),\n\t\t\tSelfManagement: &opentelekomcloud.IdentityProtectionPolicyV3SelfManagementArgs{\n\t\t\t\tAccessKey: pulumi.Bool(true),\n\t\t\t\tPassword:  pulumi.Bool(true),\n\t\t\t\tEmail:     pulumi.Bool(false),\n\t\t\t\tMobile:    pulumi.Bool(false),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.IdentityProtectionPolicyV3;\nimport com.pulumi.opentelekomcloud.IdentityProtectionPolicyV3Args;\nimport com.pulumi.opentelekomcloud.inputs.IdentityProtectionPolicyV3SelfManagementArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var policy1 = new IdentityProtectionPolicyV3(\"policy1\", IdentityProtectionPolicyV3Args.builder()\n            .enableOperationProtectionPolicy(true)\n            .selfManagement(IdentityProtectionPolicyV3SelfManagementArgs.builder()\n                .accessKey(true)\n                .password(true)\n                .email(false)\n                .mobile(false)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  policy1:\n    type: opentelekomcloud:IdentityProtectionPolicyV3\n    name: policy_1\n    properties:\n      enableOperationProtectionPolicy: true\n      selfManagement:\n        accessKey: true\n        password: true\n        email: false\n        mobile: false\n```\n<!--End PulumiCodeChooser -->\n\n### Verification by another person\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst policy2 = new opentelekomcloud.IdentityProtectionPolicyV3(\"policy_2\", {\n    enableOperationProtectionPolicy: true,\n    verificationEmail: \"example@email.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\npolicy2 = opentelekomcloud.IdentityProtectionPolicyV3(\"policy_2\",\n    enable_operation_protection_policy=True,\n    verification_email=\"example@email.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var policy2 = new Opentelekomcloud.IdentityProtectionPolicyV3(\"policy_2\", new()\n    {\n        EnableOperationProtectionPolicy = true,\n        VerificationEmail = \"example@email.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewIdentityProtectionPolicyV3(ctx, \"policy_2\", &opentelekomcloud.IdentityProtectionPolicyV3Args{\n\t\t\tEnableOperationProtectionPolicy: pulumi.Bool(true),\n\t\t\tVerificationEmail:               pulumi.String(\"example@email.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.IdentityProtectionPolicyV3;\nimport com.pulumi.opentelekomcloud.IdentityProtectionPolicyV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var policy2 = new IdentityProtectionPolicyV3(\"policy2\", IdentityProtectionPolicyV3Args.builder()\n            .enableOperationProtectionPolicy(true)\n            .verificationEmail(\"example@email.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  policy2:\n    type: opentelekomcloud:IdentityProtectionPolicyV3\n    name: policy_2\n    properties:\n      enableOperationProtectionPolicy: true\n      verificationEmail: example@email.com\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nIdentity operation protection policy can be imported using the account ID or domain ID, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/identityProtectionPolicyV3:IdentityProtectionPolicyV3 example <ID>\n```\n\n","inputProperties":{"enableOperationProtectionPolicy":{"description":"Indicates whether operation protection has been enabled.\nThe value can be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Default: <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>\n","type":"boolean"},"identityProtectionPolicyV3Id":{"description":"The ID of account protection policy, which is the same as the domain ID.\n","type":"string"},"selfManagement":{"$ref":"#/types/opentelekomcloud:index%2FIdentityProtectionPolicyV3SelfManagement:IdentityProtectionPolicyV3SelfManagement","description":"Specifies the attributes IAM users can modify.\nThe object structure is documented below.\n\n<a name=<span pulumi-lang-nodejs=\"\"selfManagementPolicy\"\" pulumi-lang-dotnet=\"\"SelfManagementPolicy\"\" pulumi-lang-go=\"\"selfManagementPolicy\"\" pulumi-lang-python=\"\"self_management_policy\"\" pulumi-lang-yaml=\"\"selfManagementPolicy\"\" pulumi-lang-java=\"\"selfManagementPolicy\"\">\"self_management_policy\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`selfManagement`\" pulumi-lang-dotnet=\"`SelfManagement`\" pulumi-lang-go=\"`selfManagement`\" pulumi-lang-python=\"`self_management`\" pulumi-lang-yaml=\"`selfManagement`\" pulumi-lang-java=\"`selfManagement`\">`self_management`</span> block supports:\n"},"verificationEmail":{"description":"Specifies the email address used for verification. An example value is `example@email.com`.\n","type":"string"},"verificationMobile":{"description":"Specifies the mobile number used for verification.\n\n> If <span pulumi-lang-nodejs=\"`protectionEnabled`\" pulumi-lang-dotnet=\"`ProtectionEnabled`\" pulumi-lang-go=\"`protectionEnabled`\" pulumi-lang-python=\"`protection_enabled`\" pulumi-lang-yaml=\"`protectionEnabled`\" pulumi-lang-java=\"`protectionEnabled`\">`protection_enabled`</span> is set to true and neither <span pulumi-lang-nodejs=\"`verificationEmail`\" pulumi-lang-dotnet=\"`VerificationEmail`\" pulumi-lang-go=\"`verificationEmail`\" pulumi-lang-python=\"`verification_email`\" pulumi-lang-yaml=\"`verificationEmail`\" pulumi-lang-java=\"`verificationEmail`\">`verification_email`</span> nor <span pulumi-lang-nodejs=\"`verificationMobile`\" pulumi-lang-dotnet=\"`VerificationMobile`\" pulumi-lang-go=\"`verificationMobile`\" pulumi-lang-python=\"`verification_mobile`\" pulumi-lang-yaml=\"`verificationMobile`\" pulumi-lang-java=\"`verificationMobile`\">`verification_mobile`</span> is specified, IAM users\nperform verification by themselves when performing a critical operation.\n","type":"string"}},"properties":{"enableOperationProtectionPolicy":{"description":"Indicates whether operation protection has been enabled.\nThe value can be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Default: <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>\n","type":"boolean"},"identityProtectionPolicyV3Id":{"description":"The ID of account protection policy, which is the same as the domain ID.\n","type":"string"},"selfManagement":{"$ref":"#/types/opentelekomcloud:index%2FIdentityProtectionPolicyV3SelfManagement:IdentityProtectionPolicyV3SelfManagement","description":"Specifies the attributes IAM users can modify.\nThe object structure is documented below.\n\n<a name=<span pulumi-lang-nodejs=\"\"selfManagementPolicy\"\" pulumi-lang-dotnet=\"\"SelfManagementPolicy\"\" pulumi-lang-go=\"\"selfManagementPolicy\"\" pulumi-lang-python=\"\"self_management_policy\"\" pulumi-lang-yaml=\"\"selfManagementPolicy\"\" pulumi-lang-java=\"\"selfManagementPolicy\"\">\"self_management_policy\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`selfManagement`\" pulumi-lang-dotnet=\"`SelfManagement`\" pulumi-lang-go=\"`selfManagement`\" pulumi-lang-python=\"`self_management`\" pulumi-lang-yaml=\"`selfManagement`\" pulumi-lang-java=\"`selfManagement`\">`self_management`</span> block supports:\n"},"selfVerification":{"description":"Indicates whether the IAM users perform verification by themselves.\n","type":"boolean"},"verificationEmail":{"description":"Specifies the email address used for verification. An example value is `example@email.com`.\n","type":"string"},"verificationMobile":{"description":"Specifies the mobile number used for verification.\n\n> If <span pulumi-lang-nodejs=\"`protectionEnabled`\" pulumi-lang-dotnet=\"`ProtectionEnabled`\" pulumi-lang-go=\"`protectionEnabled`\" pulumi-lang-python=\"`protection_enabled`\" pulumi-lang-yaml=\"`protectionEnabled`\" pulumi-lang-java=\"`protectionEnabled`\">`protection_enabled`</span> is set to true and neither <span pulumi-lang-nodejs=\"`verificationEmail`\" pulumi-lang-dotnet=\"`VerificationEmail`\" pulumi-lang-go=\"`verificationEmail`\" pulumi-lang-python=\"`verification_email`\" pulumi-lang-yaml=\"`verificationEmail`\" pulumi-lang-java=\"`verificationEmail`\">`verification_email`</span> nor <span pulumi-lang-nodejs=\"`verificationMobile`\" pulumi-lang-dotnet=\"`VerificationMobile`\" pulumi-lang-go=\"`verificationMobile`\" pulumi-lang-python=\"`verification_mobile`\" pulumi-lang-yaml=\"`verificationMobile`\" pulumi-lang-java=\"`verificationMobile`\">`verification_mobile`</span> is specified, IAM users\nperform verification by themselves when performing a critical operation.\n","type":"string"}},"required":["identityProtectionPolicyV3Id","selfVerification"],"stateInputs":{"description":"Input properties used for looking up and filtering IdentityProtectionPolicyV3 resources.\n","properties":{"enableOperationProtectionPolicy":{"description":"Indicates whether operation protection has been enabled.\nThe value can be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Default: <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>\n","type":"boolean"},"identityProtectionPolicyV3Id":{"description":"The ID of account protection policy, which is the same as the domain ID.\n","type":"string"},"selfManagement":{"$ref":"#/types/opentelekomcloud:index%2FIdentityProtectionPolicyV3SelfManagement:IdentityProtectionPolicyV3SelfManagement","description":"Specifies the attributes IAM users can modify.\nThe object structure is documented below.\n\n<a name=<span pulumi-lang-nodejs=\"\"selfManagementPolicy\"\" pulumi-lang-dotnet=\"\"SelfManagementPolicy\"\" pulumi-lang-go=\"\"selfManagementPolicy\"\" pulumi-lang-python=\"\"self_management_policy\"\" pulumi-lang-yaml=\"\"selfManagementPolicy\"\" pulumi-lang-java=\"\"selfManagementPolicy\"\">\"self_management_policy\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`selfManagement`\" pulumi-lang-dotnet=\"`SelfManagement`\" pulumi-lang-go=\"`selfManagement`\" pulumi-lang-python=\"`self_management`\" pulumi-lang-yaml=\"`selfManagement`\" pulumi-lang-java=\"`selfManagement`\">`self_management`</span> block supports:\n"},"selfVerification":{"description":"Indicates whether the IAM users perform verification by themselves.\n","type":"boolean"},"verificationEmail":{"description":"Specifies the email address used for verification. An example value is `example@email.com`.\n","type":"string"},"verificationMobile":{"description":"Specifies the mobile number used for verification.\n\n> If <span pulumi-lang-nodejs=\"`protectionEnabled`\" pulumi-lang-dotnet=\"`ProtectionEnabled`\" pulumi-lang-go=\"`protectionEnabled`\" pulumi-lang-python=\"`protection_enabled`\" pulumi-lang-yaml=\"`protectionEnabled`\" pulumi-lang-java=\"`protectionEnabled`\">`protection_enabled`</span> is set to true and neither <span pulumi-lang-nodejs=\"`verificationEmail`\" pulumi-lang-dotnet=\"`VerificationEmail`\" pulumi-lang-go=\"`verificationEmail`\" pulumi-lang-python=\"`verification_email`\" pulumi-lang-yaml=\"`verificationEmail`\" pulumi-lang-java=\"`verificationEmail`\">`verification_email`</span> nor <span pulumi-lang-nodejs=\"`verificationMobile`\" pulumi-lang-dotnet=\"`VerificationMobile`\" pulumi-lang-go=\"`verificationMobile`\" pulumi-lang-python=\"`verification_mobile`\" pulumi-lang-yaml=\"`verificationMobile`\" pulumi-lang-java=\"`verificationMobile`\">`verification_mobile`</span> is specified, IAM users\nperform verification by themselves when performing a critical operation.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/identityProtocolV3:IdentityProtocolV3":{"description":"Up-to-date reference of API arguments for IAM protocol you can get at\n[documentation portal](https://docs.otc.t-systems.com/identity-access-management/api-ref/apis/federated_identity_authentication_management/protocol)\n\nManages identity protocol resource providing binding between identity provider and identity mappings.\n\n> You _must_ have `Security Administrator` privileges in your OpenTelekomCloud cloud to use this resource. Please refer\nto [User Management Model](https://docs.otc.t-systems.com/en-us/usermanual/iam/iam_01_0034.html).\n\n## Example Usage\n\n## Import\n\nProtocols can be imported using the `provider_id/protocol`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/identityProtocolV3:IdentityProtocolV3 protocol ACME/saml\n```\n\n","inputProperties":{"accessConfig":{"$ref":"#/types/opentelekomcloud:index%2FIdentityProtocolV3AccessConfig:IdentityProtocolV3AccessConfig","description":"Specifies the description of the identity provider.\nThis field is required only if the protocol is set to *oidc*.\n"},"identityProtocolV3Id":{"type":"string"},"mappingId":{"description":"ID of an identity mapping.\n","type":"string"},"metadata":{"$ref":"#/types/opentelekomcloud:index%2FIdentityProtocolV3Metadata:IdentityProtocolV3Metadata","description":"Metadata file configuration.\n"},"protocol":{"description":"ID of a protocol. Changing this creates a new protocol.\n","type":"string"},"providerId":{"description":"ID of an identity provider. Changing this creates a new protocol.\n","type":"string"}},"properties":{"accessConfig":{"$ref":"#/types/opentelekomcloud:index%2FIdentityProtocolV3AccessConfig:IdentityProtocolV3AccessConfig","description":"Specifies the description of the identity provider.\nThis field is required only if the protocol is set to *oidc*.\n"},"identityProtocolV3Id":{"type":"string"},"links":{"additionalProperties":{"type":"string"},"description":"Resource links of an identity protocol, including <span pulumi-lang-nodejs=\"`identityProvider`\" pulumi-lang-dotnet=\"`IdentityProvider`\" pulumi-lang-go=\"`identityProvider`\" pulumi-lang-python=\"`identity_provider`\" pulumi-lang-yaml=\"`identityProvider`\" pulumi-lang-java=\"`identityProvider`\">`identity_provider`</span> and <span pulumi-lang-nodejs=\"`self`\" pulumi-lang-dotnet=\"`Self`\" pulumi-lang-go=\"`self`\" pulumi-lang-python=\"`self`\" pulumi-lang-yaml=\"`self`\" pulumi-lang-java=\"`self`\">`self`</span>.\n","type":"object"},"mappingId":{"description":"ID of an identity mapping.\n","type":"string"},"metadata":{"$ref":"#/types/opentelekomcloud:index%2FIdentityProtocolV3Metadata:IdentityProtocolV3Metadata","description":"Metadata file configuration.\n"},"protocol":{"description":"ID of a protocol. Changing this creates a new protocol.\n","type":"string"},"providerId":{"description":"ID of an identity provider. Changing this creates a new protocol.\n","type":"string"}},"required":["identityProtocolV3Id","links","mappingId","protocol","providerId"],"requiredInputs":["mappingId","protocol","providerId"],"stateInputs":{"description":"Input properties used for looking up and filtering IdentityProtocolV3 resources.\n","properties":{"accessConfig":{"$ref":"#/types/opentelekomcloud:index%2FIdentityProtocolV3AccessConfig:IdentityProtocolV3AccessConfig","description":"Specifies the description of the identity provider.\nThis field is required only if the protocol is set to *oidc*.\n"},"identityProtocolV3Id":{"type":"string"},"links":{"additionalProperties":{"type":"string"},"description":"Resource links of an identity protocol, including <span pulumi-lang-nodejs=\"`identityProvider`\" pulumi-lang-dotnet=\"`IdentityProvider`\" pulumi-lang-go=\"`identityProvider`\" pulumi-lang-python=\"`identity_provider`\" pulumi-lang-yaml=\"`identityProvider`\" pulumi-lang-java=\"`identityProvider`\">`identity_provider`</span> and <span pulumi-lang-nodejs=\"`self`\" pulumi-lang-dotnet=\"`Self`\" pulumi-lang-go=\"`self`\" pulumi-lang-python=\"`self`\" pulumi-lang-yaml=\"`self`\" pulumi-lang-java=\"`self`\">`self`</span>.\n","type":"object"},"mappingId":{"description":"ID of an identity mapping.\n","type":"string"},"metadata":{"$ref":"#/types/opentelekomcloud:index%2FIdentityProtocolV3Metadata:IdentityProtocolV3Metadata","description":"Metadata file configuration.\n"},"protocol":{"description":"ID of a protocol. Changing this creates a new protocol.\n","type":"string"},"providerId":{"description":"ID of an identity provider. Changing this creates a new protocol.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/identityProvider:IdentityProvider":{"description":"Up-to-date reference of API arguments for IAM provider you can get at\n[documentation portal](https://docs.otc.t-systems.com/identity-access-management/api-ref/apis/federated_identity_authentication_management/identity_provider)\n\n> You _must_ have `Security Administrator` privileges in your OpenTelekomCloud\ncloud to use this resource. Please refer to [User Management Model](https://docs.otc.t-systems.com/en-us/usermanual/iam/iam_01_0034.html).\n\n\n## Example Usage\n\n### Create a SAML protocol provider\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst provider1 = new opentelekomcloud.IdentityProvider(\"provider_1\", {\n    name: \"example_com_provider_saml\",\n    protocol: \"saml\",\n    mappingRules: JSON.stringify([{\n        local: [{\n            user: {\n                name: \"samltestid\",\n            },\n        }],\n        remote: [{\n            type: \"uid\",\n        }],\n    }]),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nprovider1 = opentelekomcloud.IdentityProvider(\"provider_1\",\n    name=\"example_com_provider_saml\",\n    protocol=\"saml\",\n    mapping_rules=json.dumps([{\n        \"local\": [{\n            \"user\": {\n                \"name\": \"samltestid\",\n            },\n        }],\n        \"remote\": [{\n            \"type\": \"uid\",\n        }],\n    }]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var provider1 = new Opentelekomcloud.IdentityProvider(\"provider_1\", new()\n    {\n        Name = \"example_com_provider_saml\",\n        Protocol = \"saml\",\n        MappingRules = JsonSerializer.Serialize(new[]\n        {\n            new Dictionary<string, object?>\n            {\n                [\"local\"] = new[]\n                {\n                    new Dictionary<string, object?>\n                    {\n                        [\"user\"] = new Dictionary<string, object?>\n                        {\n                            [\"name\"] = \"samltestid\",\n                        },\n                    },\n                },\n                [\"remote\"] = new[]\n                {\n                    new Dictionary<string, object?>\n                    {\n                        [\"type\"] = \"uid\",\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-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal([]map[string]interface{}{\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"local\": []map[string]interface{}{\n\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\"user\": map[string]interface{}{\n\t\t\t\t\t\t\t\"name\": \"samltestid\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"remote\": []map[string]interface{}{\n\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\"type\": \"uid\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = opentelekomcloud.NewIdentityProvider(ctx, \"provider_1\", &opentelekomcloud.IdentityProviderArgs{\n\t\t\tName:         pulumi.String(\"example_com_provider_saml\"),\n\t\t\tProtocol:     pulumi.String(\"saml\"),\n\t\t\tMappingRules: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.IdentityProvider;\nimport com.pulumi.opentelekomcloud.IdentityProviderArgs;\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 provider1 = new IdentityProvider(\"provider1\", IdentityProviderArgs.builder()\n            .name(\"example_com_provider_saml\")\n            .protocol(\"saml\")\n            .mappingRules(serializeJson(\n                jsonArray(jsonObject(\n                    jsonProperty(\"local\", jsonArray(jsonObject(\n                        jsonProperty(\"user\", jsonObject(\n                            jsonProperty(\"name\", \"samltestid\")\n                        ))\n                    ))),\n                    jsonProperty(\"remote\", jsonArray(jsonObject(\n                        jsonProperty(\"type\", \"uid\")\n                    )))\n                ))))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  provider1:\n    type: opentelekomcloud:IdentityProvider\n    name: provider_1\n    properties:\n      name: example_com_provider_saml\n      protocol: saml\n      mappingRules:\n        fn::toJSON:\n          - local:\n              - user:\n                  name: samltestid\n            remote:\n              - type: uid\n```\n<!--End PulumiCodeChooser -->\n\n### Create a OpenID Connect protocol provider\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst provider2 = new opentelekomcloud.IdentityProvider(\"provider_2\", {\n    name: \"example_com_provider_oidc\",\n    protocol: \"oidc\",\n    accessConfig: {\n        accessType: \"program_console\",\n        providerUrl: \"https://accounts.example.com\",\n        clientId: \"your_client_id\",\n        authorizationEndpoint: \"https://accounts.example.com/o/oauth2/v2/auth\",\n        scopes: [\"openid\"],\n        signingKey: JSON.stringify({\n            keys: [{\n                alg: \"RS256\",\n                e: \"AQAB\",\n                kid: \"...\",\n                kty: \"RSA\",\n                n: \"...\",\n                use: \"sig\",\n            }],\n        }),\n    },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nprovider2 = opentelekomcloud.IdentityProvider(\"provider_2\",\n    name=\"example_com_provider_oidc\",\n    protocol=\"oidc\",\n    access_config={\n        \"access_type\": \"program_console\",\n        \"provider_url\": \"https://accounts.example.com\",\n        \"client_id\": \"your_client_id\",\n        \"authorization_endpoint\": \"https://accounts.example.com/o/oauth2/v2/auth\",\n        \"scopes\": [\"openid\"],\n        \"signing_key\": json.dumps({\n            \"keys\": [{\n                \"alg\": \"RS256\",\n                \"e\": \"AQAB\",\n                \"kid\": \"...\",\n                \"kty\": \"RSA\",\n                \"n\": \"...\",\n                \"use\": \"sig\",\n            }],\n        }),\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var provider2 = new Opentelekomcloud.IdentityProvider(\"provider_2\", new()\n    {\n        Name = \"example_com_provider_oidc\",\n        Protocol = \"oidc\",\n        AccessConfig = new Opentelekomcloud.Inputs.IdentityProviderAccessConfigArgs\n        {\n            AccessType = \"program_console\",\n            ProviderUrl = \"https://accounts.example.com\",\n            ClientId = \"your_client_id\",\n            AuthorizationEndpoint = \"https://accounts.example.com/o/oauth2/v2/auth\",\n            Scopes = new[]\n            {\n                \"openid\",\n            },\n            SigningKey = JsonSerializer.Serialize(new Dictionary<string, object?>\n            {\n                [\"keys\"] = new[]\n                {\n                    new Dictionary<string, object?>\n                    {\n                        [\"alg\"] = \"RS256\",\n                        [\"e\"] = \"AQAB\",\n                        [\"kid\"] = \"...\",\n                        [\"kty\"] = \"RSA\",\n                        [\"n\"] = \"...\",\n                        [\"use\"] = \"sig\",\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-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\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\"keys\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"alg\": \"RS256\",\n\t\t\t\t\t\"e\":   \"AQAB\",\n\t\t\t\t\t\"kid\": \"...\",\n\t\t\t\t\t\"kty\": \"RSA\",\n\t\t\t\t\t\"n\":   \"...\",\n\t\t\t\t\t\"use\": \"sig\",\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = opentelekomcloud.NewIdentityProvider(ctx, \"provider_2\", &opentelekomcloud.IdentityProviderArgs{\n\t\t\tName:     pulumi.String(\"example_com_provider_oidc\"),\n\t\t\tProtocol: pulumi.String(\"oidc\"),\n\t\t\tAccessConfig: &opentelekomcloud.IdentityProviderAccessConfigArgs{\n\t\t\t\tAccessType:            pulumi.String(\"program_console\"),\n\t\t\t\tProviderUrl:           pulumi.String(\"https://accounts.example.com\"),\n\t\t\t\tClientId:              pulumi.String(\"your_client_id\"),\n\t\t\t\tAuthorizationEndpoint: pulumi.String(\"https://accounts.example.com/o/oauth2/v2/auth\"),\n\t\t\t\tScopes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\t},\n\t\t\t\tSigningKey: pulumi.String(json0),\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.opentelekomcloud.IdentityProvider;\nimport com.pulumi.opentelekomcloud.IdentityProviderArgs;\nimport com.pulumi.opentelekomcloud.inputs.IdentityProviderAccessConfigArgs;\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 provider2 = new IdentityProvider(\"provider2\", IdentityProviderArgs.builder()\n            .name(\"example_com_provider_oidc\")\n            .protocol(\"oidc\")\n            .accessConfig(IdentityProviderAccessConfigArgs.builder()\n                .accessType(\"program_console\")\n                .providerUrl(\"https://accounts.example.com\")\n                .clientId(\"your_client_id\")\n                .authorizationEndpoint(\"https://accounts.example.com/o/oauth2/v2/auth\")\n                .scopes(\"openid\")\n                .signingKey(serializeJson(\n                    jsonObject(\n                        jsonProperty(\"keys\", jsonArray(jsonObject(\n                            jsonProperty(\"alg\", \"RS256\"),\n                            jsonProperty(\"e\", \"AQAB\"),\n                            jsonProperty(\"kid\", \"...\"),\n                            jsonProperty(\"kty\", \"RSA\"),\n                            jsonProperty(\"n\", \"...\"),\n                            jsonProperty(\"use\", \"sig\")\n                        )))\n                    )))\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  provider2:\n    type: opentelekomcloud:IdentityProvider\n    name: provider_2\n    properties:\n      name: example_com_provider_oidc\n      protocol: oidc\n      accessConfig:\n        accessType: program_console\n        providerUrl: https://accounts.example.com\n        clientId: your_client_id\n        authorizationEndpoint: https://accounts.example.com/o/oauth2/v2/auth\n        scopes:\n          - openid\n        signingKey:\n          fn::toJSON:\n            keys:\n              - alg: RS256\n                e: AQAB\n                kid: '...'\n                kty: RSA\n                n: '...'\n                use: sig\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nIdentity provider can be imported using the `name`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/identityProvider:IdentityProvider provider_1 example_provider_saml\n```\n","inputProperties":{"accessConfig":{"$ref":"#/types/opentelekomcloud:index%2FIdentityProviderAccessConfig:IdentityProviderAccessConfig","description":"Specifies the description of the identity provider.\nThis field is required only if the protocol is set to *oidc*.\n"},"description":{"description":"Specifies the description of the identity provider.\n","type":"string"},"identityProviderId":{"description":"A resource ID in UUID format.\n","type":"string"},"mappingRules":{"description":"Rules used to map federated users to local users.\nDetails on <span pulumi-lang-nodejs=\"`mappingRules`\" pulumi-lang-dotnet=\"`MappingRules`\" pulumi-lang-go=\"`mappingRules`\" pulumi-lang-python=\"`mapping_rules`\" pulumi-lang-yaml=\"`mappingRules`\" pulumi-lang-java=\"`mappingRules`\">`mapping_rules`</span> are available in [this link](https://docs.otc.t-systems.com/identity-access-management/api-ref/apis/federated_identity_authentication_management/mapping/creating_a_mapping.html#en-us-topic-0057845590) under <span pulumi-lang-nodejs=\"`rules`\" pulumi-lang-dotnet=\"`Rules`\" pulumi-lang-go=\"`rules`\" pulumi-lang-python=\"`rules`\" pulumi-lang-yaml=\"`rules`\" pulumi-lang-java=\"`rules`\">`rules`</span> section.\n","type":"string"},"metadata":{"description":"Specifies the metadata of the IDP(Identity Provider) server.\nThis field is used to import a metadata file to IAM to implement federated identity authentication.\nThis field is required only if the protocol is set to *saml*.\nThe maximum length is 30,000 characters and it stores in the state with SHA1 algorithm.\n\n> **NOTE:**\nThe metadata file specifies API addresses and certificate information in compliance with the SAML 2.0 standard.\nIt is usually stored in a file. In the TF script, you can import the metafile through the <span pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\">`file`</span> function,\nfor example:\n<br/>`metadata = file(\"/usr/local/data/files/metadata.txt\")`\n","type":"string"},"name":{"description":"Specifies the name of the identity provider to be registered.\nThe maximum length is 64 characters. Only letters, digits, underscores (_), and hyphens (-) are allowed.\nThe name is unique, it is recommended to include domain name information.\nChanging this creates a new resource.\n","type":"string"},"protocol":{"description":"Specifies the protocol of the identity provider.\nValid values are *saml* and *oidc*.\n","type":"string"},"status":{"description":"Enabled status for the identity provider. Default: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"}},"properties":{"accessConfig":{"$ref":"#/types/opentelekomcloud:index%2FIdentityProviderAccessConfig:IdentityProviderAccessConfig","description":"Specifies the description of the identity provider.\nThis field is required only if the protocol is set to *oidc*.\n"},"conversionRules":{"description":"The identity conversion rules of the identity provider.\nThe structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FIdentityProviderConversionRule:IdentityProviderConversionRule"},"type":"array"},"description":{"description":"Specifies the description of the identity provider.\n","type":"string"},"identityProviderId":{"description":"A resource ID in UUID format.\n","type":"string"},"links":{"additionalProperties":{"type":"string"},"description":"Resource links of an identity mapping.\n","type":"object"},"loginLink":{"description":"The login link of the identity provider.\n","type":"string"},"mappingRules":{"description":"Rules used to map federated users to local users.\nDetails on <span pulumi-lang-nodejs=\"`mappingRules`\" pulumi-lang-dotnet=\"`MappingRules`\" pulumi-lang-go=\"`mappingRules`\" pulumi-lang-python=\"`mapping_rules`\" pulumi-lang-yaml=\"`mappingRules`\" pulumi-lang-java=\"`mappingRules`\">`mapping_rules`</span> are available in [this link](https://docs.otc.t-systems.com/identity-access-management/api-ref/apis/federated_identity_authentication_management/mapping/creating_a_mapping.html#en-us-topic-0057845590) under <span pulumi-lang-nodejs=\"`rules`\" pulumi-lang-dotnet=\"`Rules`\" pulumi-lang-go=\"`rules`\" pulumi-lang-python=\"`rules`\" pulumi-lang-yaml=\"`rules`\" pulumi-lang-java=\"`rules`\">`rules`</span> section.\n","type":"string"},"metadata":{"description":"Specifies the metadata of the IDP(Identity Provider) server.\nThis field is used to import a metadata file to IAM to implement federated identity authentication.\nThis field is required only if the protocol is set to *saml*.\nThe maximum length is 30,000 characters and it stores in the state with SHA1 algorithm.\n\n> **NOTE:**\nThe metadata file specifies API addresses and certificate information in compliance with the SAML 2.0 standard.\nIt is usually stored in a file. In the TF script, you can import the metafile through the <span pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\">`file`</span> function,\nfor example:\n<br/>`metadata = file(\"/usr/local/data/files/metadata.txt\")`\n","type":"string"},"name":{"description":"Specifies the name of the identity provider to be registered.\nThe maximum length is 64 characters. Only letters, digits, underscores (_), and hyphens (-) are allowed.\nThe name is unique, it is recommended to include domain name information.\nChanging this creates a new resource.\n","type":"string"},"protocol":{"description":"Specifies the protocol of the identity provider.\nValid values are *saml* and *oidc*.\n","type":"string"},"status":{"description":"Enabled status for the identity provider. Default: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"}},"required":["conversionRules","identityProviderId","links","loginLink","mappingRules","name","protocol"],"requiredInputs":["protocol"],"stateInputs":{"description":"Input properties used for looking up and filtering IdentityProvider resources.\n","properties":{"accessConfig":{"$ref":"#/types/opentelekomcloud:index%2FIdentityProviderAccessConfig:IdentityProviderAccessConfig","description":"Specifies the description of the identity provider.\nThis field is required only if the protocol is set to *oidc*.\n"},"conversionRules":{"description":"The identity conversion rules of the identity provider.\nThe structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FIdentityProviderConversionRule:IdentityProviderConversionRule"},"type":"array"},"description":{"description":"Specifies the description of the identity provider.\n","type":"string"},"identityProviderId":{"description":"A resource ID in UUID format.\n","type":"string"},"links":{"additionalProperties":{"type":"string"},"description":"Resource links of an identity mapping.\n","type":"object"},"loginLink":{"description":"The login link of the identity provider.\n","type":"string"},"mappingRules":{"description":"Rules used to map federated users to local users.\nDetails on <span pulumi-lang-nodejs=\"`mappingRules`\" pulumi-lang-dotnet=\"`MappingRules`\" pulumi-lang-go=\"`mappingRules`\" pulumi-lang-python=\"`mapping_rules`\" pulumi-lang-yaml=\"`mappingRules`\" pulumi-lang-java=\"`mappingRules`\">`mapping_rules`</span> are available in [this link](https://docs.otc.t-systems.com/identity-access-management/api-ref/apis/federated_identity_authentication_management/mapping/creating_a_mapping.html#en-us-topic-0057845590) under <span pulumi-lang-nodejs=\"`rules`\" pulumi-lang-dotnet=\"`Rules`\" pulumi-lang-go=\"`rules`\" pulumi-lang-python=\"`rules`\" pulumi-lang-yaml=\"`rules`\" pulumi-lang-java=\"`rules`\">`rules`</span> section.\n","type":"string"},"metadata":{"description":"Specifies the metadata of the IDP(Identity Provider) server.\nThis field is used to import a metadata file to IAM to implement federated identity authentication.\nThis field is required only if the protocol is set to *saml*.\nThe maximum length is 30,000 characters and it stores in the state with SHA1 algorithm.\n\n> **NOTE:**\nThe metadata file specifies API addresses and certificate information in compliance with the SAML 2.0 standard.\nIt is usually stored in a file. In the TF script, you can import the metafile through the <span pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\">`file`</span> function,\nfor example:\n<br/>`metadata = file(\"/usr/local/data/files/metadata.txt\")`\n","type":"string"},"name":{"description":"Specifies the name of the identity provider to be registered.\nThe maximum length is 64 characters. Only letters, digits, underscores (_), and hyphens (-) are allowed.\nThe name is unique, it is recommended to include domain name information.\nChanging this creates a new resource.\n","type":"string"},"protocol":{"description":"Specifies the protocol of the identity provider.\nValid values are *saml* and *oidc*.\n","type":"string"},"status":{"description":"Enabled status for the identity provider. Default: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"}},"type":"object"},"type":"object"},"opentelekomcloud:index/identityProviderV3:IdentityProviderV3":{"description":"Up-to-date reference of API arguments for IAM provider you can get at\n[documentation portal](https://docs.otc.t-systems.com/identity-access-management/api-ref/apis/federated_identity_authentication_management/identity_provider)\n\n> You _must_ have `Security Administrator` privileges in your OpenTelekomCloud\ncloud to use this resource. Please refer to [User Management Model](https://docs.otc.t-systems.com/en-us/usermanual/iam/iam_01_0034.html).\n\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst provider = new opentelekomcloud.IdentityProviderV3(\"provider\", {\n    name: \"ACME\",\n    description: \"This is simple identity provider\",\n    enabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nprovider = opentelekomcloud.IdentityProviderV3(\"provider\",\n    name=\"ACME\",\n    description=\"This is simple identity provider\",\n    enabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var provider = new Opentelekomcloud.IdentityProviderV3(\"provider\", new()\n    {\n        Name = \"ACME\",\n        Description = \"This is simple identity provider\",\n        Enabled = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewIdentityProviderV3(ctx, \"provider\", &opentelekomcloud.IdentityProviderV3Args{\n\t\t\tName:        pulumi.String(\"ACME\"),\n\t\t\tDescription: pulumi.String(\"This is simple identity provider\"),\n\t\t\tEnabled:     pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.IdentityProviderV3;\nimport com.pulumi.opentelekomcloud.IdentityProviderV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var provider = new IdentityProviderV3(\"provider\", IdentityProviderV3Args.builder()\n            .name(\"ACME\")\n            .description(\"This is simple identity provider\")\n            .enabled(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  provider:\n    type: opentelekomcloud:IdentityProviderV3\n    properties:\n      name: ACME\n      description: This is simple identity provider\n      enabled: true\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nProviders can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/identityProviderV3:IdentityProviderV3 provider ACME\n```\n\n","inputProperties":{"description":{"description":"A description of the provider.\n","type":"string"},"enabled":{"description":"Whether an identity provider is enabled. Default value is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"identityProviderV3Id":{"type":"string"},"name":{"description":"The name (ID) of the provider. Changing this creates a new provider.\n","type":"string"}},"properties":{"description":{"description":"A description of the provider.\n","type":"string"},"enabled":{"description":"Whether an identity provider is enabled. Default value is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"identityProviderV3Id":{"type":"string"},"links":{"additionalProperties":{"type":"string"},"type":"object"},"name":{"description":"The name (ID) of the provider. Changing this creates a new provider.\n","type":"string"},"remoteIds":{"items":{"type":"string"},"type":"array"}},"required":["identityProviderV3Id","links","name","remoteIds"],"stateInputs":{"description":"Input properties used for looking up and filtering IdentityProviderV3 resources.\n","properties":{"description":{"description":"A description of the provider.\n","type":"string"},"enabled":{"description":"Whether an identity provider is enabled. Default value is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"identityProviderV3Id":{"type":"string"},"links":{"additionalProperties":{"type":"string"},"type":"object"},"name":{"description":"The name (ID) of the provider. Changing this creates a new provider.\n","type":"string"},"remoteIds":{"items":{"type":"string"},"type":"array"}},"type":"object"},"type":"object"},"opentelekomcloud:index/identityRoleAssignmentV3:IdentityRoleAssignmentV3":{"description":"Up-to-date reference of API arguments for IAM role assignment you can get at\n[documentation portal](https://docs.otc.t-systems.com/identity-access-management/api-ref/apis/permission_management)\n\nManages a V3 Role assignment within group on OpenTelekomCloud IAM Service.\n\n> **Note:** You _must_ have `Security Administrator` privileges in your OpenTelekomCloud\ncloud to use this resource. Please refer to [User Management Model](https://docs.otc.t-systems.com/en-us/usermanual/iam/iam_01_0034.html).\n\n## Example Usage\n\n### Assign Role On Project Level\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst project1 = new opentelekomcloud.IdentityProjectV3(\"project_1\", {name: \"eu-de_project_1\"});\nconst group1 = new opentelekomcloud.IdentityGroupV3(\"group_1\", {name: \"group_1\"});\nconst role1 = opentelekomcloud.getIdentityRoleV3({\n    name: \"system_all_4\",\n});\nconst roleAssignment1 = new opentelekomcloud.IdentityRoleAssignmentV3(\"role_assignment_1\", {\n    groupId: group1.identityGroupV3Id,\n    projectId: project1.identityProjectV3Id,\n    roleId: role1.then(role1 => role1.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nproject1 = opentelekomcloud.IdentityProjectV3(\"project_1\", name=\"eu-de_project_1\")\ngroup1 = opentelekomcloud.IdentityGroupV3(\"group_1\", name=\"group_1\")\nrole1 = opentelekomcloud.get_identity_role_v3(name=\"system_all_4\")\nrole_assignment1 = opentelekomcloud.IdentityRoleAssignmentV3(\"role_assignment_1\",\n    group_id=group1.identity_group_v3_id,\n    project_id=project1.identity_project_v3_id,\n    role_id=role1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var project1 = new Opentelekomcloud.IdentityProjectV3(\"project_1\", new()\n    {\n        Name = \"eu-de_project_1\",\n    });\n\n    var group1 = new Opentelekomcloud.IdentityGroupV3(\"group_1\", new()\n    {\n        Name = \"group_1\",\n    });\n\n    var role1 = Opentelekomcloud.GetIdentityRoleV3.Invoke(new()\n    {\n        Name = \"system_all_4\",\n    });\n\n    var roleAssignment1 = new Opentelekomcloud.IdentityRoleAssignmentV3(\"role_assignment_1\", new()\n    {\n        GroupId = group1.IdentityGroupV3Id,\n        ProjectId = project1.IdentityProjectV3Id,\n        RoleId = role1.Apply(getIdentityRoleV3Result => getIdentityRoleV3Result.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject1, err := opentelekomcloud.NewIdentityProjectV3(ctx, \"project_1\", &opentelekomcloud.IdentityProjectV3Args{\n\t\t\tName: pulumi.String(\"eu-de_project_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgroup1, err := opentelekomcloud.NewIdentityGroupV3(ctx, \"group_1\", &opentelekomcloud.IdentityGroupV3Args{\n\t\t\tName: pulumi.String(\"group_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trole1, err := opentelekomcloud.LookupIdentityRoleV3(ctx, &opentelekomcloud.LookupIdentityRoleV3Args{\n\t\t\tName: \"system_all_4\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewIdentityRoleAssignmentV3(ctx, \"role_assignment_1\", &opentelekomcloud.IdentityRoleAssignmentV3Args{\n\t\t\tGroupId:   group1.IdentityGroupV3Id,\n\t\t\tProjectId: project1.IdentityProjectV3Id,\n\t\t\tRoleId:    pulumi.String(role1.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.IdentityProjectV3;\nimport com.pulumi.opentelekomcloud.IdentityProjectV3Args;\nimport com.pulumi.opentelekomcloud.IdentityGroupV3;\nimport com.pulumi.opentelekomcloud.IdentityGroupV3Args;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetIdentityRoleV3Args;\nimport com.pulumi.opentelekomcloud.IdentityRoleAssignmentV3;\nimport com.pulumi.opentelekomcloud.IdentityRoleAssignmentV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var project1 = new IdentityProjectV3(\"project1\", IdentityProjectV3Args.builder()\n            .name(\"eu-de_project_1\")\n            .build());\n\n        var group1 = new IdentityGroupV3(\"group1\", IdentityGroupV3Args.builder()\n            .name(\"group_1\")\n            .build());\n\n        final var role1 = OpentelekomcloudFunctions.getIdentityRoleV3(GetIdentityRoleV3Args.builder()\n            .name(\"system_all_4\")\n            .build());\n\n        var roleAssignment1 = new IdentityRoleAssignmentV3(\"roleAssignment1\", IdentityRoleAssignmentV3Args.builder()\n            .groupId(group1.identityGroupV3Id())\n            .projectId(project1.identityProjectV3Id())\n            .roleId(role1.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  project1:\n    type: opentelekomcloud:IdentityProjectV3\n    name: project_1\n    properties:\n      name: eu-de_project_1\n  group1:\n    type: opentelekomcloud:IdentityGroupV3\n    name: group_1\n    properties:\n      name: group_1\n  roleAssignment1:\n    type: opentelekomcloud:IdentityRoleAssignmentV3\n    name: role_assignment_1\n    properties:\n      groupId: ${group1.identityGroupV3Id}\n      projectId: ${project1.identityProjectV3Id}\n      roleId: ${role1.id}\nvariables:\n  role1:\n    fn::invoke:\n      function: opentelekomcloud:getIdentityRoleV3\n      arguments:\n        name: system_all_4\n```\n<!--End PulumiCodeChooser -->\n\n### Assign Role On Domain Level\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\n// this is the domain id\nconst domainId = config.get(\"domainId\") || \"01aafcf63744d988ebef2b1e04c5c34\";\nconst group1 = new opentelekomcloud.IdentityGroupV3(\"group_1\", {name: \"group_1\"});\nconst role1 = opentelekomcloud.getIdentityRoleV3({\n    name: \"secu_admin\",\n});\nconst roleAssignment1 = new opentelekomcloud.IdentityRoleAssignmentV3(\"role_assignment_1\", {\n    groupId: group1.identityGroupV3Id,\n    domainId: domainId,\n    roleId: role1.then(role1 => role1.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\n# this is the domain id\ndomain_id = config.get(\"domainId\")\nif domain_id is None:\n    domain_id = \"01aafcf63744d988ebef2b1e04c5c34\"\ngroup1 = opentelekomcloud.IdentityGroupV3(\"group_1\", name=\"group_1\")\nrole1 = opentelekomcloud.get_identity_role_v3(name=\"secu_admin\")\nrole_assignment1 = opentelekomcloud.IdentityRoleAssignmentV3(\"role_assignment_1\",\n    group_id=group1.identity_group_v3_id,\n    domain_id=domain_id,\n    role_id=role1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    // this is the domain id\n    var domainId = config.Get(\"domainId\") ?? \"01aafcf63744d988ebef2b1e04c5c34\";\n    var group1 = new Opentelekomcloud.IdentityGroupV3(\"group_1\", new()\n    {\n        Name = \"group_1\",\n    });\n\n    var role1 = Opentelekomcloud.GetIdentityRoleV3.Invoke(new()\n    {\n        Name = \"secu_admin\",\n    });\n\n    var roleAssignment1 = new Opentelekomcloud.IdentityRoleAssignmentV3(\"role_assignment_1\", new()\n    {\n        GroupId = group1.IdentityGroupV3Id,\n        DomainId = domainId,\n        RoleId = role1.Apply(getIdentityRoleV3Result => getIdentityRoleV3Result.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\t// this is the domain id\n\t\tdomainId := \"01aafcf63744d988ebef2b1e04c5c34\"\n\t\tif param := cfg.Get(\"domainId\"); param != \"\" {\n\t\t\tdomainId = param\n\t\t}\n\t\tgroup1, err := opentelekomcloud.NewIdentityGroupV3(ctx, \"group_1\", &opentelekomcloud.IdentityGroupV3Args{\n\t\t\tName: pulumi.String(\"group_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trole1, err := opentelekomcloud.LookupIdentityRoleV3(ctx, &opentelekomcloud.LookupIdentityRoleV3Args{\n\t\t\tName: \"secu_admin\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewIdentityRoleAssignmentV3(ctx, \"role_assignment_1\", &opentelekomcloud.IdentityRoleAssignmentV3Args{\n\t\t\tGroupId:  group1.IdentityGroupV3Id,\n\t\t\tDomainId: pulumi.String(domainId),\n\t\t\tRoleId:   pulumi.String(role1.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.IdentityGroupV3;\nimport com.pulumi.opentelekomcloud.IdentityGroupV3Args;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetIdentityRoleV3Args;\nimport com.pulumi.opentelekomcloud.IdentityRoleAssignmentV3;\nimport com.pulumi.opentelekomcloud.IdentityRoleAssignmentV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var domainId = config.get(\"domainId\").orElse(\"01aafcf63744d988ebef2b1e04c5c34\");\n        var group1 = new IdentityGroupV3(\"group1\", IdentityGroupV3Args.builder()\n            .name(\"group_1\")\n            .build());\n\n        final var role1 = OpentelekomcloudFunctions.getIdentityRoleV3(GetIdentityRoleV3Args.builder()\n            .name(\"secu_admin\")\n            .build());\n\n        var roleAssignment1 = new IdentityRoleAssignmentV3(\"roleAssignment1\", IdentityRoleAssignmentV3Args.builder()\n            .groupId(group1.identityGroupV3Id())\n            .domainId(domainId)\n            .roleId(role1.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  domainId:\n    type: string\n    default: 01aafcf63744d988ebef2b1e04c5c34\nresources:\n  group1:\n    type: opentelekomcloud:IdentityGroupV3\n    name: group_1\n    properties:\n      name: group_1\n  roleAssignment1:\n    type: opentelekomcloud:IdentityRoleAssignmentV3\n    name: role_assignment_1\n    properties:\n      groupId: ${group1.identityGroupV3Id}\n      domainId: ${domainId}\n      roleId: ${role1.id}\nvariables:\n  role1:\n    fn::invoke:\n      function: opentelekomcloud:getIdentityRoleV3\n      arguments:\n        name: secu_admin\n```\n<!--End PulumiCodeChooser -->\n\n### Assign Role for All Projects (existing and future)\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\n// this is the domain id\nconst domainId = config.get(\"domainId\") || \"01aafcf63744d988ebef2b1e04c5c34\";\nconst group1 = new opentelekomcloud.IdentityGroupV3(\"group_1\", {name: \"group_1\"});\nconst role1 = opentelekomcloud.getIdentityRoleV3({\n    name: \"secu_admin\",\n});\nconst roleAssignment1 = new opentelekomcloud.IdentityRoleAssignmentV3(\"role_assignment_1\", {\n    groupId: group1.identityGroupV3Id,\n    domainId: domainId,\n    roleId: role1.then(role1 => role1.id),\n    allProjects: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\n# this is the domain id\ndomain_id = config.get(\"domainId\")\nif domain_id is None:\n    domain_id = \"01aafcf63744d988ebef2b1e04c5c34\"\ngroup1 = opentelekomcloud.IdentityGroupV3(\"group_1\", name=\"group_1\")\nrole1 = opentelekomcloud.get_identity_role_v3(name=\"secu_admin\")\nrole_assignment1 = opentelekomcloud.IdentityRoleAssignmentV3(\"role_assignment_1\",\n    group_id=group1.identity_group_v3_id,\n    domain_id=domain_id,\n    role_id=role1.id,\n    all_projects=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    // this is the domain id\n    var domainId = config.Get(\"domainId\") ?? \"01aafcf63744d988ebef2b1e04c5c34\";\n    var group1 = new Opentelekomcloud.IdentityGroupV3(\"group_1\", new()\n    {\n        Name = \"group_1\",\n    });\n\n    var role1 = Opentelekomcloud.GetIdentityRoleV3.Invoke(new()\n    {\n        Name = \"secu_admin\",\n    });\n\n    var roleAssignment1 = new Opentelekomcloud.IdentityRoleAssignmentV3(\"role_assignment_1\", new()\n    {\n        GroupId = group1.IdentityGroupV3Id,\n        DomainId = domainId,\n        RoleId = role1.Apply(getIdentityRoleV3Result => getIdentityRoleV3Result.Id),\n        AllProjects = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\t// this is the domain id\n\t\tdomainId := \"01aafcf63744d988ebef2b1e04c5c34\"\n\t\tif param := cfg.Get(\"domainId\"); param != \"\" {\n\t\t\tdomainId = param\n\t\t}\n\t\tgroup1, err := opentelekomcloud.NewIdentityGroupV3(ctx, \"group_1\", &opentelekomcloud.IdentityGroupV3Args{\n\t\t\tName: pulumi.String(\"group_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trole1, err := opentelekomcloud.LookupIdentityRoleV3(ctx, &opentelekomcloud.LookupIdentityRoleV3Args{\n\t\t\tName: \"secu_admin\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewIdentityRoleAssignmentV3(ctx, \"role_assignment_1\", &opentelekomcloud.IdentityRoleAssignmentV3Args{\n\t\t\tGroupId:     group1.IdentityGroupV3Id,\n\t\t\tDomainId:    pulumi.String(domainId),\n\t\t\tRoleId:      pulumi.String(role1.Id),\n\t\t\tAllProjects: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.IdentityGroupV3;\nimport com.pulumi.opentelekomcloud.IdentityGroupV3Args;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetIdentityRoleV3Args;\nimport com.pulumi.opentelekomcloud.IdentityRoleAssignmentV3;\nimport com.pulumi.opentelekomcloud.IdentityRoleAssignmentV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var domainId = config.get(\"domainId\").orElse(\"01aafcf63744d988ebef2b1e04c5c34\");\n        var group1 = new IdentityGroupV3(\"group1\", IdentityGroupV3Args.builder()\n            .name(\"group_1\")\n            .build());\n\n        final var role1 = OpentelekomcloudFunctions.getIdentityRoleV3(GetIdentityRoleV3Args.builder()\n            .name(\"secu_admin\")\n            .build());\n\n        var roleAssignment1 = new IdentityRoleAssignmentV3(\"roleAssignment1\", IdentityRoleAssignmentV3Args.builder()\n            .groupId(group1.identityGroupV3Id())\n            .domainId(domainId)\n            .roleId(role1.id())\n            .allProjects(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  domainId:\n    type: string\n    default: 01aafcf63744d988ebef2b1e04c5c34\nresources:\n  group1:\n    type: opentelekomcloud:IdentityGroupV3\n    name: group_1\n    properties:\n      name: group_1\n  roleAssignment1:\n    type: opentelekomcloud:IdentityRoleAssignmentV3\n    name: role_assignment_1\n    properties:\n      groupId: ${group1.identityGroupV3Id}\n      domainId: ${domainId}\n      roleId: ${role1.id}\n      allProjects: true\nvariables:\n  role1:\n    fn::invoke:\n      function: opentelekomcloud:getIdentityRoleV3\n      arguments:\n        name: secu_admin\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"allProjects":{"description":"Whether to assign role for all existing and future projects.\n<span pulumi-lang-nodejs=\"`domainId`\" pulumi-lang-dotnet=\"`DomainId`\" pulumi-lang-go=\"`domainId`\" pulumi-lang-python=\"`domain_id`\" pulumi-lang-yaml=\"`domainId`\" pulumi-lang-java=\"`domainId`\">`domain_id`</span> has to be specified if <span pulumi-lang-nodejs=\"`allProjects`\" pulumi-lang-dotnet=\"`AllProjects`\" pulumi-lang-go=\"`allProjects`\" pulumi-lang-python=\"`all_projects`\" pulumi-lang-yaml=\"`allProjects`\" pulumi-lang-java=\"`allProjects`\">`all_projects`</span> is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"domainId":{"description":"The domain to assign the role in.\n","type":"string"},"groupId":{"description":"The group to assign the role to.\n","type":"string"},"identityRoleAssignmentV3Id":{"type":"string"},"projectId":{"description":"The project to assign the role in.\n","type":"string"},"roleId":{"description":"The role to assign.\n","type":"string"}},"properties":{"allProjects":{"description":"Whether to assign role for all existing and future projects.\n<span pulumi-lang-nodejs=\"`domainId`\" pulumi-lang-dotnet=\"`DomainId`\" pulumi-lang-go=\"`domainId`\" pulumi-lang-python=\"`domain_id`\" pulumi-lang-yaml=\"`domainId`\" pulumi-lang-java=\"`domainId`\">`domain_id`</span> has to be specified if <span pulumi-lang-nodejs=\"`allProjects`\" pulumi-lang-dotnet=\"`AllProjects`\" pulumi-lang-go=\"`allProjects`\" pulumi-lang-python=\"`all_projects`\" pulumi-lang-yaml=\"`allProjects`\" pulumi-lang-java=\"`allProjects`\">`all_projects`</span> is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"domainId":{"description":"The domain to assign the role in.\n","type":"string"},"groupId":{"description":"The group to assign the role to.\n","type":"string"},"identityRoleAssignmentV3Id":{"type":"string"},"projectId":{"description":"The project to assign the role in.\n","type":"string"},"roleId":{"description":"The role to assign.\n","type":"string"}},"required":["groupId","identityRoleAssignmentV3Id","roleId"],"requiredInputs":["groupId","roleId"],"stateInputs":{"description":"Input properties used for looking up and filtering IdentityRoleAssignmentV3 resources.\n","properties":{"allProjects":{"description":"Whether to assign role for all existing and future projects.\n<span pulumi-lang-nodejs=\"`domainId`\" pulumi-lang-dotnet=\"`DomainId`\" pulumi-lang-go=\"`domainId`\" pulumi-lang-python=\"`domain_id`\" pulumi-lang-yaml=\"`domainId`\" pulumi-lang-java=\"`domainId`\">`domain_id`</span> has to be specified if <span pulumi-lang-nodejs=\"`allProjects`\" pulumi-lang-dotnet=\"`AllProjects`\" pulumi-lang-go=\"`allProjects`\" pulumi-lang-python=\"`all_projects`\" pulumi-lang-yaml=\"`allProjects`\" pulumi-lang-java=\"`allProjects`\">`all_projects`</span> is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"domainId":{"description":"The domain to assign the role in.\n","type":"string"},"groupId":{"description":"The group to assign the role to.\n","type":"string"},"identityRoleAssignmentV3Id":{"type":"string"},"projectId":{"description":"The project to assign the role in.\n","type":"string"},"roleId":{"description":"The role to assign.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/identityRoleV3:IdentityRoleV3":{"description":"Up-to-date reference of API arguments for IAM role you can get at\n[documentation portal](https://docs.otc.t-systems.com/identity-access-management/api-ref/apis/permission_management)\n\nCustom role management\n\n> **Note:** You _must_ have `Security Administrator` privileges in your OpenTelekomCloud\ncloud to use this resource. Please refer to [User Management Model](https://docs.otc.t-systems.com/en-us/usermanual/iam/iam_01_0034.html).\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst role = new opentelekomcloud.IdentityRoleV3(\"role\", {\n    description: \"role\",\n    displayName: \"custom_role\",\n    displayLayer: \"domain\",\n    statements: [\n        {\n            effect: \"Allow\",\n            actions: [\"obs:bucket:GetBucketAcl\"],\n            resources: [\"OBS:*:*:bucket:test-bucket\"],\n            condition: `    {\n      \\\\\"StringStartWith\\\\\": {\n          \\\\\"g:ProjectName\\\\\": [\n              \\\\\"eu-de\\\\\"\n          ]\n      },\n      \\\\\"StringNotEqualsIgnoreCase\\\\\": {\n          \\\\\"g:ServiceName\\\\\": [\n              \\\\\"iam\\\\\"\n          ]\n    }\n`,\n        },\n        {\n            effect: \"Allow\",\n            actions: [\n                \"obs:bucket:HeadBucket\",\n                \"obs:bucket:ListBucketMultipartUploads\",\n                \"obs:bucket:ListBucket\",\n            ],\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nrole = opentelekomcloud.IdentityRoleV3(\"role\",\n    description=\"role\",\n    display_name=\"custom_role\",\n    display_layer=\"domain\",\n    statements=[\n        {\n            \"effect\": \"Allow\",\n            \"actions\": [\"obs:bucket:GetBucketAcl\"],\n            \"resources\": [\"OBS:*:*:bucket:test-bucket\"],\n            \"condition\": \"\"\"    {\n      \\\"StringStartWith\\\": {\n          \\\"g:ProjectName\\\": [\n              \\\"eu-de\\\"\n          ]\n      },\n      \\\"StringNotEqualsIgnoreCase\\\": {\n          \\\"g:ServiceName\\\": [\n              \\\"iam\\\"\n          ]\n    }\n\"\"\",\n        },\n        {\n            \"effect\": \"Allow\",\n            \"actions\": [\n                \"obs:bucket:HeadBucket\",\n                \"obs:bucket:ListBucketMultipartUploads\",\n                \"obs:bucket:ListBucket\",\n            ],\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var role = new Opentelekomcloud.IdentityRoleV3(\"role\", new()\n    {\n        Description = \"role\",\n        DisplayName = \"custom_role\",\n        DisplayLayer = \"domain\",\n        Statements = new[]\n        {\n            new Opentelekomcloud.Inputs.IdentityRoleV3StatementArgs\n            {\n                Effect = \"Allow\",\n                Actions = new[]\n                {\n                    \"obs:bucket:GetBucketAcl\",\n                },\n                Resources = new[]\n                {\n                    \"OBS:*:*:bucket:test-bucket\",\n                },\n                Condition = @\"    {\n      \\\"\"StringStartWith\\\"\": {\n          \\\"\"g:ProjectName\\\"\": [\n              \\\"\"eu-de\\\"\"\n          ]\n      },\n      \\\"\"StringNotEqualsIgnoreCase\\\"\": {\n          \\\"\"g:ServiceName\\\"\": [\n              \\\"\"iam\\\"\"\n          ]\n    }\n\",\n            },\n            new Opentelekomcloud.Inputs.IdentityRoleV3StatementArgs\n            {\n                Effect = \"Allow\",\n                Actions = new[]\n                {\n                    \"obs:bucket:HeadBucket\",\n                    \"obs:bucket:ListBucketMultipartUploads\",\n                    \"obs:bucket:ListBucket\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewIdentityRoleV3(ctx, \"role\", &opentelekomcloud.IdentityRoleV3Args{\n\t\t\tDescription:  pulumi.String(\"role\"),\n\t\t\tDisplayName:  pulumi.String(\"custom_role\"),\n\t\t\tDisplayLayer: pulumi.String(\"domain\"),\n\t\t\tStatements: opentelekomcloud.IdentityRoleV3StatementArray{\n\t\t\t\t&opentelekomcloud.IdentityRoleV3StatementArgs{\n\t\t\t\t\tEffect: pulumi.String(\"Allow\"),\n\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"obs:bucket:GetBucketAcl\"),\n\t\t\t\t\t},\n\t\t\t\t\tResources: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"OBS:*:*:bucket:test-bucket\"),\n\t\t\t\t\t},\n\t\t\t\t\tCondition: pulumi.String(`    {\n      \\\"StringStartWith\\\": {\n          \\\"g:ProjectName\\\": [\n              \\\"eu-de\\\"\n          ]\n      },\n      \\\"StringNotEqualsIgnoreCase\\\": {\n          \\\"g:ServiceName\\\": [\n              \\\"iam\\\"\n          ]\n    }\n`),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.IdentityRoleV3StatementArgs{\n\t\t\t\t\tEffect: pulumi.String(\"Allow\"),\n\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"obs:bucket:HeadBucket\"),\n\t\t\t\t\t\tpulumi.String(\"obs:bucket:ListBucketMultipartUploads\"),\n\t\t\t\t\t\tpulumi.String(\"obs:bucket:ListBucket\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.IdentityRoleV3;\nimport com.pulumi.opentelekomcloud.IdentityRoleV3Args;\nimport com.pulumi.opentelekomcloud.inputs.IdentityRoleV3StatementArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var role = new IdentityRoleV3(\"role\", IdentityRoleV3Args.builder()\n            .description(\"role\")\n            .displayName(\"custom_role\")\n            .displayLayer(\"domain\")\n            .statements(            \n                IdentityRoleV3StatementArgs.builder()\n                    .effect(\"Allow\")\n                    .actions(\"obs:bucket:GetBucketAcl\")\n                    .resources(\"OBS:*:*:bucket:test-bucket\")\n                    .condition(\"\"\"\n    {\n      \\\"StringStartWith\\\": {\n          \\\"g:ProjectName\\\": [\n              \\\"eu-de\\\"\n          ]\n      },\n      \\\"StringNotEqualsIgnoreCase\\\": {\n          \\\"g:ServiceName\\\": [\n              \\\"iam\\\"\n          ]\n    }\n                    \"\"\")\n                    .build(),\n                IdentityRoleV3StatementArgs.builder()\n                    .effect(\"Allow\")\n                    .actions(                    \n                        \"obs:bucket:HeadBucket\",\n                        \"obs:bucket:ListBucketMultipartUploads\",\n                        \"obs:bucket:ListBucket\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  role:\n    type: opentelekomcloud:IdentityRoleV3\n    properties:\n      description: role\n      displayName: custom_role\n      displayLayer: domain\n      statements:\n        - effect: Allow\n          actions:\n            - obs:bucket:GetBucketAcl\n          resources:\n            - OBS:*:*:bucket:test-bucket\n          condition: |2\n                {\n                  \\\"StringStartWith\\\": {\n                      \\\"g:ProjectName\\\": [\n                          \\\"eu-de\\\"\n                      ]\n                  },\n                  \\\"StringNotEqualsIgnoreCase\\\": {\n                      \\\"g:ServiceName\\\": [\n                          \\\"iam\\\"\n                      ]\n                }\n        - effect: Allow\n          actions:\n            - obs:bucket:HeadBucket\n            - obs:bucket:ListBucketMultipartUploads\n            - obs:bucket:ListBucket\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nRole can be imported using the following format:\n\n```sh\n$ pulumi import opentelekomcloud:index/identityRoleV3:IdentityRoleV3 default {{ resource id}}\n```\n\n","inputProperties":{"description":{"description":"Description of a role. The value cannot exceed 256 characters.\n","type":"string"},"displayLayer":{"description":"Display layer of a role.\n","type":"string"},"displayName":{"description":"Displayed name of a role. The value cannot exceed 64 characters.\n","type":"string"},"identityRoleV3Id":{"type":"string"},"statements":{"description":"Statement: The Statement field contains the Effect and Action\nelements. Effect indicates whether the policy allows or denies\naccess. Action indicates authorization items. The number of\nstatements cannot exceed 8. Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FIdentityRoleV3Statement:IdentityRoleV3Statement"},"type":"array"}},"properties":{"catalog":{"description":"Directory where a role locates\n","type":"string"},"description":{"description":"Description of a role. The value cannot exceed 256 characters.\n","type":"string"},"displayLayer":{"description":"Display layer of a role.\n","type":"string"},"displayName":{"description":"Displayed name of a role. The value cannot exceed 64 characters.\n","type":"string"},"domainId":{"description":"ID of the domain to which a role belongs\n","type":"string"},"identityRoleV3Id":{"type":"string"},"name":{"description":"Name of a role\n","type":"string"},"statements":{"description":"Statement: The Statement field contains the Effect and Action\nelements. Effect indicates whether the policy allows or denies\naccess. Action indicates authorization items. The number of\nstatements cannot exceed 8. Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FIdentityRoleV3Statement:IdentityRoleV3Statement"},"type":"array"}},"required":["catalog","description","displayLayer","displayName","domainId","identityRoleV3Id","name","statements"],"requiredInputs":["description","displayLayer","displayName","statements"],"stateInputs":{"description":"Input properties used for looking up and filtering IdentityRoleV3 resources.\n","properties":{"catalog":{"description":"Directory where a role locates\n","type":"string"},"description":{"description":"Description of a role. The value cannot exceed 256 characters.\n","type":"string"},"displayLayer":{"description":"Display layer of a role.\n","type":"string"},"displayName":{"description":"Displayed name of a role. The value cannot exceed 64 characters.\n","type":"string"},"domainId":{"description":"ID of the domain to which a role belongs\n","type":"string"},"identityRoleV3Id":{"type":"string"},"name":{"description":"Name of a role\n","type":"string"},"statements":{"description":"Statement: The Statement field contains the Effect and Action\nelements. Effect indicates whether the policy allows or denies\naccess. Action indicates authorization items. The number of\nstatements cannot exceed 8. Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FIdentityRoleV3Statement:IdentityRoleV3Statement"},"type":"array"}},"type":"object"},"type":"object"},"opentelekomcloud:index/identityUserGroupMembershipV3:IdentityUserGroupMembershipV3":{"description":"Up-to-date reference of API arguments for IAM user group membership you can get at\n[documentation portal](https://docs.otc.t-systems.com/identity-access-management/api-ref/apis/user_group_management)\n\nManages a User Group Membership resource within OpenTelekomCloud IAM service.\n\n> **Note:** You _must_ have `Security Administrator` privileges in your OpenTelekomCloud\ncloud to use this resource. Please refer to [User Management Model](https://docs.otc.t-systems.com/en-us/usermanual/iam/iam_01_0034.html).\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst user1 = new opentelekomcloud.IdentityUserV3(\"user_1\", {\n    name: \"user-1\",\n    password: \"password123@#\",\n    enabled: true,\n});\nconst group1 = new opentelekomcloud.IdentityGroupV3(\"group_1\", {name: \"group-1\"});\nconst group2 = new opentelekomcloud.IdentityGroupV3(\"group_2\", {name: \"group-2\"});\nconst membership1 = new opentelekomcloud.IdentityUserGroupMembershipV3(\"membership_1\", {\n    user: user1.identityUserV3Id,\n    groups: [\n        group1.identityGroupV3Id,\n        group2.identityGroupV3Id,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nuser1 = opentelekomcloud.IdentityUserV3(\"user_1\",\n    name=\"user-1\",\n    password=\"password123@#\",\n    enabled=True)\ngroup1 = opentelekomcloud.IdentityGroupV3(\"group_1\", name=\"group-1\")\ngroup2 = opentelekomcloud.IdentityGroupV3(\"group_2\", name=\"group-2\")\nmembership1 = opentelekomcloud.IdentityUserGroupMembershipV3(\"membership_1\",\n    user=user1.identity_user_v3_id,\n    groups=[\n        group1.identity_group_v3_id,\n        group2.identity_group_v3_id,\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var user1 = new Opentelekomcloud.IdentityUserV3(\"user_1\", new()\n    {\n        Name = \"user-1\",\n        Password = \"password123@#\",\n        Enabled = true,\n    });\n\n    var group1 = new Opentelekomcloud.IdentityGroupV3(\"group_1\", new()\n    {\n        Name = \"group-1\",\n    });\n\n    var group2 = new Opentelekomcloud.IdentityGroupV3(\"group_2\", new()\n    {\n        Name = \"group-2\",\n    });\n\n    var membership1 = new Opentelekomcloud.IdentityUserGroupMembershipV3(\"membership_1\", new()\n    {\n        User = user1.IdentityUserV3Id,\n        Groups = new[]\n        {\n            group1.IdentityGroupV3Id,\n            group2.IdentityGroupV3Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tuser1, err := opentelekomcloud.NewIdentityUserV3(ctx, \"user_1\", &opentelekomcloud.IdentityUserV3Args{\n\t\t\tName:     pulumi.String(\"user-1\"),\n\t\t\tPassword: pulumi.String(\"password123@#\"),\n\t\t\tEnabled:  pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgroup1, err := opentelekomcloud.NewIdentityGroupV3(ctx, \"group_1\", &opentelekomcloud.IdentityGroupV3Args{\n\t\t\tName: pulumi.String(\"group-1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgroup2, err := opentelekomcloud.NewIdentityGroupV3(ctx, \"group_2\", &opentelekomcloud.IdentityGroupV3Args{\n\t\t\tName: pulumi.String(\"group-2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewIdentityUserGroupMembershipV3(ctx, \"membership_1\", &opentelekomcloud.IdentityUserGroupMembershipV3Args{\n\t\t\tUser: user1.IdentityUserV3Id,\n\t\t\tGroups: pulumi.StringArray{\n\t\t\t\tgroup1.IdentityGroupV3Id,\n\t\t\t\tgroup2.IdentityGroupV3Id,\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.opentelekomcloud.IdentityUserV3;\nimport com.pulumi.opentelekomcloud.IdentityUserV3Args;\nimport com.pulumi.opentelekomcloud.IdentityGroupV3;\nimport com.pulumi.opentelekomcloud.IdentityGroupV3Args;\nimport com.pulumi.opentelekomcloud.IdentityUserGroupMembershipV3;\nimport com.pulumi.opentelekomcloud.IdentityUserGroupMembershipV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var user1 = new IdentityUserV3(\"user1\", IdentityUserV3Args.builder()\n            .name(\"user-1\")\n            .password(\"password123@#\")\n            .enabled(true)\n            .build());\n\n        var group1 = new IdentityGroupV3(\"group1\", IdentityGroupV3Args.builder()\n            .name(\"group-1\")\n            .build());\n\n        var group2 = new IdentityGroupV3(\"group2\", IdentityGroupV3Args.builder()\n            .name(\"group-2\")\n            .build());\n\n        var membership1 = new IdentityUserGroupMembershipV3(\"membership1\", IdentityUserGroupMembershipV3Args.builder()\n            .user(user1.identityUserV3Id())\n            .groups(            \n                group1.identityGroupV3Id(),\n                group2.identityGroupV3Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  user1:\n    type: opentelekomcloud:IdentityUserV3\n    name: user_1\n    properties:\n      name: user-1\n      password: password123@#\n      enabled: true\n  group1:\n    type: opentelekomcloud:IdentityGroupV3\n    name: group_1\n    properties:\n      name: group-1\n  group2:\n    type: opentelekomcloud:IdentityGroupV3\n    name: group_2\n    properties:\n      name: group-2\n  membership1:\n    type: opentelekomcloud:IdentityUserGroupMembershipV3\n    name: membership_1\n    properties:\n      user: ${user1.identityUserV3Id}\n      groups:\n        - ${group1.identityGroupV3Id}\n        - ${group2.identityGroupV3Id}\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"groups":{"description":"IDs of the groups for the user to be assigned to.\n","items":{"type":"string"},"type":"array"},"identityUserGroupMembershipV3Id":{"type":"string"},"user":{"description":"ID of a user.\n","type":"string"}},"properties":{"groups":{"description":"IDs of the groups for the user to be assigned to.\n","items":{"type":"string"},"type":"array"},"identityUserGroupMembershipV3Id":{"type":"string"},"user":{"description":"ID of a user.\n","type":"string"}},"required":["groups","identityUserGroupMembershipV3Id","user"],"requiredInputs":["groups","user"],"stateInputs":{"description":"Input properties used for looking up and filtering IdentityUserGroupMembershipV3 resources.\n","properties":{"groups":{"description":"IDs of the groups for the user to be assigned to.\n","items":{"type":"string"},"type":"array"},"identityUserGroupMembershipV3Id":{"type":"string"},"user":{"description":"ID of a user.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/identityUserV3:IdentityUserV3":{"description":"Up-to-date reference of API arguments for IAM user you can get at\n[documentation portal](https://docs.otc.t-systems.com/identity-access-management/api-ref/apis/user_management)\n\nManages a User resource within OpenTelekomCloud IAM service.\n\n> You _must_ have `Security Administrator` privileges in your OpenTelekomCloud\ncloud to use this resource. Please refer to [User Management Model](https://docs.otc.t-systems.com/en-us/usermanual/iam/iam_01_0034.html).\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst user1 = new opentelekomcloud.IdentityUserV3(\"user_1\", {\n    name: \"user_1\",\n    password: \"password123!\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nuser1 = opentelekomcloud.IdentityUserV3(\"user_1\",\n    name=\"user_1\",\n    password=\"password123!\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var user1 = new Opentelekomcloud.IdentityUserV3(\"user_1\", new()\n    {\n        Name = \"user_1\",\n        Password = \"password123!\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewIdentityUserV3(ctx, \"user_1\", &opentelekomcloud.IdentityUserV3Args{\n\t\t\tName:     pulumi.String(\"user_1\"),\n\t\t\tPassword: pulumi.String(\"password123!\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.IdentityUserV3;\nimport com.pulumi.opentelekomcloud.IdentityUserV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var user1 = new IdentityUserV3(\"user1\", IdentityUserV3Args.builder()\n            .name(\"user_1\")\n            .password(\"password123!\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  user1:\n    type: opentelekomcloud:IdentityUserV3\n    name: user_1\n    properties:\n      name: user_1\n      password: password123!\n```\n<!--End PulumiCodeChooser -->\n\n## Example with login protection\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst user1 = new opentelekomcloud.IdentityUserV3(\"user_1\", {\n    name: \"user_protected\",\n    password: \"password123@!\",\n    enabled: true,\n    email: \"test@acme.org\",\n    sendWelcomeEmail: true,\n    loginProtection: {\n        enabled: true,\n        verificationMethod: \"email\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nuser1 = opentelekomcloud.IdentityUserV3(\"user_1\",\n    name=\"user_protected\",\n    password=\"password123@!\",\n    enabled=True,\n    email=\"test@acme.org\",\n    send_welcome_email=True,\n    login_protection={\n        \"enabled\": True,\n        \"verification_method\": \"email\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var user1 = new Opentelekomcloud.IdentityUserV3(\"user_1\", new()\n    {\n        Name = \"user_protected\",\n        Password = \"password123@!\",\n        Enabled = true,\n        Email = \"test@acme.org\",\n        SendWelcomeEmail = true,\n        LoginProtection = new Opentelekomcloud.Inputs.IdentityUserV3LoginProtectionArgs\n        {\n            Enabled = true,\n            VerificationMethod = \"email\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewIdentityUserV3(ctx, \"user_1\", &opentelekomcloud.IdentityUserV3Args{\n\t\t\tName:             pulumi.String(\"user_protected\"),\n\t\t\tPassword:         pulumi.String(\"password123@!\"),\n\t\t\tEnabled:          pulumi.Bool(true),\n\t\t\tEmail:            pulumi.String(\"test@acme.org\"),\n\t\t\tSendWelcomeEmail: pulumi.Bool(true),\n\t\t\tLoginProtection: &opentelekomcloud.IdentityUserV3LoginProtectionArgs{\n\t\t\t\tEnabled:            pulumi.Bool(true),\n\t\t\t\tVerificationMethod: pulumi.String(\"email\"),\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.opentelekomcloud.IdentityUserV3;\nimport com.pulumi.opentelekomcloud.IdentityUserV3Args;\nimport com.pulumi.opentelekomcloud.inputs.IdentityUserV3LoginProtectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var user1 = new IdentityUserV3(\"user1\", IdentityUserV3Args.builder()\n            .name(\"user_protected\")\n            .password(\"password123@!\")\n            .enabled(true)\n            .email(\"test@acme.org\")\n            .sendWelcomeEmail(true)\n            .loginProtection(IdentityUserV3LoginProtectionArgs.builder()\n                .enabled(true)\n                .verificationMethod(\"email\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  user1:\n    type: opentelekomcloud:IdentityUserV3\n    name: user_1\n    properties:\n      name: user_protected\n      password: password123@!\n      enabled: true\n      email: test@acme.org\n      sendWelcomeEmail: true\n      loginProtection:\n        enabled: true\n        verificationMethod: email\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nUsers can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/identityUserV3:IdentityUserV3 user_1 89c60255-9bd6-460c-822a-e2b959ede9d2\n```\n\nDue to the security reasons, `password` can not be imported. It can be ignored as shown below.\n\nhcl\n\nresource \"opentelekomcloud_identity_user_v3\" \"user_1\" {\n\n  lifecycle {\n\n    ignore_changes = [\n\n      password,\n\n    ]\n\n  }\n\n}\n\n","inputProperties":{"accessType":{"description":"Specifies the access type of the user. Available values are:\n+ **default**: support both programmatic and management console access.\n+ **programmatic**: only support programmatic access.\n+ **console**: only support management console access.\n","type":"string"},"countryCode":{"description":"Specifies the country code. This parameter must be used together with <span pulumi-lang-nodejs=\"`phone`\" pulumi-lang-dotnet=\"`Phone`\" pulumi-lang-go=\"`phone`\" pulumi-lang-python=\"`phone`\" pulumi-lang-yaml=\"`phone`\" pulumi-lang-java=\"`phone`\">`phone`</span>.\n","type":"string"},"description":{"description":"Specifies the description of the user.\n","type":"string"},"email":{"description":"Specifies the email address with a maximum of 255 characters.\n","type":"string"},"enabled":{"description":"Specifies whether the user is enabled or disabled. Valid values are <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> and <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"identityUserV3Id":{"description":"The resource ID in UUID format.\n","type":"string"},"loginProtection":{"$ref":"#/types/opentelekomcloud:index%2FIdentityUserV3LoginProtection:IdentityUserV3LoginProtection","description":"Login protection configuration.\nThe <span pulumi-lang-nodejs=\"`loginProtection`\" pulumi-lang-dotnet=\"`LoginProtection`\" pulumi-lang-go=\"`loginProtection`\" pulumi-lang-python=\"`login_protection`\" pulumi-lang-yaml=\"`loginProtection`\" pulumi-lang-java=\"`loginProtection`\">`login_protection`</span> block supports:\n"},"name":{"description":"Specifies the name of the user. The user name consists of 5 to 32 characters. It can\ncontain only uppercase letters, lowercase letters, digits, spaces, and special characters (-_) and cannot start with a\ndigit.\n","type":"string"},"password":{"description":"Specifies the password for the user with 6 to 32 characters. It must contain at least\ntwo of the following character types: uppercase letters, lowercase letters, digits, and special characters.\n","secret":true,"type":"string"},"phone":{"description":"Specifies the mobile number with a maximum of 32 digits. This parameter must be used\ntogether with <span pulumi-lang-nodejs=\"`countryCode`\" pulumi-lang-dotnet=\"`CountryCode`\" pulumi-lang-go=\"`countryCode`\" pulumi-lang-python=\"`country_code`\" pulumi-lang-yaml=\"`countryCode`\" pulumi-lang-java=\"`countryCode`\">`country_code`</span>.\n","type":"string"},"pwdReset":{"description":"Specifies whether the password should be reset. By default, the password is asked\nto reset at the first login.\n","type":"boolean"},"sendWelcomeEmail":{"description":"Whether to send a `Welcome Email` or not.\nPossible values are <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> and <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n\n> Welcome Email will be sent when email is set/changed and <span pulumi-lang-nodejs=\"`sendWelcomeEmail`\" pulumi-lang-dotnet=\"`SendWelcomeEmail`\" pulumi-lang-go=\"`sendWelcomeEmail`\" pulumi-lang-python=\"`send_welcome_email`\" pulumi-lang-yaml=\"`sendWelcomeEmail`\" pulumi-lang-java=\"`sendWelcomeEmail`\">`send_welcome_email`</span> is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"}},"properties":{"accessType":{"description":"Specifies the access type of the user. Available values are:\n+ **default**: support both programmatic and management console access.\n+ **programmatic**: only support programmatic access.\n+ **console**: only support management console access.\n","type":"string"},"countryCode":{"description":"Specifies the country code. This parameter must be used together with <span pulumi-lang-nodejs=\"`phone`\" pulumi-lang-dotnet=\"`Phone`\" pulumi-lang-go=\"`phone`\" pulumi-lang-python=\"`phone`\" pulumi-lang-yaml=\"`phone`\" pulumi-lang-java=\"`phone`\">`phone`</span>.\n","type":"string"},"createTime":{"description":"The time when the IAM user was created.\n","type":"string"},"description":{"description":"Specifies the description of the user.\n","type":"string"},"domainId":{"description":"The domain user belongs to.\n","type":"string"},"email":{"description":"Specifies the email address with a maximum of 255 characters.\n","type":"string"},"enabled":{"description":"Specifies whether the user is enabled or disabled. Valid values are <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> and <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"identityUserV3Id":{"description":"The resource ID in UUID format.\n","type":"string"},"lastLogin":{"description":"The time when the IAM user last login.\n","type":"string"},"loginProtection":{"$ref":"#/types/opentelekomcloud:index%2FIdentityUserV3LoginProtection:IdentityUserV3LoginProtection","description":"Login protection configuration.\nThe <span pulumi-lang-nodejs=\"`loginProtection`\" pulumi-lang-dotnet=\"`LoginProtection`\" pulumi-lang-go=\"`loginProtection`\" pulumi-lang-python=\"`login_protection`\" pulumi-lang-yaml=\"`loginProtection`\" pulumi-lang-java=\"`loginProtection`\">`login_protection`</span> block supports:\n"},"name":{"description":"Specifies the name of the user. The user name consists of 5 to 32 characters. It can\ncontain only uppercase letters, lowercase letters, digits, spaces, and special characters (-_) and cannot start with a\ndigit.\n","type":"string"},"password":{"description":"Specifies the password for the user with 6 to 32 characters. It must contain at least\ntwo of the following character types: uppercase letters, lowercase letters, digits, and special characters.\n","secret":true,"type":"string"},"passwordStrength":{"description":"Indicates the password strength.\n","type":"string"},"phone":{"description":"Specifies the mobile number with a maximum of 32 digits. This parameter must be used\ntogether with <span pulumi-lang-nodejs=\"`countryCode`\" pulumi-lang-dotnet=\"`CountryCode`\" pulumi-lang-go=\"`countryCode`\" pulumi-lang-python=\"`country_code`\" pulumi-lang-yaml=\"`countryCode`\" pulumi-lang-java=\"`countryCode`\">`country_code`</span>.\n","type":"string"},"pwdReset":{"description":"Specifies whether the password should be reset. By default, the password is asked\nto reset at the first login.\n","type":"boolean"},"sendWelcomeEmail":{"description":"Whether to send a `Welcome Email` or not.\nPossible values are <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> and <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n\n> Welcome Email will be sent when email is set/changed and <span pulumi-lang-nodejs=\"`sendWelcomeEmail`\" pulumi-lang-dotnet=\"`SendWelcomeEmail`\" pulumi-lang-go=\"`sendWelcomeEmail`\" pulumi-lang-python=\"`send_welcome_email`\" pulumi-lang-yaml=\"`sendWelcomeEmail`\" pulumi-lang-java=\"`sendWelcomeEmail`\">`send_welcome_email`</span> is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"xuserId":{"description":"ID of the user in the external system.\n","type":"string"},"xuserType":{"description":"Type of the user in the external system.\n","type":"string"}},"required":["accessType","createTime","domainId","email","identityUserV3Id","lastLogin","name","passwordStrength","xuserId","xuserType"],"stateInputs":{"description":"Input properties used for looking up and filtering IdentityUserV3 resources.\n","properties":{"accessType":{"description":"Specifies the access type of the user. Available values are:\n+ **default**: support both programmatic and management console access.\n+ **programmatic**: only support programmatic access.\n+ **console**: only support management console access.\n","type":"string"},"countryCode":{"description":"Specifies the country code. This parameter must be used together with <span pulumi-lang-nodejs=\"`phone`\" pulumi-lang-dotnet=\"`Phone`\" pulumi-lang-go=\"`phone`\" pulumi-lang-python=\"`phone`\" pulumi-lang-yaml=\"`phone`\" pulumi-lang-java=\"`phone`\">`phone`</span>.\n","type":"string"},"createTime":{"description":"The time when the IAM user was created.\n","type":"string"},"description":{"description":"Specifies the description of the user.\n","type":"string"},"domainId":{"description":"The domain user belongs to.\n","type":"string"},"email":{"description":"Specifies the email address with a maximum of 255 characters.\n","type":"string"},"enabled":{"description":"Specifies whether the user is enabled or disabled. Valid values are <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> and <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"identityUserV3Id":{"description":"The resource ID in UUID format.\n","type":"string"},"lastLogin":{"description":"The time when the IAM user last login.\n","type":"string"},"loginProtection":{"$ref":"#/types/opentelekomcloud:index%2FIdentityUserV3LoginProtection:IdentityUserV3LoginProtection","description":"Login protection configuration.\nThe <span pulumi-lang-nodejs=\"`loginProtection`\" pulumi-lang-dotnet=\"`LoginProtection`\" pulumi-lang-go=\"`loginProtection`\" pulumi-lang-python=\"`login_protection`\" pulumi-lang-yaml=\"`loginProtection`\" pulumi-lang-java=\"`loginProtection`\">`login_protection`</span> block supports:\n"},"name":{"description":"Specifies the name of the user. The user name consists of 5 to 32 characters. It can\ncontain only uppercase letters, lowercase letters, digits, spaces, and special characters (-_) and cannot start with a\ndigit.\n","type":"string"},"password":{"description":"Specifies the password for the user with 6 to 32 characters. It must contain at least\ntwo of the following character types: uppercase letters, lowercase letters, digits, and special characters.\n","secret":true,"type":"string"},"passwordStrength":{"description":"Indicates the password strength.\n","type":"string"},"phone":{"description":"Specifies the mobile number with a maximum of 32 digits. This parameter must be used\ntogether with <span pulumi-lang-nodejs=\"`countryCode`\" pulumi-lang-dotnet=\"`CountryCode`\" pulumi-lang-go=\"`countryCode`\" pulumi-lang-python=\"`country_code`\" pulumi-lang-yaml=\"`countryCode`\" pulumi-lang-java=\"`countryCode`\">`country_code`</span>.\n","type":"string"},"pwdReset":{"description":"Specifies whether the password should be reset. By default, the password is asked\nto reset at the first login.\n","type":"boolean"},"sendWelcomeEmail":{"description":"Whether to send a `Welcome Email` or not.\nPossible values are <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> and <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n\n> Welcome Email will be sent when email is set/changed and <span pulumi-lang-nodejs=\"`sendWelcomeEmail`\" pulumi-lang-dotnet=\"`SendWelcomeEmail`\" pulumi-lang-go=\"`sendWelcomeEmail`\" pulumi-lang-python=\"`send_welcome_email`\" pulumi-lang-yaml=\"`sendWelcomeEmail`\" pulumi-lang-java=\"`sendWelcomeEmail`\">`send_welcome_email`</span> is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\n","type":"boolean"},"xuserId":{"description":"ID of the user in the external system.\n","type":"string"},"xuserType":{"description":"Type of the user in the external system.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/imagesImageAccessAcceptV2:ImagesImageAccessAcceptV2":{"inputProperties":{"imageId":{"type":"string"},"imagesImageAccessAcceptV2Id":{"type":"string"},"memberId":{"type":"string"},"status":{"type":"string"}},"properties":{"createdAt":{"type":"string"},"imageId":{"type":"string"},"imagesImageAccessAcceptV2Id":{"type":"string"},"memberId":{"type":"string"},"schema":{"type":"string"},"status":{"type":"string"},"updatedAt":{"type":"string"}},"required":["createdAt","imageId","imagesImageAccessAcceptV2Id","memberId","schema","status","updatedAt"],"requiredInputs":["imageId","memberId","status"],"stateInputs":{"description":"Input properties used for looking up and filtering ImagesImageAccessAcceptV2 resources.\n","properties":{"createdAt":{"type":"string"},"imageId":{"type":"string"},"imagesImageAccessAcceptV2Id":{"type":"string"},"memberId":{"type":"string"},"schema":{"type":"string"},"status":{"type":"string"},"updatedAt":{"type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/imagesImageAccessV2:ImagesImageAccessV2":{"description":"Up-to-date reference of API arguments for Image sharing you can get at\n[documentation portal](https://docs.otc.t-systems.com/image-management-service/api-ref/native_openstack_apis/image_sharing_native_openstack_apis)\n\nManages members for the shared OpenTelekomCloud Glance Image within the source project, which owns the Image.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst memberId = config.requireObject<any>(\"memberId\");\nconst rancheros = new opentelekomcloud.ImagesImageV2(\"rancheros\", {\n    name: \"RancherOS\",\n    imageSourceUrl: \"https://releases.rancher.com/os/latest/rancheros-openstack.img\",\n    containerFormat: \"bare\",\n    diskFormat: \"qcow2\",\n});\nconst rancherosMember = new opentelekomcloud.ImagesImageAccessV2(\"rancheros_member\", {\n    imageId: rancheros.imagesImageV2Id,\n    memberId: memberId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nmember_id = config.require_object(\"memberId\")\nrancheros = opentelekomcloud.ImagesImageV2(\"rancheros\",\n    name=\"RancherOS\",\n    image_source_url=\"https://releases.rancher.com/os/latest/rancheros-openstack.img\",\n    container_format=\"bare\",\n    disk_format=\"qcow2\")\nrancheros_member = opentelekomcloud.ImagesImageAccessV2(\"rancheros_member\",\n    image_id=rancheros.images_image_v2_id,\n    member_id=member_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var memberId = config.RequireObject<dynamic>(\"memberId\");\n    var rancheros = new Opentelekomcloud.ImagesImageV2(\"rancheros\", new()\n    {\n        Name = \"RancherOS\",\n        ImageSourceUrl = \"https://releases.rancher.com/os/latest/rancheros-openstack.img\",\n        ContainerFormat = \"bare\",\n        DiskFormat = \"qcow2\",\n    });\n\n    var rancherosMember = new Opentelekomcloud.ImagesImageAccessV2(\"rancheros_member\", new()\n    {\n        ImageId = rancheros.ImagesImageV2Id,\n        MemberId = memberId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tmemberId := cfg.RequireObject(\"memberId\")\n\t\trancheros, err := opentelekomcloud.NewImagesImageV2(ctx, \"rancheros\", &opentelekomcloud.ImagesImageV2Args{\n\t\t\tName:            pulumi.String(\"RancherOS\"),\n\t\t\tImageSourceUrl:  pulumi.String(\"https://releases.rancher.com/os/latest/rancheros-openstack.img\"),\n\t\t\tContainerFormat: pulumi.String(\"bare\"),\n\t\t\tDiskFormat:      pulumi.String(\"qcow2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewImagesImageAccessV2(ctx, \"rancheros_member\", &opentelekomcloud.ImagesImageAccessV2Args{\n\t\t\tImageId:  rancheros.ImagesImageV2Id,\n\t\t\tMemberId: pulumi.Any(memberId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ImagesImageV2;\nimport com.pulumi.opentelekomcloud.ImagesImageV2Args;\nimport com.pulumi.opentelekomcloud.ImagesImageAccessV2;\nimport com.pulumi.opentelekomcloud.ImagesImageAccessV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var memberId = config.get(\"memberId\");\n        var rancheros = new ImagesImageV2(\"rancheros\", ImagesImageV2Args.builder()\n            .name(\"RancherOS\")\n            .imageSourceUrl(\"https://releases.rancher.com/os/latest/rancheros-openstack.img\")\n            .containerFormat(\"bare\")\n            .diskFormat(\"qcow2\")\n            .build());\n\n        var rancherosMember = new ImagesImageAccessV2(\"rancherosMember\", ImagesImageAccessV2Args.builder()\n            .imageId(rancheros.imagesImageV2Id())\n            .memberId(memberId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  memberId:\n    type: dynamic\nresources:\n  rancheros:\n    type: opentelekomcloud:ImagesImageV2\n    properties:\n      name: RancherOS\n      imageSourceUrl: https://releases.rancher.com/os/latest/rancheros-openstack.img\n      containerFormat: bare\n      diskFormat: qcow2\n  rancherosMember:\n    type: opentelekomcloud:ImagesImageAccessV2\n    name: rancheros_member\n    properties:\n      imageId: ${rancheros.imagesImageV2Id}\n      memberId: ${memberId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nImage access can be imported using the `image_id` and the `member_id`, separated by a slash, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/imagesImageAccessV2:ImagesImageAccessV2 opentelekomcloud_images_image_access_v2 89c60255-9bd6-460c-822a-e2b959ede9d2/bed6b6cbb86a4e2d8dc2735c2f1000e4\n```\n\n","inputProperties":{"imageId":{"description":"The proposed image ID.\n","type":"string"},"imagesImageAccessV2Id":{"type":"string"},"memberId":{"description":"The member ID, e.g. the target project ID. Optional\nfor admin accounts. Defaults to the current scope project ID.\n","type":"string"}},"properties":{"createdAt":{"description":"Specifies the time when a shared image was created. The value is in UTC format.\n","type":"string"},"imageId":{"description":"The proposed image ID.\n","type":"string"},"imagesImageAccessV2Id":{"type":"string"},"memberId":{"description":"The member ID, e.g. the target project ID. Optional\nfor admin accounts. Defaults to the current scope project ID.\n","type":"string"},"schema":{"description":"Specifies the sharing schema.\n","type":"string"},"status":{"description":"Specifies the image sharing status. After creation is <span pulumi-lang-nodejs=\"`pending`\" pulumi-lang-dotnet=\"`Pending`\" pulumi-lang-go=\"`pending`\" pulumi-lang-python=\"`pending`\" pulumi-lang-yaml=\"`pending`\" pulumi-lang-java=\"`pending`\">`pending`</span>.\n","type":"string"},"updateAt":{"type":"string"}},"required":["createdAt","imageId","imagesImageAccessV2Id","memberId","schema","status","updateAt"],"requiredInputs":["imageId","memberId"],"stateInputs":{"description":"Input properties used for looking up and filtering ImagesImageAccessV2 resources.\n","properties":{"createdAt":{"description":"Specifies the time when a shared image was created. The value is in UTC format.\n","type":"string"},"imageId":{"description":"The proposed image ID.\n","type":"string"},"imagesImageAccessV2Id":{"type":"string"},"memberId":{"description":"The member ID, e.g. the target project ID. Optional\nfor admin accounts. Defaults to the current scope project ID.\n","type":"string"},"schema":{"description":"Specifies the sharing schema.\n","type":"string"},"status":{"description":"Specifies the image sharing status. After creation is <span pulumi-lang-nodejs=\"`pending`\" pulumi-lang-dotnet=\"`Pending`\" pulumi-lang-go=\"`pending`\" pulumi-lang-python=\"`pending`\" pulumi-lang-yaml=\"`pending`\" pulumi-lang-java=\"`pending`\">`pending`</span>.\n","type":"string"},"updateAt":{"type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/imagesImageV2:ImagesImageV2":{"description":"Up-to-date reference of API arguments for Image management you can get at\n[documentation portal](https://docs.otc.t-systems.com/image-management-service/api-ref/native_openstack_apis/image_native_openstack_apis)\n\nManages a V2 Image resource within OpenTelekomCloud Glance.\n\n> **Note:** This resource is not supported when using AK/SK authentication due to API Gateway limitations.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst rancheros = new opentelekomcloud.ImagesImageV2(\"rancheros\", {\n    name: \"RancherOS\",\n    imageSourceUrl: \"https://releases.rancher.com/os/latest/rancheros-openstack.img\",\n    containerFormat: \"bare\",\n    diskFormat: \"qcow2\",\n    hwFirmwareType: \"uefi\",\n    tags: [\n        \"foo.bar\",\n        \"tag.value\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nrancheros = opentelekomcloud.ImagesImageV2(\"rancheros\",\n    name=\"RancherOS\",\n    image_source_url=\"https://releases.rancher.com/os/latest/rancheros-openstack.img\",\n    container_format=\"bare\",\n    disk_format=\"qcow2\",\n    hw_firmware_type=\"uefi\",\n    tags=[\n        \"foo.bar\",\n        \"tag.value\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var rancheros = new Opentelekomcloud.ImagesImageV2(\"rancheros\", new()\n    {\n        Name = \"RancherOS\",\n        ImageSourceUrl = \"https://releases.rancher.com/os/latest/rancheros-openstack.img\",\n        ContainerFormat = \"bare\",\n        DiskFormat = \"qcow2\",\n        HwFirmwareType = \"uefi\",\n        Tags = new[]\n        {\n            \"foo.bar\",\n            \"tag.value\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewImagesImageV2(ctx, \"rancheros\", &opentelekomcloud.ImagesImageV2Args{\n\t\t\tName:            pulumi.String(\"RancherOS\"),\n\t\t\tImageSourceUrl:  pulumi.String(\"https://releases.rancher.com/os/latest/rancheros-openstack.img\"),\n\t\t\tContainerFormat: pulumi.String(\"bare\"),\n\t\t\tDiskFormat:      pulumi.String(\"qcow2\"),\n\t\t\tHwFirmwareType:  pulumi.String(\"uefi\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo.bar\"),\n\t\t\t\tpulumi.String(\"tag.value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ImagesImageV2;\nimport com.pulumi.opentelekomcloud.ImagesImageV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var rancheros = new ImagesImageV2(\"rancheros\", ImagesImageV2Args.builder()\n            .name(\"RancherOS\")\n            .imageSourceUrl(\"https://releases.rancher.com/os/latest/rancheros-openstack.img\")\n            .containerFormat(\"bare\")\n            .diskFormat(\"qcow2\")\n            .hwFirmwareType(\"uefi\")\n            .tags(            \n                \"foo.bar\",\n                \"tag.value\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  rancheros:\n    type: opentelekomcloud:ImagesImageV2\n    properties:\n      name: RancherOS\n      imageSourceUrl: https://releases.rancher.com/os/latest/rancheros-openstack.img\n      containerFormat: bare\n      diskFormat: qcow2\n      hwFirmwareType: uefi\n      tags:\n        - foo.bar\n        - tag.value\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nImages can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/imagesImageV2:ImagesImageV2 rancheros 89c60255-9bd6-460c-822a-e2b959ede9d2\n```\n\n","inputProperties":{"containerFormat":{"description":"The container format. Must be one of\n<span pulumi-lang-nodejs=\"`ami`\" pulumi-lang-dotnet=\"`Ami`\" pulumi-lang-go=\"`ami`\" pulumi-lang-python=\"`ami`\" pulumi-lang-yaml=\"`ami`\" pulumi-lang-java=\"`ami`\">`ami`</span>, <span pulumi-lang-nodejs=\"`ari`\" pulumi-lang-dotnet=\"`Ari`\" pulumi-lang-go=\"`ari`\" pulumi-lang-python=\"`ari`\" pulumi-lang-yaml=\"`ari`\" pulumi-lang-java=\"`ari`\">`ari`</span>, <span pulumi-lang-nodejs=\"`aki`\" pulumi-lang-dotnet=\"`Aki`\" pulumi-lang-go=\"`aki`\" pulumi-lang-python=\"`aki`\" pulumi-lang-yaml=\"`aki`\" pulumi-lang-java=\"`aki`\">`aki`</span>, <span pulumi-lang-nodejs=\"`bare`\" pulumi-lang-dotnet=\"`Bare`\" pulumi-lang-go=\"`bare`\" pulumi-lang-python=\"`bare`\" pulumi-lang-yaml=\"`bare`\" pulumi-lang-java=\"`bare`\">`bare`</span>, <span pulumi-lang-nodejs=\"`ovf`\" pulumi-lang-dotnet=\"`Ovf`\" pulumi-lang-go=\"`ovf`\" pulumi-lang-python=\"`ovf`\" pulumi-lang-yaml=\"`ovf`\" pulumi-lang-java=\"`ovf`\">`ovf`</span>.\n","type":"string"},"diskFormat":{"description":"The disk format. Must be one of\n<span pulumi-lang-nodejs=\"`ami`\" pulumi-lang-dotnet=\"`Ami`\" pulumi-lang-go=\"`ami`\" pulumi-lang-python=\"`ami`\" pulumi-lang-yaml=\"`ami`\" pulumi-lang-java=\"`ami`\">`ami`</span>, <span pulumi-lang-nodejs=\"`ari`\" pulumi-lang-dotnet=\"`Ari`\" pulumi-lang-go=\"`ari`\" pulumi-lang-python=\"`ari`\" pulumi-lang-yaml=\"`ari`\" pulumi-lang-java=\"`ari`\">`ari`</span>, <span pulumi-lang-nodejs=\"`aki`\" pulumi-lang-dotnet=\"`Aki`\" pulumi-lang-go=\"`aki`\" pulumi-lang-python=\"`aki`\" pulumi-lang-yaml=\"`aki`\" pulumi-lang-java=\"`aki`\">`aki`</span>, <span pulumi-lang-nodejs=\"`vhd`\" pulumi-lang-dotnet=\"`Vhd`\" pulumi-lang-go=\"`vhd`\" pulumi-lang-python=\"`vhd`\" pulumi-lang-yaml=\"`vhd`\" pulumi-lang-java=\"`vhd`\">`vhd`</span>, <span pulumi-lang-nodejs=\"`vmdk`\" pulumi-lang-dotnet=\"`Vmdk`\" pulumi-lang-go=\"`vmdk`\" pulumi-lang-python=\"`vmdk`\" pulumi-lang-yaml=\"`vmdk`\" pulumi-lang-java=\"`vmdk`\">`vmdk`</span>, <span pulumi-lang-nodejs=\"`raw`\" pulumi-lang-dotnet=\"`Raw`\" pulumi-lang-go=\"`raw`\" pulumi-lang-python=\"`raw`\" pulumi-lang-yaml=\"`raw`\" pulumi-lang-java=\"`raw`\">`raw`</span>, <span pulumi-lang-nodejs=\"`qcow2`\" pulumi-lang-dotnet=\"`Qcow2`\" pulumi-lang-go=\"`qcow2`\" pulumi-lang-python=\"`qcow2`\" pulumi-lang-yaml=\"`qcow2`\" pulumi-lang-java=\"`qcow2`\">`qcow2`</span>, <span pulumi-lang-nodejs=\"`vdi`\" pulumi-lang-dotnet=\"`Vdi`\" pulumi-lang-go=\"`vdi`\" pulumi-lang-python=\"`vdi`\" pulumi-lang-yaml=\"`vdi`\" pulumi-lang-java=\"`vdi`\">`vdi`</span>, <span pulumi-lang-nodejs=\"`iso`\" pulumi-lang-dotnet=\"`Iso`\" pulumi-lang-go=\"`iso`\" pulumi-lang-python=\"`iso`\" pulumi-lang-yaml=\"`iso`\" pulumi-lang-java=\"`iso`\">`iso`</span>.\n","type":"string"},"hwFirmwareType":{"description":"Specifies the boot mode. The value can be <span pulumi-lang-nodejs=\"`bios`\" pulumi-lang-dotnet=\"`Bios`\" pulumi-lang-go=\"`bios`\" pulumi-lang-python=\"`bios`\" pulumi-lang-yaml=\"`bios`\" pulumi-lang-java=\"`bios`\">`bios`</span> or <span pulumi-lang-nodejs=\"`uefi`\" pulumi-lang-dotnet=\"`Uefi`\" pulumi-lang-go=\"`uefi`\" pulumi-lang-python=\"`uefi`\" pulumi-lang-yaml=\"`uefi`\" pulumi-lang-java=\"`uefi`\">`uefi`</span>.\n\n> **Note:** The <span pulumi-lang-nodejs=\"`properties`\" pulumi-lang-dotnet=\"`Properties`\" pulumi-lang-go=\"`properties`\" pulumi-lang-python=\"`properties`\" pulumi-lang-yaml=\"`properties`\" pulumi-lang-java=\"`properties`\">`properties`</span> attribute handling in the gophercloud library is currently buggy\nand needs to be fixed before being implemented in this resource.\n","type":"string"},"imageCachePath":{"type":"string"},"imageSourceUrl":{"description":"This is the url of the raw image that will\nbe downloaded in the <span pulumi-lang-nodejs=\"`imageCachePath`\" pulumi-lang-dotnet=\"`ImageCachePath`\" pulumi-lang-go=\"`imageCachePath`\" pulumi-lang-python=\"`image_cache_path`\" pulumi-lang-yaml=\"`imageCachePath`\" pulumi-lang-java=\"`imageCachePath`\">`image_cache_path`</span> before being uploaded to Glance.\nGlance is able to download image from internet but the <span pulumi-lang-nodejs=\"`gophercloud`\" pulumi-lang-dotnet=\"`Gophercloud`\" pulumi-lang-go=\"`gophercloud`\" pulumi-lang-python=\"`gophercloud`\" pulumi-lang-yaml=\"`gophercloud`\" pulumi-lang-java=\"`gophercloud`\">`gophercloud`</span> library\ndoes not yet provide a way to do so.\nConflicts with <span pulumi-lang-nodejs=\"`localFilePath`\" pulumi-lang-dotnet=\"`LocalFilePath`\" pulumi-lang-go=\"`localFilePath`\" pulumi-lang-python=\"`local_file_path`\" pulumi-lang-yaml=\"`localFilePath`\" pulumi-lang-java=\"`localFilePath`\">`local_file_path`</span>.\n","type":"string"},"imagesImageV2Id":{"description":"A unique ID assigned by Glance.\n","type":"string"},"localFilePath":{"description":"This is the filepath of the raw image file\nthat will be uploaded to Glance. Conflicts with <span pulumi-lang-nodejs=\"`imageSourceUrl`\" pulumi-lang-dotnet=\"`ImageSourceUrl`\" pulumi-lang-go=\"`imageSourceUrl`\" pulumi-lang-python=\"`image_source_url`\" pulumi-lang-yaml=\"`imageSourceUrl`\" pulumi-lang-java=\"`imageSourceUrl`\">`image_source_url`</span>.\n","type":"string"},"minDiskGb":{"description":"Amount of disk space (in GB) required to boot image.\nDefaults to 0.\n","type":"number"},"minRamMb":{"description":"Amount of ram (in MB) required to boot image.\nDefauts to 0.\n","type":"number"},"name":{"description":"The name of the image.\n","type":"string"},"protected":{"description":"If true, image will not be deletable.\nDefaults to false.\n","type":"boolean"},"region":{"type":"string"},"tags":{"description":"The tags of the image. It must be a list of strings.\nAt this time, it is not possible to delete all tags of an image.\n","items":{"type":"string"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FImagesImageV2Timeouts:ImagesImageV2Timeouts"},"visibility":{"description":"The visibility of the image. Must be one of\n\"public\", \"private\", \"community\", or \"shared\". The ability to set the\nvisibility depends upon the configuration of the OpenTelekomCloud cloud.\n","type":"string"}},"properties":{"checksum":{"description":"The checksum of the data associated with the image.\n","type":"string"},"containerFormat":{"description":"The container format. Must be one of\n<span pulumi-lang-nodejs=\"`ami`\" pulumi-lang-dotnet=\"`Ami`\" pulumi-lang-go=\"`ami`\" pulumi-lang-python=\"`ami`\" pulumi-lang-yaml=\"`ami`\" pulumi-lang-java=\"`ami`\">`ami`</span>, <span pulumi-lang-nodejs=\"`ari`\" pulumi-lang-dotnet=\"`Ari`\" pulumi-lang-go=\"`ari`\" pulumi-lang-python=\"`ari`\" pulumi-lang-yaml=\"`ari`\" pulumi-lang-java=\"`ari`\">`ari`</span>, <span pulumi-lang-nodejs=\"`aki`\" pulumi-lang-dotnet=\"`Aki`\" pulumi-lang-go=\"`aki`\" pulumi-lang-python=\"`aki`\" pulumi-lang-yaml=\"`aki`\" pulumi-lang-java=\"`aki`\">`aki`</span>, <span pulumi-lang-nodejs=\"`bare`\" pulumi-lang-dotnet=\"`Bare`\" pulumi-lang-go=\"`bare`\" pulumi-lang-python=\"`bare`\" pulumi-lang-yaml=\"`bare`\" pulumi-lang-java=\"`bare`\">`bare`</span>, <span pulumi-lang-nodejs=\"`ovf`\" pulumi-lang-dotnet=\"`Ovf`\" pulumi-lang-go=\"`ovf`\" pulumi-lang-python=\"`ovf`\" pulumi-lang-yaml=\"`ovf`\" pulumi-lang-java=\"`ovf`\">`ovf`</span>.\n","type":"string"},"createdAt":{"description":"The date the image was created.\n","type":"string"},"diskFormat":{"description":"The disk format. Must be one of\n<span pulumi-lang-nodejs=\"`ami`\" pulumi-lang-dotnet=\"`Ami`\" pulumi-lang-go=\"`ami`\" pulumi-lang-python=\"`ami`\" pulumi-lang-yaml=\"`ami`\" pulumi-lang-java=\"`ami`\">`ami`</span>, <span pulumi-lang-nodejs=\"`ari`\" pulumi-lang-dotnet=\"`Ari`\" pulumi-lang-go=\"`ari`\" pulumi-lang-python=\"`ari`\" pulumi-lang-yaml=\"`ari`\" pulumi-lang-java=\"`ari`\">`ari`</span>, <span pulumi-lang-nodejs=\"`aki`\" pulumi-lang-dotnet=\"`Aki`\" pulumi-lang-go=\"`aki`\" pulumi-lang-python=\"`aki`\" pulumi-lang-yaml=\"`aki`\" pulumi-lang-java=\"`aki`\">`aki`</span>, <span pulumi-lang-nodejs=\"`vhd`\" pulumi-lang-dotnet=\"`Vhd`\" pulumi-lang-go=\"`vhd`\" pulumi-lang-python=\"`vhd`\" pulumi-lang-yaml=\"`vhd`\" pulumi-lang-java=\"`vhd`\">`vhd`</span>, <span pulumi-lang-nodejs=\"`vmdk`\" pulumi-lang-dotnet=\"`Vmdk`\" pulumi-lang-go=\"`vmdk`\" pulumi-lang-python=\"`vmdk`\" pulumi-lang-yaml=\"`vmdk`\" pulumi-lang-java=\"`vmdk`\">`vmdk`</span>, <span pulumi-lang-nodejs=\"`raw`\" pulumi-lang-dotnet=\"`Raw`\" pulumi-lang-go=\"`raw`\" pulumi-lang-python=\"`raw`\" pulumi-lang-yaml=\"`raw`\" pulumi-lang-java=\"`raw`\">`raw`</span>, <span pulumi-lang-nodejs=\"`qcow2`\" pulumi-lang-dotnet=\"`Qcow2`\" pulumi-lang-go=\"`qcow2`\" pulumi-lang-python=\"`qcow2`\" pulumi-lang-yaml=\"`qcow2`\" pulumi-lang-java=\"`qcow2`\">`qcow2`</span>, <span pulumi-lang-nodejs=\"`vdi`\" pulumi-lang-dotnet=\"`Vdi`\" pulumi-lang-go=\"`vdi`\" pulumi-lang-python=\"`vdi`\" pulumi-lang-yaml=\"`vdi`\" pulumi-lang-java=\"`vdi`\">`vdi`</span>, <span pulumi-lang-nodejs=\"`iso`\" pulumi-lang-dotnet=\"`Iso`\" pulumi-lang-go=\"`iso`\" pulumi-lang-python=\"`iso`\" pulumi-lang-yaml=\"`iso`\" pulumi-lang-java=\"`iso`\">`iso`</span>.\n","type":"string"},"file":{"description":"the trailing path after the glance\nendpoint that represent the location of the image\nor the path to retrieve it.\n","type":"string"},"hwFirmwareType":{"description":"Specifies the boot mode. The value can be <span pulumi-lang-nodejs=\"`bios`\" pulumi-lang-dotnet=\"`Bios`\" pulumi-lang-go=\"`bios`\" pulumi-lang-python=\"`bios`\" pulumi-lang-yaml=\"`bios`\" pulumi-lang-java=\"`bios`\">`bios`</span> or <span pulumi-lang-nodejs=\"`uefi`\" pulumi-lang-dotnet=\"`Uefi`\" pulumi-lang-go=\"`uefi`\" pulumi-lang-python=\"`uefi`\" pulumi-lang-yaml=\"`uefi`\" pulumi-lang-java=\"`uefi`\">`uefi`</span>.\n\n> **Note:** The <span pulumi-lang-nodejs=\"`properties`\" pulumi-lang-dotnet=\"`Properties`\" pulumi-lang-go=\"`properties`\" pulumi-lang-python=\"`properties`\" pulumi-lang-yaml=\"`properties`\" pulumi-lang-java=\"`properties`\">`properties`</span> attribute handling in the gophercloud library is currently buggy\nand needs to be fixed before being implemented in this resource.\n","type":"string"},"imageCachePath":{"type":"string"},"imageSourceUrl":{"description":"This is the url of the raw image that will\nbe downloaded in the <span pulumi-lang-nodejs=\"`imageCachePath`\" pulumi-lang-dotnet=\"`ImageCachePath`\" pulumi-lang-go=\"`imageCachePath`\" pulumi-lang-python=\"`image_cache_path`\" pulumi-lang-yaml=\"`imageCachePath`\" pulumi-lang-java=\"`imageCachePath`\">`image_cache_path`</span> before being uploaded to Glance.\nGlance is able to download image from internet but the <span pulumi-lang-nodejs=\"`gophercloud`\" pulumi-lang-dotnet=\"`Gophercloud`\" pulumi-lang-go=\"`gophercloud`\" pulumi-lang-python=\"`gophercloud`\" pulumi-lang-yaml=\"`gophercloud`\" pulumi-lang-java=\"`gophercloud`\">`gophercloud`</span> library\ndoes not yet provide a way to do so.\nConflicts with <span pulumi-lang-nodejs=\"`localFilePath`\" pulumi-lang-dotnet=\"`LocalFilePath`\" pulumi-lang-go=\"`localFilePath`\" pulumi-lang-python=\"`local_file_path`\" pulumi-lang-yaml=\"`localFilePath`\" pulumi-lang-java=\"`localFilePath`\">`local_file_path`</span>.\n","type":"string"},"imagesImageV2Id":{"description":"A unique ID assigned by Glance.\n","type":"string"},"localFilePath":{"description":"This is the filepath of the raw image file\nthat will be uploaded to Glance. Conflicts with <span pulumi-lang-nodejs=\"`imageSourceUrl`\" pulumi-lang-dotnet=\"`ImageSourceUrl`\" pulumi-lang-go=\"`imageSourceUrl`\" pulumi-lang-python=\"`image_source_url`\" pulumi-lang-yaml=\"`imageSourceUrl`\" pulumi-lang-java=\"`imageSourceUrl`\">`image_source_url`</span>.\n","type":"string"},"minDiskGb":{"description":"Amount of disk space (in GB) required to boot image.\nDefaults to 0.\n","type":"number"},"minRamMb":{"description":"Amount of ram (in MB) required to boot image.\nDefauts to 0.\n","type":"number"},"name":{"description":"The name of the image.\n","type":"string"},"owner":{"description":"The id of the opentelekomcloud user who owns the image.\n","type":"string"},"protected":{"description":"If true, image will not be deletable.\nDefaults to false.\n","type":"boolean"},"region":{"type":"string"},"schema":{"description":"The path to the JSON-schema that represent\nthe image or image\n","type":"string"},"sizeBytes":{"description":"The size in bytes of the data associated with the image.\n","type":"number"},"status":{"description":"The status of the image. It can be <span pulumi-lang-nodejs=\"`queued`\" pulumi-lang-dotnet=\"`Queued`\" pulumi-lang-go=\"`queued`\" pulumi-lang-python=\"`queued`\" pulumi-lang-yaml=\"`queued`\" pulumi-lang-java=\"`queued`\">`queued`</span>, <span pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\">`active`</span>\nor <span pulumi-lang-nodejs=\"`saving`\" pulumi-lang-dotnet=\"`Saving`\" pulumi-lang-go=\"`saving`\" pulumi-lang-python=\"`saving`\" pulumi-lang-yaml=\"`saving`\" pulumi-lang-java=\"`saving`\">`saving`</span>.\n","type":"string"},"tags":{"description":"The tags of the image. It must be a list of strings.\nAt this time, it is not possible to delete all tags of an image.\n","items":{"type":"string"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FImagesImageV2Timeouts:ImagesImageV2Timeouts"},"updateAt":{"description":"The date the image was last updated.\n","type":"string"},"visibility":{"description":"The visibility of the image. Must be one of\n\"public\", \"private\", \"community\", or \"shared\". The ability to set the\nvisibility depends upon the configuration of the OpenTelekomCloud cloud.\n","type":"string"}},"required":["checksum","containerFormat","createdAt","diskFormat","file","imagesImageV2Id","name","owner","region","schema","sizeBytes","status","updateAt","visibility"],"requiredInputs":["containerFormat","diskFormat"],"stateInputs":{"description":"Input properties used for looking up and filtering ImagesImageV2 resources.\n","properties":{"checksum":{"description":"The checksum of the data associated with the image.\n","type":"string"},"containerFormat":{"description":"The container format. Must be one of\n<span pulumi-lang-nodejs=\"`ami`\" pulumi-lang-dotnet=\"`Ami`\" pulumi-lang-go=\"`ami`\" pulumi-lang-python=\"`ami`\" pulumi-lang-yaml=\"`ami`\" pulumi-lang-java=\"`ami`\">`ami`</span>, <span pulumi-lang-nodejs=\"`ari`\" pulumi-lang-dotnet=\"`Ari`\" pulumi-lang-go=\"`ari`\" pulumi-lang-python=\"`ari`\" pulumi-lang-yaml=\"`ari`\" pulumi-lang-java=\"`ari`\">`ari`</span>, <span pulumi-lang-nodejs=\"`aki`\" pulumi-lang-dotnet=\"`Aki`\" pulumi-lang-go=\"`aki`\" pulumi-lang-python=\"`aki`\" pulumi-lang-yaml=\"`aki`\" pulumi-lang-java=\"`aki`\">`aki`</span>, <span pulumi-lang-nodejs=\"`bare`\" pulumi-lang-dotnet=\"`Bare`\" pulumi-lang-go=\"`bare`\" pulumi-lang-python=\"`bare`\" pulumi-lang-yaml=\"`bare`\" pulumi-lang-java=\"`bare`\">`bare`</span>, <span pulumi-lang-nodejs=\"`ovf`\" pulumi-lang-dotnet=\"`Ovf`\" pulumi-lang-go=\"`ovf`\" pulumi-lang-python=\"`ovf`\" pulumi-lang-yaml=\"`ovf`\" pulumi-lang-java=\"`ovf`\">`ovf`</span>.\n","type":"string"},"createdAt":{"description":"The date the image was created.\n","type":"string"},"diskFormat":{"description":"The disk format. Must be one of\n<span pulumi-lang-nodejs=\"`ami`\" pulumi-lang-dotnet=\"`Ami`\" pulumi-lang-go=\"`ami`\" pulumi-lang-python=\"`ami`\" pulumi-lang-yaml=\"`ami`\" pulumi-lang-java=\"`ami`\">`ami`</span>, <span pulumi-lang-nodejs=\"`ari`\" pulumi-lang-dotnet=\"`Ari`\" pulumi-lang-go=\"`ari`\" pulumi-lang-python=\"`ari`\" pulumi-lang-yaml=\"`ari`\" pulumi-lang-java=\"`ari`\">`ari`</span>, <span pulumi-lang-nodejs=\"`aki`\" pulumi-lang-dotnet=\"`Aki`\" pulumi-lang-go=\"`aki`\" pulumi-lang-python=\"`aki`\" pulumi-lang-yaml=\"`aki`\" pulumi-lang-java=\"`aki`\">`aki`</span>, <span pulumi-lang-nodejs=\"`vhd`\" pulumi-lang-dotnet=\"`Vhd`\" pulumi-lang-go=\"`vhd`\" pulumi-lang-python=\"`vhd`\" pulumi-lang-yaml=\"`vhd`\" pulumi-lang-java=\"`vhd`\">`vhd`</span>, <span pulumi-lang-nodejs=\"`vmdk`\" pulumi-lang-dotnet=\"`Vmdk`\" pulumi-lang-go=\"`vmdk`\" pulumi-lang-python=\"`vmdk`\" pulumi-lang-yaml=\"`vmdk`\" pulumi-lang-java=\"`vmdk`\">`vmdk`</span>, <span pulumi-lang-nodejs=\"`raw`\" pulumi-lang-dotnet=\"`Raw`\" pulumi-lang-go=\"`raw`\" pulumi-lang-python=\"`raw`\" pulumi-lang-yaml=\"`raw`\" pulumi-lang-java=\"`raw`\">`raw`</span>, <span pulumi-lang-nodejs=\"`qcow2`\" pulumi-lang-dotnet=\"`Qcow2`\" pulumi-lang-go=\"`qcow2`\" pulumi-lang-python=\"`qcow2`\" pulumi-lang-yaml=\"`qcow2`\" pulumi-lang-java=\"`qcow2`\">`qcow2`</span>, <span pulumi-lang-nodejs=\"`vdi`\" pulumi-lang-dotnet=\"`Vdi`\" pulumi-lang-go=\"`vdi`\" pulumi-lang-python=\"`vdi`\" pulumi-lang-yaml=\"`vdi`\" pulumi-lang-java=\"`vdi`\">`vdi`</span>, <span pulumi-lang-nodejs=\"`iso`\" pulumi-lang-dotnet=\"`Iso`\" pulumi-lang-go=\"`iso`\" pulumi-lang-python=\"`iso`\" pulumi-lang-yaml=\"`iso`\" pulumi-lang-java=\"`iso`\">`iso`</span>.\n","type":"string"},"file":{"description":"the trailing path after the glance\nendpoint that represent the location of the image\nor the path to retrieve it.\n","type":"string"},"hwFirmwareType":{"description":"Specifies the boot mode. The value can be <span pulumi-lang-nodejs=\"`bios`\" pulumi-lang-dotnet=\"`Bios`\" pulumi-lang-go=\"`bios`\" pulumi-lang-python=\"`bios`\" pulumi-lang-yaml=\"`bios`\" pulumi-lang-java=\"`bios`\">`bios`</span> or <span pulumi-lang-nodejs=\"`uefi`\" pulumi-lang-dotnet=\"`Uefi`\" pulumi-lang-go=\"`uefi`\" pulumi-lang-python=\"`uefi`\" pulumi-lang-yaml=\"`uefi`\" pulumi-lang-java=\"`uefi`\">`uefi`</span>.\n\n> **Note:** The <span pulumi-lang-nodejs=\"`properties`\" pulumi-lang-dotnet=\"`Properties`\" pulumi-lang-go=\"`properties`\" pulumi-lang-python=\"`properties`\" pulumi-lang-yaml=\"`properties`\" pulumi-lang-java=\"`properties`\">`properties`</span> attribute handling in the gophercloud library is currently buggy\nand needs to be fixed before being implemented in this resource.\n","type":"string"},"imageCachePath":{"type":"string"},"imageSourceUrl":{"description":"This is the url of the raw image that will\nbe downloaded in the <span pulumi-lang-nodejs=\"`imageCachePath`\" pulumi-lang-dotnet=\"`ImageCachePath`\" pulumi-lang-go=\"`imageCachePath`\" pulumi-lang-python=\"`image_cache_path`\" pulumi-lang-yaml=\"`imageCachePath`\" pulumi-lang-java=\"`imageCachePath`\">`image_cache_path`</span> before being uploaded to Glance.\nGlance is able to download image from internet but the <span pulumi-lang-nodejs=\"`gophercloud`\" pulumi-lang-dotnet=\"`Gophercloud`\" pulumi-lang-go=\"`gophercloud`\" pulumi-lang-python=\"`gophercloud`\" pulumi-lang-yaml=\"`gophercloud`\" pulumi-lang-java=\"`gophercloud`\">`gophercloud`</span> library\ndoes not yet provide a way to do so.\nConflicts with <span pulumi-lang-nodejs=\"`localFilePath`\" pulumi-lang-dotnet=\"`LocalFilePath`\" pulumi-lang-go=\"`localFilePath`\" pulumi-lang-python=\"`local_file_path`\" pulumi-lang-yaml=\"`localFilePath`\" pulumi-lang-java=\"`localFilePath`\">`local_file_path`</span>.\n","type":"string"},"imagesImageV2Id":{"description":"A unique ID assigned by Glance.\n","type":"string"},"localFilePath":{"description":"This is the filepath of the raw image file\nthat will be uploaded to Glance. Conflicts with <span pulumi-lang-nodejs=\"`imageSourceUrl`\" pulumi-lang-dotnet=\"`ImageSourceUrl`\" pulumi-lang-go=\"`imageSourceUrl`\" pulumi-lang-python=\"`image_source_url`\" pulumi-lang-yaml=\"`imageSourceUrl`\" pulumi-lang-java=\"`imageSourceUrl`\">`image_source_url`</span>.\n","type":"string"},"minDiskGb":{"description":"Amount of disk space (in GB) required to boot image.\nDefaults to 0.\n","type":"number"},"minRamMb":{"description":"Amount of ram (in MB) required to boot image.\nDefauts to 0.\n","type":"number"},"name":{"description":"The name of the image.\n","type":"string"},"owner":{"description":"The id of the opentelekomcloud user who owns the image.\n","type":"string"},"protected":{"description":"If true, image will not be deletable.\nDefaults to false.\n","type":"boolean"},"region":{"type":"string"},"schema":{"description":"The path to the JSON-schema that represent\nthe image or image\n","type":"string"},"sizeBytes":{"description":"The size in bytes of the data associated with the image.\n","type":"number"},"status":{"description":"The status of the image. It can be <span pulumi-lang-nodejs=\"`queued`\" pulumi-lang-dotnet=\"`Queued`\" pulumi-lang-go=\"`queued`\" pulumi-lang-python=\"`queued`\" pulumi-lang-yaml=\"`queued`\" pulumi-lang-java=\"`queued`\">`queued`</span>, <span pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\">`active`</span>\nor <span pulumi-lang-nodejs=\"`saving`\" pulumi-lang-dotnet=\"`Saving`\" pulumi-lang-go=\"`saving`\" pulumi-lang-python=\"`saving`\" pulumi-lang-yaml=\"`saving`\" pulumi-lang-java=\"`saving`\">`saving`</span>.\n","type":"string"},"tags":{"description":"The tags of the image. It must be a list of strings.\nAt this time, it is not possible to delete all tags of an image.\n","items":{"type":"string"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FImagesImageV2Timeouts:ImagesImageV2Timeouts"},"updateAt":{"description":"The date the image was last updated.\n","type":"string"},"visibility":{"description":"The visibility of the image. Must be one of\n\"public\", \"private\", \"community\", or \"shared\". The ability to set the\nvisibility depends upon the configuration of the OpenTelekomCloud cloud.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/imsDataImageV2:ImsDataImageV2":{"description":"Up-to-date reference of API arguments for IMS data image you can get at\n[documentation portal](https://docs.otc.t-systems.com/image-management-service/api-ref/ims_apis/image)\n\nManages a V2 Data Image resource within OpenTelekomCloud IMS.\n\n## Example Usage\n\n###  Creating a data disk image using an ECS\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst imsTest = new opentelekomcloud.ImsDataImageV2(\"ims_test\", {\n    name: \"imt_test\",\n    volumeId: \"54a6c3a4-8511-4d01-818f-3fe5177cbb06\",\n    description: \"Create an image using an ECS.\",\n    tags: {\n        foo: \"bar\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nims_test = opentelekomcloud.ImsDataImageV2(\"ims_test\",\n    name=\"imt_test\",\n    volume_id=\"54a6c3a4-8511-4d01-818f-3fe5177cbb06\",\n    description=\"Create an image using an ECS.\",\n    tags={\n        \"foo\": \"bar\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var imsTest = new Opentelekomcloud.ImsDataImageV2(\"ims_test\", new()\n    {\n        Name = \"imt_test\",\n        VolumeId = \"54a6c3a4-8511-4d01-818f-3fe5177cbb06\",\n        Description = \"Create an image using an ECS.\",\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewImsDataImageV2(ctx, \"ims_test\", &opentelekomcloud.ImsDataImageV2Args{\n\t\t\tName:        pulumi.String(\"imt_test\"),\n\t\t\tVolumeId:    pulumi.String(\"54a6c3a4-8511-4d01-818f-3fe5177cbb06\"),\n\t\t\tDescription: pulumi.String(\"Create an image using an ECS.\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ImsDataImageV2;\nimport com.pulumi.opentelekomcloud.ImsDataImageV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var imsTest = new ImsDataImageV2(\"imsTest\", ImsDataImageV2Args.builder()\n            .name(\"imt_test\")\n            .volumeId(\"54a6c3a4-8511-4d01-818f-3fe5177cbb06\")\n            .description(\"Create an image using an ECS.\")\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  imsTest:\n    type: opentelekomcloud:ImsDataImageV2\n    name: ims_test\n    properties:\n      name: imt_test\n      volumeId: 54a6c3a4-8511-4d01-818f-3fe5177cbb06\n      description: Create an image using an ECS.\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n###  Creating a data disk image in the OBS bucket\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst imsTestFile = new opentelekomcloud.ImsDataImageV2(\"ims_test_file\", {\n    name: \"ims_test_file\",\n    imageUrl: \"ims-image:centos70.qcow2\",\n    minDisk: 40,\n    osType: \"Linux\",\n    description: \"Create an image using a file in the OBS bucket.\",\n    tags: {\n        foo: \"bar1\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nims_test_file = opentelekomcloud.ImsDataImageV2(\"ims_test_file\",\n    name=\"ims_test_file\",\n    image_url=\"ims-image:centos70.qcow2\",\n    min_disk=40,\n    os_type=\"Linux\",\n    description=\"Create an image using a file in the OBS bucket.\",\n    tags={\n        \"foo\": \"bar1\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var imsTestFile = new Opentelekomcloud.ImsDataImageV2(\"ims_test_file\", new()\n    {\n        Name = \"ims_test_file\",\n        ImageUrl = \"ims-image:centos70.qcow2\",\n        MinDisk = 40,\n        OsType = \"Linux\",\n        Description = \"Create an image using a file in the OBS bucket.\",\n        Tags = \n        {\n            { \"foo\", \"bar1\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewImsDataImageV2(ctx, \"ims_test_file\", &opentelekomcloud.ImsDataImageV2Args{\n\t\t\tName:        pulumi.String(\"ims_test_file\"),\n\t\t\tImageUrl:    pulumi.String(\"ims-image:centos70.qcow2\"),\n\t\t\tMinDisk:     pulumi.Float64(40),\n\t\t\tOsType:      pulumi.String(\"Linux\"),\n\t\t\tDescription: pulumi.String(\"Create an image using a file in the OBS bucket.\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar1\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ImsDataImageV2;\nimport com.pulumi.opentelekomcloud.ImsDataImageV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var imsTestFile = new ImsDataImageV2(\"imsTestFile\", ImsDataImageV2Args.builder()\n            .name(\"ims_test_file\")\n            .imageUrl(\"ims-image:centos70.qcow2\")\n            .minDisk(40.0)\n            .osType(\"Linux\")\n            .description(\"Create an image using a file in the OBS bucket.\")\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar1\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  imsTestFile:\n    type: opentelekomcloud:ImsDataImageV2\n    name: ims_test_file\n    properties:\n      name: ims_test_file\n      imageUrl: ims-image:centos70.qcow2\n      minDisk: 40\n      osType: Linux\n      description: Create an image using a file in the OBS bucket.\n      tags:\n        foo: bar1\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nImages can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/imsDataImageV2:ImsDataImageV2 my_image 7886e623-f1b3-473e-b882-67ba1c35887f\n```\n\n","inputProperties":{"cmkId":{"description":"The master key used for encrypting an image.\nChanging this creates a new image.\n","type":"string"},"description":{"description":"A description of the image. Changing this creates a new image.\n","type":"string"},"imageUrl":{"description":"The URL of the external image file in the OBS bucket.\nThis parameter is mandatory when you create a private image from an external file\nuploaded to an OBS bucket. The format is *OBS bucket name:Image file name*.\nChanging this creates a new image.\n","type":"string"},"imsDataImageV2Id":{"description":"A unique ID assigned by IMS.\n","type":"string"},"minDisk":{"description":"The minimum size of the system disk in the unit of GB.\nThis parameter is mandatory when you create a private image from an external file\nuploaded to an OBS bucket. The value ranges from 1 GB to 1024 GB.\nChanging this creates a new image.\n","type":"number"},"name":{"description":"The name of the image.\n","type":"string"},"osType":{"description":"The OS type. It can only be Windows or Linux.\nThis parameter is valid when you create a private image from an external file\nuploaded to an OBS bucket. Changing this creates a new image.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The tags of the image.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FImsDataImageV2Timeouts:ImsDataImageV2Timeouts"},"volumeId":{"description":"The ID of the ECS atatched volume that needs to be converted into an image.\nThis parameter is mandatory when you create a privete image from an ECS.\nChanging this creates a new image.\n","type":"string"}},"properties":{"cmkId":{"description":"The master key used for encrypting an image.\nChanging this creates a new image.\n","type":"string"},"dataOrigin":{"description":"The image resource. The pattern can be 'instance,*instance_id*' or 'file,*image_url*'.\n","type":"string"},"description":{"description":"A description of the image. Changing this creates a new image.\n","type":"string"},"diskFormat":{"description":"The image file format. The value can be <span pulumi-lang-nodejs=\"`vhd`\" pulumi-lang-dotnet=\"`Vhd`\" pulumi-lang-go=\"`vhd`\" pulumi-lang-python=\"`vhd`\" pulumi-lang-yaml=\"`vhd`\" pulumi-lang-java=\"`vhd`\">`vhd`</span>, <span pulumi-lang-nodejs=\"`zvhd`\" pulumi-lang-dotnet=\"`Zvhd`\" pulumi-lang-go=\"`zvhd`\" pulumi-lang-python=\"`zvhd`\" pulumi-lang-yaml=\"`zvhd`\" pulumi-lang-java=\"`zvhd`\">`zvhd`</span>, <span pulumi-lang-nodejs=\"`raw`\" pulumi-lang-dotnet=\"`Raw`\" pulumi-lang-go=\"`raw`\" pulumi-lang-python=\"`raw`\" pulumi-lang-yaml=\"`raw`\" pulumi-lang-java=\"`raw`\">`raw`</span>, <span pulumi-lang-nodejs=\"`zvhd2`\" pulumi-lang-dotnet=\"`Zvhd2`\" pulumi-lang-go=\"`zvhd2`\" pulumi-lang-python=\"`zvhd2`\" pulumi-lang-yaml=\"`zvhd2`\" pulumi-lang-java=\"`zvhd2`\">`zvhd2`</span>, or <span pulumi-lang-nodejs=\"`qcow2`\" pulumi-lang-dotnet=\"`Qcow2`\" pulumi-lang-go=\"`qcow2`\" pulumi-lang-python=\"`qcow2`\" pulumi-lang-yaml=\"`qcow2`\" pulumi-lang-java=\"`qcow2`\">`qcow2`</span>.\n","type":"string"},"imageSize":{"description":"The size(bytes) of the image file format.\n","type":"string"},"imageUrl":{"description":"The URL of the external image file in the OBS bucket.\nThis parameter is mandatory when you create a private image from an external file\nuploaded to an OBS bucket. The format is *OBS bucket name:Image file name*.\nChanging this creates a new image.\n","type":"string"},"imsDataImageV2Id":{"description":"A unique ID assigned by IMS.\n","type":"string"},"minDisk":{"description":"The minimum size of the system disk in the unit of GB.\nThis parameter is mandatory when you create a private image from an external file\nuploaded to an OBS bucket. The value ranges from 1 GB to 1024 GB.\nChanging this creates a new image.\n","type":"number"},"name":{"description":"The name of the image.\n","type":"string"},"osType":{"description":"The OS type. It can only be Windows or Linux.\nThis parameter is valid when you create a private image from an external file\nuploaded to an OBS bucket. Changing this creates a new image.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The tags of the image.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FImsDataImageV2Timeouts:ImsDataImageV2Timeouts"},"visibility":{"description":"Whether the image is visible to other tenants.\n","type":"string"},"volumeId":{"description":"The ID of the ECS atatched volume that needs to be converted into an image.\nThis parameter is mandatory when you create a privete image from an ECS.\nChanging this creates a new image.\n","type":"string"}},"required":["dataOrigin","diskFormat","imageSize","imsDataImageV2Id","name","visibility"],"stateInputs":{"description":"Input properties used for looking up and filtering ImsDataImageV2 resources.\n","properties":{"cmkId":{"description":"The master key used for encrypting an image.\nChanging this creates a new image.\n","type":"string"},"dataOrigin":{"description":"The image resource. The pattern can be 'instance,*instance_id*' or 'file,*image_url*'.\n","type":"string"},"description":{"description":"A description of the image. Changing this creates a new image.\n","type":"string"},"diskFormat":{"description":"The image file format. The value can be <span pulumi-lang-nodejs=\"`vhd`\" pulumi-lang-dotnet=\"`Vhd`\" pulumi-lang-go=\"`vhd`\" pulumi-lang-python=\"`vhd`\" pulumi-lang-yaml=\"`vhd`\" pulumi-lang-java=\"`vhd`\">`vhd`</span>, <span pulumi-lang-nodejs=\"`zvhd`\" pulumi-lang-dotnet=\"`Zvhd`\" pulumi-lang-go=\"`zvhd`\" pulumi-lang-python=\"`zvhd`\" pulumi-lang-yaml=\"`zvhd`\" pulumi-lang-java=\"`zvhd`\">`zvhd`</span>, <span pulumi-lang-nodejs=\"`raw`\" pulumi-lang-dotnet=\"`Raw`\" pulumi-lang-go=\"`raw`\" pulumi-lang-python=\"`raw`\" pulumi-lang-yaml=\"`raw`\" pulumi-lang-java=\"`raw`\">`raw`</span>, <span pulumi-lang-nodejs=\"`zvhd2`\" pulumi-lang-dotnet=\"`Zvhd2`\" pulumi-lang-go=\"`zvhd2`\" pulumi-lang-python=\"`zvhd2`\" pulumi-lang-yaml=\"`zvhd2`\" pulumi-lang-java=\"`zvhd2`\">`zvhd2`</span>, or <span pulumi-lang-nodejs=\"`qcow2`\" pulumi-lang-dotnet=\"`Qcow2`\" pulumi-lang-go=\"`qcow2`\" pulumi-lang-python=\"`qcow2`\" pulumi-lang-yaml=\"`qcow2`\" pulumi-lang-java=\"`qcow2`\">`qcow2`</span>.\n","type":"string"},"imageSize":{"description":"The size(bytes) of the image file format.\n","type":"string"},"imageUrl":{"description":"The URL of the external image file in the OBS bucket.\nThis parameter is mandatory when you create a private image from an external file\nuploaded to an OBS bucket. The format is *OBS bucket name:Image file name*.\nChanging this creates a new image.\n","type":"string"},"imsDataImageV2Id":{"description":"A unique ID assigned by IMS.\n","type":"string"},"minDisk":{"description":"The minimum size of the system disk in the unit of GB.\nThis parameter is mandatory when you create a private image from an external file\nuploaded to an OBS bucket. The value ranges from 1 GB to 1024 GB.\nChanging this creates a new image.\n","type":"number"},"name":{"description":"The name of the image.\n","type":"string"},"osType":{"description":"The OS type. It can only be Windows or Linux.\nThis parameter is valid when you create a private image from an external file\nuploaded to an OBS bucket. Changing this creates a new image.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The tags of the image.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FImsDataImageV2Timeouts:ImsDataImageV2Timeouts"},"visibility":{"description":"Whether the image is visible to other tenants.\n","type":"string"},"volumeId":{"description":"The ID of the ECS atatched volume that needs to be converted into an image.\nThis parameter is mandatory when you create a privete image from an ECS.\nChanging this creates a new image.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/imsImageShareAcceptV1:ImsImageShareAcceptV1":{"description":"Manages an IMS image share accept resource within OpenTelekomCloud.\n\n> Creating resource means accepting shared image, while destroying resource means rejecting shared image.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst sharedImageId = config.requireObject<any>(\"sharedImageId\");\nconst acc = new opentelekomcloud.ImsImageShareAcceptV1(\"acc\", {imageId: sharedImageId});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nshared_image_id = config.require_object(\"sharedImageId\")\nacc = opentelekomcloud.ImsImageShareAcceptV1(\"acc\", image_id=shared_image_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var sharedImageId = config.RequireObject<dynamic>(\"sharedImageId\");\n    var acc = new Opentelekomcloud.ImsImageShareAcceptV1(\"acc\", new()\n    {\n        ImageId = sharedImageId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tsharedImageId := cfg.RequireObject(\"sharedImageId\")\n\t\t_, err := opentelekomcloud.NewImsImageShareAcceptV1(ctx, \"acc\", &opentelekomcloud.ImsImageShareAcceptV1Args{\n\t\t\tImageId: pulumi.Any(sharedImageId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ImsImageShareAcceptV1;\nimport com.pulumi.opentelekomcloud.ImsImageShareAcceptV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var sharedImageId = config.get(\"sharedImageId\");\n        var acc = new ImsImageShareAcceptV1(\"acc\", ImsImageShareAcceptV1Args.builder()\n            .imageId(sharedImageId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  sharedImageId:\n    type: dynamic\nresources:\n  acc:\n    type: opentelekomcloud:ImsImageShareAcceptV1\n    properties:\n      imageId: ${sharedImageId}\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"imageId":{"description":"Specifies the ID of the image.\n\nChanging this parameter will create a new resource.\n","type":"string"},"imsImageShareAcceptV1Id":{"description":"The resource ID in UUID format.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FImsImageShareAcceptV1Timeouts:ImsImageShareAcceptV1Timeouts"},"vaultId":{"description":"Specifies the ID of a vault. This parameter is mandatory if you want\nto accept a shared full-ECS image created from a CBR backup.\n\nChanging this parameter will create a new resource.\n","type":"string"}},"properties":{"imageId":{"description":"Specifies the ID of the image.\n\nChanging this parameter will create a new resource.\n","type":"string"},"imsImageShareAcceptV1Id":{"description":"The resource ID in UUID format.\n","type":"string"},"region":{"description":"The region in which resource is located.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FImsImageShareAcceptV1Timeouts:ImsImageShareAcceptV1Timeouts"},"vaultId":{"description":"Specifies the ID of a vault. This parameter is mandatory if you want\nto accept a shared full-ECS image created from a CBR backup.\n\nChanging this parameter will create a new resource.\n","type":"string"}},"required":["imageId","imsImageShareAcceptV1Id","region","vaultId"],"requiredInputs":["imageId"],"stateInputs":{"description":"Input properties used for looking up and filtering ImsImageShareAcceptV1 resources.\n","properties":{"imageId":{"description":"Specifies the ID of the image.\n\nChanging this parameter will create a new resource.\n","type":"string"},"imsImageShareAcceptV1Id":{"description":"The resource ID in UUID format.\n","type":"string"},"region":{"description":"The region in which resource is located.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FImsImageShareAcceptV1Timeouts:ImsImageShareAcceptV1Timeouts"},"vaultId":{"description":"Specifies the ID of a vault. This parameter is mandatory if you want\nto accept a shared full-ECS image created from a CBR backup.\n\nChanging this parameter will create a new resource.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/imsImageShareV1:ImsImageShareV1":{"description":"Manages an IMS image share resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst sourceImageId = config.requireObject<any>(\"sourceImageId\");\nconst targetProjectIds = config.requireObject<any>(\"targetProjectIds\");\nconst share = new opentelekomcloud.ImsImageShareV1(\"share\", {\n    sourceImageId: sourceImageId,\n    targetProjectIds: targetProjectIds,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nsource_image_id = config.require_object(\"sourceImageId\")\ntarget_project_ids = config.require_object(\"targetProjectIds\")\nshare = opentelekomcloud.ImsImageShareV1(\"share\",\n    source_image_id=source_image_id,\n    target_project_ids=target_project_ids)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var sourceImageId = config.RequireObject<dynamic>(\"sourceImageId\");\n    var targetProjectIds = config.RequireObject<dynamic>(\"targetProjectIds\");\n    var share = new Opentelekomcloud.ImsImageShareV1(\"share\", new()\n    {\n        SourceImageId = sourceImageId,\n        TargetProjectIds = targetProjectIds,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tsourceImageId := cfg.RequireObject(\"sourceImageId\")\n\t\ttargetProjectIds := cfg.RequireObject(\"targetProjectIds\")\n\t\t_, err := opentelekomcloud.NewImsImageShareV1(ctx, \"share\", &opentelekomcloud.ImsImageShareV1Args{\n\t\t\tSourceImageId:    pulumi.Any(sourceImageId),\n\t\t\tTargetProjectIds: pulumi.Any(targetProjectIds),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ImsImageShareV1;\nimport com.pulumi.opentelekomcloud.ImsImageShareV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var sourceImageId = config.get(\"sourceImageId\");\n        final var targetProjectIds = config.get(\"targetProjectIds\");\n        var share = new ImsImageShareV1(\"share\", ImsImageShareV1Args.builder()\n            .sourceImageId(sourceImageId)\n            .targetProjectIds(targetProjectIds)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  sourceImageId:\n    type: dynamic\n  targetProjectIds:\n    type: dynamic\nresources:\n  share:\n    type: opentelekomcloud:ImsImageShareV1\n    properties:\n      sourceImageId: ${sourceImageId}\n      targetProjectIds: ${targetProjectIds}\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"imsImageShareV1Id":{"description":"The resource ID, same as <span pulumi-lang-nodejs=\"`sourceImageId`\" pulumi-lang-dotnet=\"`SourceImageId`\" pulumi-lang-go=\"`sourceImageId`\" pulumi-lang-python=\"`source_image_id`\" pulumi-lang-yaml=\"`sourceImageId`\" pulumi-lang-java=\"`sourceImageId`\">`source_image_id`</span>.\n","type":"string"},"sourceImageId":{"description":"Specifies the ID of the source image. The source image must be in the\nsame region as the current resource.\n\nChanging this parameter will create a new resource.\n","type":"string"},"targetProjectIds":{"description":"Specifies the IDs of the target projects.\n","items":{"type":"string"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FImsImageShareV1Timeouts:ImsImageShareV1Timeouts"}},"properties":{"imsImageShareV1Id":{"description":"The resource ID, same as <span pulumi-lang-nodejs=\"`sourceImageId`\" pulumi-lang-dotnet=\"`SourceImageId`\" pulumi-lang-go=\"`sourceImageId`\" pulumi-lang-python=\"`source_image_id`\" pulumi-lang-yaml=\"`sourceImageId`\" pulumi-lang-java=\"`sourceImageId`\">`source_image_id`</span>.\n","type":"string"},"region":{"description":"The region in which resource is located.\n","type":"string"},"sourceImageId":{"description":"Specifies the ID of the source image. The source image must be in the\nsame region as the current resource.\n\nChanging this parameter will create a new resource.\n","type":"string"},"targetProjectIds":{"description":"Specifies the IDs of the target projects.\n","items":{"type":"string"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FImsImageShareV1Timeouts:ImsImageShareV1Timeouts"}},"required":["imsImageShareV1Id","region","sourceImageId","targetProjectIds"],"requiredInputs":["sourceImageId","targetProjectIds"],"stateInputs":{"description":"Input properties used for looking up and filtering ImsImageShareV1 resources.\n","properties":{"imsImageShareV1Id":{"description":"The resource ID, same as <span pulumi-lang-nodejs=\"`sourceImageId`\" pulumi-lang-dotnet=\"`SourceImageId`\" pulumi-lang-go=\"`sourceImageId`\" pulumi-lang-python=\"`source_image_id`\" pulumi-lang-yaml=\"`sourceImageId`\" pulumi-lang-java=\"`sourceImageId`\">`source_image_id`</span>.\n","type":"string"},"region":{"description":"The region in which resource is located.\n","type":"string"},"sourceImageId":{"description":"Specifies the ID of the source image. The source image must be in the\nsame region as the current resource.\n\nChanging this parameter will create a new resource.\n","type":"string"},"targetProjectIds":{"description":"Specifies the IDs of the target projects.\n","items":{"type":"string"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FImsImageShareV1Timeouts:ImsImageShareV1Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/imsImageV2:ImsImageV2":{"description":"Up-to-date reference of API arguments for IMS image you can get at\n[documentation portal](https://docs.otc.t-systems.com/image-management-service/api-ref/ims_apis/image)\n\nManages a V2 Image resource within OpenTelekomCloud IMS.\n\n## Example Usage\n\n###  Creating an image using an ECS\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst imsTest = new opentelekomcloud.ImsImageV2(\"ims_test\", {\n    name: \"imt_test\",\n    instanceId: \"54a6c3a4-8511-4d01-818f-3fe5177cbb06\",\n    description: \"Create an image using an ECS.\",\n    tags: {\n        foo: \"bar\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nims_test = opentelekomcloud.ImsImageV2(\"ims_test\",\n    name=\"imt_test\",\n    instance_id=\"54a6c3a4-8511-4d01-818f-3fe5177cbb06\",\n    description=\"Create an image using an ECS.\",\n    tags={\n        \"foo\": \"bar\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var imsTest = new Opentelekomcloud.ImsImageV2(\"ims_test\", new()\n    {\n        Name = \"imt_test\",\n        InstanceId = \"54a6c3a4-8511-4d01-818f-3fe5177cbb06\",\n        Description = \"Create an image using an ECS.\",\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewImsImageV2(ctx, \"ims_test\", &opentelekomcloud.ImsImageV2Args{\n\t\t\tName:        pulumi.String(\"imt_test\"),\n\t\t\tInstanceId:  pulumi.String(\"54a6c3a4-8511-4d01-818f-3fe5177cbb06\"),\n\t\t\tDescription: pulumi.String(\"Create an image using an ECS.\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ImsImageV2;\nimport com.pulumi.opentelekomcloud.ImsImageV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var imsTest = new ImsImageV2(\"imsTest\", ImsImageV2Args.builder()\n            .name(\"imt_test\")\n            .instanceId(\"54a6c3a4-8511-4d01-818f-3fe5177cbb06\")\n            .description(\"Create an image using an ECS.\")\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  imsTest:\n    type: opentelekomcloud:ImsImageV2\n    name: ims_test\n    properties:\n      name: imt_test\n      instanceId: 54a6c3a4-8511-4d01-818f-3fe5177cbb06\n      description: Create an image using an ECS.\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n###  Creating an image in the OBS bucket\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst imsTestFile = new opentelekomcloud.ImsImageV2(\"ims_test_file\", {\n    name: \"ims_test_file\",\n    imageUrl: \"ims-image:centos70.qcow2\",\n    minDisk: 40,\n    description: \"Create an image using a file in the OBS bucket.\",\n    tags: {\n        foo: \"bar1\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nims_test_file = opentelekomcloud.ImsImageV2(\"ims_test_file\",\n    name=\"ims_test_file\",\n    image_url=\"ims-image:centos70.qcow2\",\n    min_disk=40,\n    description=\"Create an image using a file in the OBS bucket.\",\n    tags={\n        \"foo\": \"bar1\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var imsTestFile = new Opentelekomcloud.ImsImageV2(\"ims_test_file\", new()\n    {\n        Name = \"ims_test_file\",\n        ImageUrl = \"ims-image:centos70.qcow2\",\n        MinDisk = 40,\n        Description = \"Create an image using a file in the OBS bucket.\",\n        Tags = \n        {\n            { \"foo\", \"bar1\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewImsImageV2(ctx, \"ims_test_file\", &opentelekomcloud.ImsImageV2Args{\n\t\t\tName:        pulumi.String(\"ims_test_file\"),\n\t\t\tImageUrl:    pulumi.String(\"ims-image:centos70.qcow2\"),\n\t\t\tMinDisk:     pulumi.Float64(40),\n\t\t\tDescription: pulumi.String(\"Create an image using a file in the OBS bucket.\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar1\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ImsImageV2;\nimport com.pulumi.opentelekomcloud.ImsImageV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var imsTestFile = new ImsImageV2(\"imsTestFile\", ImsImageV2Args.builder()\n            .name(\"ims_test_file\")\n            .imageUrl(\"ims-image:centos70.qcow2\")\n            .minDisk(40.0)\n            .description(\"Create an image using a file in the OBS bucket.\")\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar1\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  imsTestFile:\n    type: opentelekomcloud:ImsImageV2\n    name: ims_test_file\n    properties:\n      name: ims_test_file\n      imageUrl: ims-image:centos70.qcow2\n      minDisk: 40\n      description: Create an image using a file in the OBS bucket.\n      tags:\n        foo: bar1\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n###  Creating an image using an Volume\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst imageVolume = new opentelekomcloud.ImsImageV2(\"image_volume\", {\n    name: \"image_volume\",\n    volumeId: \"54a6c3a4-8511-4d01-818f-3fe5177cbb07\",\n    osVersion: \"Debian GNU/Linux 10.0.0 64bit\",\n    description: \"created by Terraform\",\n    tags: {\n        foo: \"bar\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nimage_volume = opentelekomcloud.ImsImageV2(\"image_volume\",\n    name=\"image_volume\",\n    volume_id=\"54a6c3a4-8511-4d01-818f-3fe5177cbb07\",\n    os_version=\"Debian GNU/Linux 10.0.0 64bit\",\n    description=\"created by Terraform\",\n    tags={\n        \"foo\": \"bar\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var imageVolume = new Opentelekomcloud.ImsImageV2(\"image_volume\", new()\n    {\n        Name = \"image_volume\",\n        VolumeId = \"54a6c3a4-8511-4d01-818f-3fe5177cbb07\",\n        OsVersion = \"Debian GNU/Linux 10.0.0 64bit\",\n        Description = \"created by Terraform\",\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewImsImageV2(ctx, \"image_volume\", &opentelekomcloud.ImsImageV2Args{\n\t\t\tName:        pulumi.String(\"image_volume\"),\n\t\t\tVolumeId:    pulumi.String(\"54a6c3a4-8511-4d01-818f-3fe5177cbb07\"),\n\t\t\tOsVersion:   pulumi.String(\"Debian GNU/Linux 10.0.0 64bit\"),\n\t\t\tDescription: pulumi.String(\"created by Terraform\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ImsImageV2;\nimport com.pulumi.opentelekomcloud.ImsImageV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var imageVolume = new ImsImageV2(\"imageVolume\", ImsImageV2Args.builder()\n            .name(\"image_volume\")\n            .volumeId(\"54a6c3a4-8511-4d01-818f-3fe5177cbb07\")\n            .osVersion(\"Debian GNU/Linux 10.0.0 64bit\")\n            .description(\"created by Terraform\")\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  imageVolume:\n    type: opentelekomcloud:ImsImageV2\n    name: image_volume\n    properties:\n      name: image_volume\n      volumeId: 54a6c3a4-8511-4d01-818f-3fe5177cbb07\n      osVersion: Debian GNU/Linux 10.0.0 64bit\n      description: created by Terraform\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nImages can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/imsImageV2:ImsImageV2 my_image 7886e623-f1b3-473e-b882-67ba1c35887f\n```\n\n","inputProperties":{"cmkId":{"description":"The master key used for encrypting an image.\nChanging this creates a new image.\n","type":"string"},"description":{"description":"A description of the image. Changing this creates a new image.\n","type":"string"},"hwFirmwareType":{"description":"Specifies the boot mode. The value can be <span pulumi-lang-nodejs=\"`bios`\" pulumi-lang-dotnet=\"`Bios`\" pulumi-lang-go=\"`bios`\" pulumi-lang-python=\"`bios`\" pulumi-lang-yaml=\"`bios`\" pulumi-lang-java=\"`bios`\">`bios`</span> or <span pulumi-lang-nodejs=\"`uefi`\" pulumi-lang-dotnet=\"`Uefi`\" pulumi-lang-go=\"`uefi`\" pulumi-lang-python=\"`uefi`\" pulumi-lang-yaml=\"`uefi`\" pulumi-lang-java=\"`uefi`\">`uefi`</span>.\n","type":"string"},"imageUrl":{"description":"The URL of the external image file in the OBS bucket.\nThis parameter is mandatory when you create a private image from an external file\nuploaded to an OBS bucket. The format is *OBS bucket name:Image file name*.\nChanging this creates a new image.\n","type":"string"},"imsImageV2Id":{"description":"A unique ID assigned by IMS.\n","type":"string"},"instanceId":{"description":"The ID of the ECS that needs to be converted into an image.\nThis parameter is mandatory when you create a private image from an ECS.\nChanging this creates a new image.\n","type":"string"},"isConfig":{"description":"If automatic configuration is required, set the value to true.\nOtherwise, set the value to false. Changing this creates a new image.\n","type":"boolean"},"maxRam":{"description":"The maximum memory of the image in the unit of MB.\nChanging this creates a new image.\n","type":"number"},"minDisk":{"description":"The minimum size of the system disk in the unit of GB.\nThis parameter is mandatory when you create a private image from an external file\nuploaded to an OBS bucket. The value ranges from 1 GB to 1024 GB.\nChanging this creates a new image.\n","type":"number"},"minRam":{"description":"The minimum memory of the image in the unit of MB.\nThe default value is 0, indicating that the memory is not restricted.\nChanging this creates a new image.\n","type":"number"},"name":{"description":"The name of the image.\n","type":"string"},"osVersion":{"description":"The OS version.\nThis parameter is valid when you create a private image from an external file.\nThis parameter is mandatory when you create a private image from a volume.\nuploaded to an OBS bucket. Changing this creates a new image.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The tags of the image.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FImsImageV2Timeouts:ImsImageV2Timeouts"},"type":{"description":"The image type. Must be one of `ECS`, `FusionCompute`, `BMS`,\n`Ironic` or `IsoImage`. Changing this creates a new image.\n","type":"string"},"volumeId":{"description":"Specifies the data disk ID.\nThis parameter is mandatory when you create a private image from a volume.\nChanging this creates a new image.\n","type":"string"}},"properties":{"cmkId":{"description":"The master key used for encrypting an image.\nChanging this creates a new image.\n","type":"string"},"dataOrigin":{"description":"The image resource. The pattern can be 'instance,*instance_id*' or 'file,*image_url*'.\n","type":"string"},"description":{"description":"A description of the image. Changing this creates a new image.\n","type":"string"},"diskFormat":{"description":"The image file format. The value can be <span pulumi-lang-nodejs=\"`vhd`\" pulumi-lang-dotnet=\"`Vhd`\" pulumi-lang-go=\"`vhd`\" pulumi-lang-python=\"`vhd`\" pulumi-lang-yaml=\"`vhd`\" pulumi-lang-java=\"`vhd`\">`vhd`</span>, <span pulumi-lang-nodejs=\"`zvhd`\" pulumi-lang-dotnet=\"`Zvhd`\" pulumi-lang-go=\"`zvhd`\" pulumi-lang-python=\"`zvhd`\" pulumi-lang-yaml=\"`zvhd`\" pulumi-lang-java=\"`zvhd`\">`zvhd`</span>, <span pulumi-lang-nodejs=\"`raw`\" pulumi-lang-dotnet=\"`Raw`\" pulumi-lang-go=\"`raw`\" pulumi-lang-python=\"`raw`\" pulumi-lang-yaml=\"`raw`\" pulumi-lang-java=\"`raw`\">`raw`</span>, <span pulumi-lang-nodejs=\"`zvhd2`\" pulumi-lang-dotnet=\"`Zvhd2`\" pulumi-lang-go=\"`zvhd2`\" pulumi-lang-python=\"`zvhd2`\" pulumi-lang-yaml=\"`zvhd2`\" pulumi-lang-java=\"`zvhd2`\">`zvhd2`</span>, or <span pulumi-lang-nodejs=\"`qcow2`\" pulumi-lang-dotnet=\"`Qcow2`\" pulumi-lang-go=\"`qcow2`\" pulumi-lang-python=\"`qcow2`\" pulumi-lang-yaml=\"`qcow2`\" pulumi-lang-java=\"`qcow2`\">`qcow2`</span>.\n","type":"string"},"file":{"description":"The URL for uploading and downloading the image file.\n","type":"string"},"hwFirmwareType":{"description":"Specifies the boot mode. The value can be <span pulumi-lang-nodejs=\"`bios`\" pulumi-lang-dotnet=\"`Bios`\" pulumi-lang-go=\"`bios`\" pulumi-lang-python=\"`bios`\" pulumi-lang-yaml=\"`bios`\" pulumi-lang-java=\"`bios`\">`bios`</span> or <span pulumi-lang-nodejs=\"`uefi`\" pulumi-lang-dotnet=\"`Uefi`\" pulumi-lang-go=\"`uefi`\" pulumi-lang-python=\"`uefi`\" pulumi-lang-yaml=\"`uefi`\" pulumi-lang-java=\"`uefi`\">`uefi`</span>.\n","type":"string"},"imageSize":{"description":"The size(bytes) of the image file format.\n","type":"string"},"imageUrl":{"description":"The URL of the external image file in the OBS bucket.\nThis parameter is mandatory when you create a private image from an external file\nuploaded to an OBS bucket. The format is *OBS bucket name:Image file name*.\nChanging this creates a new image.\n","type":"string"},"imsImageV2Id":{"description":"A unique ID assigned by IMS.\n","type":"string"},"instanceId":{"description":"The ID of the ECS that needs to be converted into an image.\nThis parameter is mandatory when you create a private image from an ECS.\nChanging this creates a new image.\n","type":"string"},"isConfig":{"description":"If automatic configuration is required, set the value to true.\nOtherwise, set the value to false. Changing this creates a new image.\n","type":"boolean"},"maxRam":{"description":"The maximum memory of the image in the unit of MB.\nChanging this creates a new image.\n","type":"number"},"minDisk":{"description":"The minimum size of the system disk in the unit of GB.\nThis parameter is mandatory when you create a private image from an external file\nuploaded to an OBS bucket. The value ranges from 1 GB to 1024 GB.\nChanging this creates a new image.\n","type":"number"},"minRam":{"description":"The minimum memory of the image in the unit of MB.\nThe default value is 0, indicating that the memory is not restricted.\nChanging this creates a new image.\n","type":"number"},"name":{"description":"The name of the image.\n","type":"string"},"osVersion":{"description":"The OS version.\nThis parameter is valid when you create a private image from an external file.\nThis parameter is mandatory when you create a private image from a volume.\nuploaded to an OBS bucket. Changing this creates a new image.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The tags of the image.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FImsImageV2Timeouts:ImsImageV2Timeouts"},"type":{"description":"The image type. Must be one of `ECS`, `FusionCompute`, `BMS`,\n`Ironic` or `IsoImage`. Changing this creates a new image.\n","type":"string"},"visibility":{"description":"Whether the image is visible to other tenants.\n","type":"string"},"volumeId":{"description":"Specifies the data disk ID.\nThis parameter is mandatory when you create a private image from a volume.\nChanging this creates a new image.\n","type":"string"}},"required":["dataOrigin","diskFormat","file","imageSize","imsImageV2Id","name","visibility"],"stateInputs":{"description":"Input properties used for looking up and filtering ImsImageV2 resources.\n","properties":{"cmkId":{"description":"The master key used for encrypting an image.\nChanging this creates a new image.\n","type":"string"},"dataOrigin":{"description":"The image resource. The pattern can be 'instance,*instance_id*' or 'file,*image_url*'.\n","type":"string"},"description":{"description":"A description of the image. Changing this creates a new image.\n","type":"string"},"diskFormat":{"description":"The image file format. The value can be <span pulumi-lang-nodejs=\"`vhd`\" pulumi-lang-dotnet=\"`Vhd`\" pulumi-lang-go=\"`vhd`\" pulumi-lang-python=\"`vhd`\" pulumi-lang-yaml=\"`vhd`\" pulumi-lang-java=\"`vhd`\">`vhd`</span>, <span pulumi-lang-nodejs=\"`zvhd`\" pulumi-lang-dotnet=\"`Zvhd`\" pulumi-lang-go=\"`zvhd`\" pulumi-lang-python=\"`zvhd`\" pulumi-lang-yaml=\"`zvhd`\" pulumi-lang-java=\"`zvhd`\">`zvhd`</span>, <span pulumi-lang-nodejs=\"`raw`\" pulumi-lang-dotnet=\"`Raw`\" pulumi-lang-go=\"`raw`\" pulumi-lang-python=\"`raw`\" pulumi-lang-yaml=\"`raw`\" pulumi-lang-java=\"`raw`\">`raw`</span>, <span pulumi-lang-nodejs=\"`zvhd2`\" pulumi-lang-dotnet=\"`Zvhd2`\" pulumi-lang-go=\"`zvhd2`\" pulumi-lang-python=\"`zvhd2`\" pulumi-lang-yaml=\"`zvhd2`\" pulumi-lang-java=\"`zvhd2`\">`zvhd2`</span>, or <span pulumi-lang-nodejs=\"`qcow2`\" pulumi-lang-dotnet=\"`Qcow2`\" pulumi-lang-go=\"`qcow2`\" pulumi-lang-python=\"`qcow2`\" pulumi-lang-yaml=\"`qcow2`\" pulumi-lang-java=\"`qcow2`\">`qcow2`</span>.\n","type":"string"},"file":{"description":"The URL for uploading and downloading the image file.\n","type":"string"},"hwFirmwareType":{"description":"Specifies the boot mode. The value can be <span pulumi-lang-nodejs=\"`bios`\" pulumi-lang-dotnet=\"`Bios`\" pulumi-lang-go=\"`bios`\" pulumi-lang-python=\"`bios`\" pulumi-lang-yaml=\"`bios`\" pulumi-lang-java=\"`bios`\">`bios`</span> or <span pulumi-lang-nodejs=\"`uefi`\" pulumi-lang-dotnet=\"`Uefi`\" pulumi-lang-go=\"`uefi`\" pulumi-lang-python=\"`uefi`\" pulumi-lang-yaml=\"`uefi`\" pulumi-lang-java=\"`uefi`\">`uefi`</span>.\n","type":"string"},"imageSize":{"description":"The size(bytes) of the image file format.\n","type":"string"},"imageUrl":{"description":"The URL of the external image file in the OBS bucket.\nThis parameter is mandatory when you create a private image from an external file\nuploaded to an OBS bucket. The format is *OBS bucket name:Image file name*.\nChanging this creates a new image.\n","type":"string"},"imsImageV2Id":{"description":"A unique ID assigned by IMS.\n","type":"string"},"instanceId":{"description":"The ID of the ECS that needs to be converted into an image.\nThis parameter is mandatory when you create a private image from an ECS.\nChanging this creates a new image.\n","type":"string"},"isConfig":{"description":"If automatic configuration is required, set the value to true.\nOtherwise, set the value to false. Changing this creates a new image.\n","type":"boolean"},"maxRam":{"description":"The maximum memory of the image in the unit of MB.\nChanging this creates a new image.\n","type":"number"},"minDisk":{"description":"The minimum size of the system disk in the unit of GB.\nThis parameter is mandatory when you create a private image from an external file\nuploaded to an OBS bucket. The value ranges from 1 GB to 1024 GB.\nChanging this creates a new image.\n","type":"number"},"minRam":{"description":"The minimum memory of the image in the unit of MB.\nThe default value is 0, indicating that the memory is not restricted.\nChanging this creates a new image.\n","type":"number"},"name":{"description":"The name of the image.\n","type":"string"},"osVersion":{"description":"The OS version.\nThis parameter is valid when you create a private image from an external file.\nThis parameter is mandatory when you create a private image from a volume.\nuploaded to an OBS bucket. Changing this creates a new image.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The tags of the image.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FImsImageV2Timeouts:ImsImageV2Timeouts"},"type":{"description":"The image type. Must be one of `ECS`, `FusionCompute`, `BMS`,\n`Ironic` or `IsoImage`. Changing this creates a new image.\n","type":"string"},"visibility":{"description":"Whether the image is visible to other tenants.\n","type":"string"},"volumeId":{"description":"Specifies the data disk ID.\nThis parameter is mandatory when you create a private image from a volume.\nChanging this creates a new image.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/kmsGrantV1:KmsGrantV1":{"description":"Up-to-date reference of API arguments for KMS grant you can get at\n[documentation portal](https://docs.otc.t-systems.com/key-management-service/api-ref/apis)\n\nManages a V1 KMS grant resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst grant1 = new opentelekomcloud.KmsGrantV1(\"grant_1\", {\n    keyId: kmsId,\n    name: \"my_grant\",\n    granteePrincipal: userId,\n    operations: [\n        \"describe-key\",\n        \"create-datakey\",\n        \"encrypt-datakey\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ngrant1 = opentelekomcloud.KmsGrantV1(\"grant_1\",\n    key_id=kms_id,\n    name=\"my_grant\",\n    grantee_principal=user_id,\n    operations=[\n        \"describe-key\",\n        \"create-datakey\",\n        \"encrypt-datakey\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var grant1 = new Opentelekomcloud.KmsGrantV1(\"grant_1\", new()\n    {\n        KeyId = kmsId,\n        Name = \"my_grant\",\n        GranteePrincipal = userId,\n        Operations = new[]\n        {\n            \"describe-key\",\n            \"create-datakey\",\n            \"encrypt-datakey\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewKmsGrantV1(ctx, \"grant_1\", &opentelekomcloud.KmsGrantV1Args{\n\t\t\tKeyId:            pulumi.Any(kmsId),\n\t\t\tName:             pulumi.String(\"my_grant\"),\n\t\t\tGranteePrincipal: pulumi.Any(userId),\n\t\t\tOperations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"describe-key\"),\n\t\t\t\tpulumi.String(\"create-datakey\"),\n\t\t\t\tpulumi.String(\"encrypt-datakey\"),\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.opentelekomcloud.KmsGrantV1;\nimport com.pulumi.opentelekomcloud.KmsGrantV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var grant1 = new KmsGrantV1(\"grant1\", KmsGrantV1Args.builder()\n            .keyId(kmsId)\n            .name(\"my_grant\")\n            .granteePrincipal(userId)\n            .operations(            \n                \"describe-key\",\n                \"create-datakey\",\n                \"encrypt-datakey\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  grant1:\n    type: opentelekomcloud:KmsGrantV1\n    name: grant_1\n    properties:\n      keyId: ${kmsId}\n      name: my_grant\n      granteePrincipal: ${userId}\n      operations:\n        - describe-key\n        - create-datakey\n        - encrypt-datakey\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nKMS Grants can be imported using the `key_id/grant_id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/kmsGrantV1:KmsGrantV1 grant_1 4779ab1c-7c1a-44b1-a02e-93dfc361b32d/7056d636-ac60-4663-8a6c-82d3c32c1c64\n```\n\n","inputProperties":{"granteePrincipal":{"description":"Indicates the ID of the authorized user.\nChanging this creates new grant.\n","type":"string"},"keyId":{"description":"Indicates the ID of the KMS. Changing this creates new grant.\n","type":"string"},"kmsGrantV1Id":{"type":"string"},"name":{"description":"Name of a grant which can be 1 to 255 characters in length\nand matches the regular expression `^[a-zA-Z0-9:/_-]{1,255}$`.\nChanging this creates new grant.\n","type":"string"},"operations":{"description":"Permissions that can be granted.\nThe valid values are: `create-datakey`, `create-datakey-without-plaintext`,\n`encrypt-datakey`, `decrypt-datakey`, `describe-key`, `create-grant`, `retire-grant`.\nChanging this creates new grant.\n","items":{"type":"string"},"type":"array"},"retiringPrincipal":{"description":"Indicates the ID of the retiring user.\nChanging this creates new grant.\n","type":"string"}},"properties":{"creationDate":{"description":"Creation time. The value is a timestamp expressed in the number of\nseconds since 00:00:00 UTC on January 1, 1970.\n","type":"string"},"granteePrincipal":{"description":"Indicates the ID of the authorized user.\nChanging this creates new grant.\n","type":"string"},"issuingPrincipal":{"description":"Indicates the ID of the user who created the grant.\n","type":"string"},"keyId":{"description":"Indicates the ID of the KMS. Changing this creates new grant.\n","type":"string"},"kmsGrantV1Id":{"type":"string"},"name":{"description":"Name of a grant which can be 1 to 255 characters in length\nand matches the regular expression `^[a-zA-Z0-9:/_-]{1,255}$`.\nChanging this creates new grant.\n","type":"string"},"operations":{"description":"Permissions that can be granted.\nThe valid values are: `create-datakey`, `create-datakey-without-plaintext`,\n`encrypt-datakey`, `decrypt-datakey`, `describe-key`, `create-grant`, `retire-grant`.\nChanging this creates new grant.\n","items":{"type":"string"},"type":"array"},"retiringPrincipal":{"description":"Indicates the ID of the retiring user.\nChanging this creates new grant.\n","type":"string"}},"required":["creationDate","granteePrincipal","issuingPrincipal","keyId","kmsGrantV1Id","name"],"requiredInputs":["granteePrincipal","keyId"],"stateInputs":{"description":"Input properties used for looking up and filtering KmsGrantV1 resources.\n","properties":{"creationDate":{"description":"Creation time. The value is a timestamp expressed in the number of\nseconds since 00:00:00 UTC on January 1, 1970.\n","type":"string"},"granteePrincipal":{"description":"Indicates the ID of the authorized user.\nChanging this creates new grant.\n","type":"string"},"issuingPrincipal":{"description":"Indicates the ID of the user who created the grant.\n","type":"string"},"keyId":{"description":"Indicates the ID of the KMS. Changing this creates new grant.\n","type":"string"},"kmsGrantV1Id":{"type":"string"},"name":{"description":"Name of a grant which can be 1 to 255 characters in length\nand matches the regular expression `^[a-zA-Z0-9:/_-]{1,255}$`.\nChanging this creates new grant.\n","type":"string"},"operations":{"description":"Permissions that can be granted.\nThe valid values are: `create-datakey`, `create-datakey-without-plaintext`,\n`encrypt-datakey`, `decrypt-datakey`, `describe-key`, `create-grant`, `retire-grant`.\nChanging this creates new grant.\n","items":{"type":"string"},"type":"array"},"retiringPrincipal":{"description":"Indicates the ID of the retiring user.\nChanging this creates new grant.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/kmsKeyMaterialV1:KmsKeyMaterialV1":{"description":"Up-to-date reference of API arguments for KMS Key Material you can get at\n[documentation portal](https://docs.otc.t-systems.com/key-management-service/api-ref/apis/cmk_management/importing_cmk_material.html)\n\nManages a KMS key material resource within OpenTelekomCloud.\n\n> NOTE: Please confirm that the state of the imported key is pending import.\n\n## Example Usage\n\n### Basic usage\n\nvariable <span pulumi-lang-nodejs=\"\"keyId\"\" pulumi-lang-dotnet=\"\"KeyId\"\" pulumi-lang-go=\"\"keyId\"\" pulumi-lang-python=\"\"key_id\"\" pulumi-lang-yaml=\"\"keyId\"\" pulumi-lang-java=\"\"keyId\"\">\"key_id\"</span> {}\nvariable <span pulumi-lang-nodejs=\"\"importToken\"\" pulumi-lang-dotnet=\"\"ImportToken\"\" pulumi-lang-go=\"\"importToken\"\" pulumi-lang-python=\"\"import_token\"\" pulumi-lang-yaml=\"\"importToken\"\" pulumi-lang-java=\"\"importToken\"\">\"import_token\"</span> {}\nvariable <span pulumi-lang-nodejs=\"\"encryptedKeyMaterial\"\" pulumi-lang-dotnet=\"\"EncryptedKeyMaterial\"\" pulumi-lang-go=\"\"encryptedKeyMaterial\"\" pulumi-lang-python=\"\"encrypted_key_material\"\" pulumi-lang-yaml=\"\"encryptedKeyMaterial\"\" pulumi-lang-java=\"\"encryptedKeyMaterial\"\">\"encrypted_key_material\"</span> {}\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = new opentelekomcloud.KmsKeyMaterialV1(\"test\", {\n    keyId: keyId,\n    importToken: importToken,\n    encryptedKeyMaterial: encryptedKeyMaterial,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.KmsKeyMaterialV1(\"test\",\n    key_id=key_id,\n    import_token=import_token,\n    encrypted_key_material=encrypted_key_material)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = new Opentelekomcloud.KmsKeyMaterialV1(\"test\", new()\n    {\n        KeyId = keyId,\n        ImportToken = importToken,\n        EncryptedKeyMaterial = encryptedKeyMaterial,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewKmsKeyMaterialV1(ctx, \"test\", &opentelekomcloud.KmsKeyMaterialV1Args{\n\t\t\tKeyId:                pulumi.Any(keyId),\n\t\t\tImportToken:          pulumi.Any(importToken),\n\t\t\tEncryptedKeyMaterial: pulumi.Any(encryptedKeyMaterial),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.KmsKeyMaterialV1;\nimport com.pulumi.opentelekomcloud.KmsKeyMaterialV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new KmsKeyMaterialV1(\"test\", KmsKeyMaterialV1Args.builder()\n            .keyId(keyId)\n            .importToken(importToken)\n            .encryptedKeyMaterial(encryptedKeyMaterial)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: opentelekomcloud:KmsKeyMaterialV1\n    properties:\n      keyId: ${keyId}\n      importToken: ${importToken}\n      encryptedKeyMaterial: ${encryptedKeyMaterial}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe KMS key material can be imported using `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/kmsKeyMaterialV1:KmsKeyMaterialV1 test 7056d636-ac60-4663-8a6c-82d3c32c1c64\n```\n\nNote that the imported state may not be identical to your resource definition,\n\ndue to `import_token`, `encrypted_key_material` and `encrypted_privatekey` are missing from the API response.\n\nIt is generally recommended running `pulumi preview` after importing a KMS key material.\n\nYou can then decide if changes should be applied to the KMS key material, or the resource\n\ndefinition should be updated to align with the KMS key material. Also you can ignore changes as below.\n\nhcl\n\nresource \"opentelekomcloud_kms_key_material_v1\" \"test\" {\n\n  lifecycle {\n\n    ignore_changes = [import_token, encrypted_key_material, encrypted_privatekey]\n\n  }\n\n}\n\n","inputProperties":{"encryptedKeyMaterial":{"description":"Specifies the encrypted symmetric key material in Base64 format.\nThe value contains <span pulumi-lang-nodejs=\"`344`\" pulumi-lang-dotnet=\"`344`\" pulumi-lang-go=\"`344`\" pulumi-lang-python=\"`344`\" pulumi-lang-yaml=\"`344`\" pulumi-lang-java=\"`344`\">`344`</span> to <span pulumi-lang-nodejs=\"`360`\" pulumi-lang-dotnet=\"`360`\" pulumi-lang-go=\"`360`\" pulumi-lang-python=\"`360`\" pulumi-lang-yaml=\"`360`\" pulumi-lang-java=\"`360`\">`360`</span> characters, including letters, digits, slashes(/) and equals(=).\nIf an asymmetric key is imported, this parameter is a temporary intermediate key used to encrypt the private key.\nThis value is obtained refer to\n[documentation](https://docs.otc.t-systems.com/key-management-service/umn/user_guide/key_management/creating_cmks_using_imported_key_material/importing_a_key_material.html).\n","type":"string"},"expirationTime":{"description":"Specifies the expiration time of the key material.\nThis field is only valid for symmetric keys. The time is in the format of timestamp, that is, the\noffset seconds from 1970-01-01 00:00:00 UTC to the specified time.\nThe time must be greater than the current time.\n","type":"string"},"importToken":{"description":"Specifies the key import token in Base64 format.\nThe value contains <span pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\">`200`</span> to <span pulumi-lang-nodejs=\"`6144`\" pulumi-lang-dotnet=\"`6144`\" pulumi-lang-go=\"`6144`\" pulumi-lang-python=\"`6144`\" pulumi-lang-yaml=\"`6144`\" pulumi-lang-java=\"`6144`\">`6144`</span> characters, including letters, digits, slashes(/) and equals(=). This value is\nobtained through the interface [Obtaining Key Import Parameters](https://docs.otc.t-systems.com/key-management-service/api-ref/apis/cmk_management/obtaining_cmk_import_parameters.html)\nor by using `data_source/kms_key_material_parameters_v1`.\n","type":"string"},"keyId":{"description":"Specifies the ID of the KMS key.\nChanging this creates a new resource.\n","type":"string"},"kmsKeyMaterialV1Id":{"description":"The resource ID which equals the <span pulumi-lang-nodejs=\"`keyId`\" pulumi-lang-dotnet=\"`KeyId`\" pulumi-lang-go=\"`keyId`\" pulumi-lang-python=\"`key_id`\" pulumi-lang-yaml=\"`keyId`\" pulumi-lang-java=\"`keyId`\">`key_id`</span>.\n","type":"string"}},"properties":{"encryptedKeyMaterial":{"description":"Specifies the encrypted symmetric key material in Base64 format.\nThe value contains <span pulumi-lang-nodejs=\"`344`\" pulumi-lang-dotnet=\"`344`\" pulumi-lang-go=\"`344`\" pulumi-lang-python=\"`344`\" pulumi-lang-yaml=\"`344`\" pulumi-lang-java=\"`344`\">`344`</span> to <span pulumi-lang-nodejs=\"`360`\" pulumi-lang-dotnet=\"`360`\" pulumi-lang-go=\"`360`\" pulumi-lang-python=\"`360`\" pulumi-lang-yaml=\"`360`\" pulumi-lang-java=\"`360`\">`360`</span> characters, including letters, digits, slashes(/) and equals(=).\nIf an asymmetric key is imported, this parameter is a temporary intermediate key used to encrypt the private key.\nThis value is obtained refer to\n[documentation](https://docs.otc.t-systems.com/key-management-service/umn/user_guide/key_management/creating_cmks_using_imported_key_material/importing_a_key_material.html).\n","type":"string"},"expirationTime":{"description":"Specifies the expiration time of the key material.\nThis field is only valid for symmetric keys. The time is in the format of timestamp, that is, the\noffset seconds from 1970-01-01 00:00:00 UTC to the specified time.\nThe time must be greater than the current time.\n","type":"string"},"importToken":{"description":"Specifies the key import token in Base64 format.\nThe value contains <span pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\">`200`</span> to <span pulumi-lang-nodejs=\"`6144`\" pulumi-lang-dotnet=\"`6144`\" pulumi-lang-go=\"`6144`\" pulumi-lang-python=\"`6144`\" pulumi-lang-yaml=\"`6144`\" pulumi-lang-java=\"`6144`\">`6144`</span> characters, including letters, digits, slashes(/) and equals(=). This value is\nobtained through the interface [Obtaining Key Import Parameters](https://docs.otc.t-systems.com/key-management-service/api-ref/apis/cmk_management/obtaining_cmk_import_parameters.html)\nor by using `data_source/kms_key_material_parameters_v1`.\n","type":"string"},"keyId":{"description":"Specifies the ID of the KMS key.\nChanging this creates a new resource.\n","type":"string"},"keyState":{"description":"The status of the kms key. The valid values are as follows:\n**1**: To be activated\n**2**: Enabled.\n**3**: Disabled.\n**4**: Pending deletion.\n**5**: Pending import.\n","type":"string"},"kmsKeyMaterialV1Id":{"description":"The resource ID which equals the <span pulumi-lang-nodejs=\"`keyId`\" pulumi-lang-dotnet=\"`KeyId`\" pulumi-lang-go=\"`keyId`\" pulumi-lang-python=\"`key_id`\" pulumi-lang-yaml=\"`keyId`\" pulumi-lang-java=\"`keyId`\">`key_id`</span>.\n","type":"string"},"region":{"description":"The region in which KMS key is created.\n","type":"string"}},"required":["encryptedKeyMaterial","expirationTime","importToken","keyId","keyState","kmsKeyMaterialV1Id","region"],"requiredInputs":["encryptedKeyMaterial","importToken","keyId"],"stateInputs":{"description":"Input properties used for looking up and filtering KmsKeyMaterialV1 resources.\n","properties":{"encryptedKeyMaterial":{"description":"Specifies the encrypted symmetric key material in Base64 format.\nThe value contains <span pulumi-lang-nodejs=\"`344`\" pulumi-lang-dotnet=\"`344`\" pulumi-lang-go=\"`344`\" pulumi-lang-python=\"`344`\" pulumi-lang-yaml=\"`344`\" pulumi-lang-java=\"`344`\">`344`</span> to <span pulumi-lang-nodejs=\"`360`\" pulumi-lang-dotnet=\"`360`\" pulumi-lang-go=\"`360`\" pulumi-lang-python=\"`360`\" pulumi-lang-yaml=\"`360`\" pulumi-lang-java=\"`360`\">`360`</span> characters, including letters, digits, slashes(/) and equals(=).\nIf an asymmetric key is imported, this parameter is a temporary intermediate key used to encrypt the private key.\nThis value is obtained refer to\n[documentation](https://docs.otc.t-systems.com/key-management-service/umn/user_guide/key_management/creating_cmks_using_imported_key_material/importing_a_key_material.html).\n","type":"string"},"expirationTime":{"description":"Specifies the expiration time of the key material.\nThis field is only valid for symmetric keys. The time is in the format of timestamp, that is, the\noffset seconds from 1970-01-01 00:00:00 UTC to the specified time.\nThe time must be greater than the current time.\n","type":"string"},"importToken":{"description":"Specifies the key import token in Base64 format.\nThe value contains <span pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\">`200`</span> to <span pulumi-lang-nodejs=\"`6144`\" pulumi-lang-dotnet=\"`6144`\" pulumi-lang-go=\"`6144`\" pulumi-lang-python=\"`6144`\" pulumi-lang-yaml=\"`6144`\" pulumi-lang-java=\"`6144`\">`6144`</span> characters, including letters, digits, slashes(/) and equals(=). This value is\nobtained through the interface [Obtaining Key Import Parameters](https://docs.otc.t-systems.com/key-management-service/api-ref/apis/cmk_management/obtaining_cmk_import_parameters.html)\nor by using `data_source/kms_key_material_parameters_v1`.\n","type":"string"},"keyId":{"description":"Specifies the ID of the KMS key.\nChanging this creates a new resource.\n","type":"string"},"keyState":{"description":"The status of the kms key. The valid values are as follows:\n**1**: To be activated\n**2**: Enabled.\n**3**: Disabled.\n**4**: Pending deletion.\n**5**: Pending import.\n","type":"string"},"kmsKeyMaterialV1Id":{"description":"The resource ID which equals the <span pulumi-lang-nodejs=\"`keyId`\" pulumi-lang-dotnet=\"`KeyId`\" pulumi-lang-go=\"`keyId`\" pulumi-lang-python=\"`key_id`\" pulumi-lang-yaml=\"`keyId`\" pulumi-lang-java=\"`keyId`\">`key_id`</span>.\n","type":"string"},"region":{"description":"The region in which KMS key is created.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/kmsKeyV1:KmsKeyV1":{"description":"Up-to-date reference of API arguments for KMS key you can get at\n[documentation portal](https://docs.otc.t-systems.com/key-management-service/api-ref/apis)\n\nManages a V1 KMS key resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst key1 = new opentelekomcloud.KmsKeyV1(\"key_1\", {\n    keyAlias: \"key_1\",\n    pendingDays: \"7\",\n    keyDescription: \"first test key\",\n    realm: \"eu-de-01\",\n    isEnabled: true,\n    tags: {\n        muh: \"kuh\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nkey1 = opentelekomcloud.KmsKeyV1(\"key_1\",\n    key_alias=\"key_1\",\n    pending_days=\"7\",\n    key_description=\"first test key\",\n    realm=\"eu-de-01\",\n    is_enabled=True,\n    tags={\n        \"muh\": \"kuh\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var key1 = new Opentelekomcloud.KmsKeyV1(\"key_1\", new()\n    {\n        KeyAlias = \"key_1\",\n        PendingDays = \"7\",\n        KeyDescription = \"first test key\",\n        Realm = \"eu-de-01\",\n        IsEnabled = true,\n        Tags = \n        {\n            { \"muh\", \"kuh\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewKmsKeyV1(ctx, \"key_1\", &opentelekomcloud.KmsKeyV1Args{\n\t\t\tKeyAlias:       pulumi.String(\"key_1\"),\n\t\t\tPendingDays:    pulumi.String(\"7\"),\n\t\t\tKeyDescription: pulumi.String(\"first test key\"),\n\t\t\tRealm:          pulumi.String(\"eu-de-01\"),\n\t\t\tIsEnabled:      pulumi.Bool(true),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"muh\": pulumi.String(\"kuh\"),\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.opentelekomcloud.KmsKeyV1;\nimport com.pulumi.opentelekomcloud.KmsKeyV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var key1 = new KmsKeyV1(\"key1\", KmsKeyV1Args.builder()\n            .keyAlias(\"key_1\")\n            .pendingDays(\"7\")\n            .keyDescription(\"first test key\")\n            .realm(\"eu-de-01\")\n            .isEnabled(true)\n            .tags(Map.of(\"muh\", \"kuh\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  key1:\n    type: opentelekomcloud:KmsKeyV1\n    name: key_1\n    properties:\n      keyAlias: key_1\n      pendingDays: '7'\n      keyDescription: first test key\n      realm: eu-de-01\n      isEnabled: true\n      tags:\n        muh: kuh\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nKMS Keys can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/kmsKeyV1:KmsKeyV1 key_1 7056d636-ac60-4663-8a6c-82d3c32c1c64\n```\n\n","inputProperties":{"allowCancelDeletion":{"description":"Specifies whether the key is enabled from Pending Deletion state. The value <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> indicates\nthat the key state Pending Deletion will be cancelled.\n","type":"boolean"},"isEnabled":{"description":"Specifies whether the KMS key is enabled.\nThe default value is **true**.\nThis parameter is not supported when creating an external import key for the first time.\n","type":"boolean"},"keyAlias":{"description":"The alias in which to create the key. It is required when\nwe create a new key. Changing this updates the alias of key.\n","type":"string"},"keyDescription":{"description":"The description of the key as viewed in OpenTelekomCloud console.\nChanging this updates the description of key.\n","type":"string"},"kmsKeyV1Id":{"description":"The globally unique identifier for the key.\n","type":"string"},"origin":{"description":"Specifies the source of the KMS key.\nChanging this parameter will create a new resource.\nThe default value is **kms**. The valid values are as follows:\n+ **kms**: The key is generated by KMS.\n+ **external**: The key is external imported.\n","type":"string"},"pendingDays":{"description":"Duration in days after which the key is deleted\nafter destruction of the resource, must be between 7 and 1096 days. Defaults to 7.\nIt only is used when delete a key.\n","type":"string"},"realm":{"description":"Region where a key resides. Changing this creates a new key.\n","type":"string"},"rotationEnabled":{"description":"Specifies whether the key is enabled for rotation.\n","type":"boolean"},"rotationInterval":{"description":"Rotation interval. The value is an integer ranging from 30 to 365.\nSet the interval based on how often a CMK is used.\nIf it is frequently used, set a short interval; otherwise, set a long one.\n","type":"number"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the AutoScaling Group.\n","type":"object"}},"properties":{"allowCancelDeletion":{"description":"Specifies whether the key is enabled from Pending Deletion state. The value <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> indicates\nthat the key state Pending Deletion will be cancelled.\n","type":"boolean"},"creationDate":{"description":"Creation time (time stamp) of a key.\n","type":"string"},"defaultKeyFlag":{"description":"Identification of a Master Key. The value <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> indicates a Default\nMaster Key, and the value <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> indicates a key.\n","type":"string"},"domainId":{"description":"ID of a user domain for the key.\n","type":"string"},"expirationTime":{"description":"Expiration time.\n","type":"string"},"isEnabled":{"description":"Specifies whether the KMS key is enabled.\nThe default value is **true**.\nThis parameter is not supported when creating an external import key for the first time.\n","type":"boolean"},"keyAlias":{"description":"The alias in which to create the key. It is required when\nwe create a new key. Changing this updates the alias of key.\n","type":"string"},"keyDescription":{"description":"The description of the key as viewed in OpenTelekomCloud console.\nChanging this updates the description of key.\n","type":"string"},"keyState":{"description":"The current status of the KMS key.\nThe valid values are as follows:\n+ **1**: To be activated.\n+ **2**: Enabled.\n+ **3**: Disabled.\n+ **4**: Pending deletion.\n+ **5**: Pending import.\n","type":"string"},"kmsKeyV1Id":{"description":"The globally unique identifier for the key.\n","type":"string"},"origin":{"description":"Specifies the source of the KMS key.\nChanging this parameter will create a new resource.\nThe default value is **kms**. The valid values are as follows:\n+ **kms**: The key is generated by KMS.\n+ **external**: The key is external imported.\n","type":"string"},"pendingDays":{"description":"Duration in days after which the key is deleted\nafter destruction of the resource, must be between 7 and 1096 days. Defaults to 7.\nIt only is used when delete a key.\n","type":"string"},"realm":{"description":"Region where a key resides. Changing this creates a new key.\n","type":"string"},"rotationEnabled":{"description":"Specifies whether the key is enabled for rotation.\n","type":"boolean"},"rotationInterval":{"description":"Rotation interval. The value is an integer ranging from 30 to 365.\nSet the interval based on how often a CMK is used.\nIf it is frequently used, set a short interval; otherwise, set a long one.\n","type":"number"},"rotationNumber":{"description":"Number of key rotations.\n","type":"number"},"scheduledDeletionDate":{"description":"Scheduled deletion time (time stamp) of a key.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the AutoScaling Group.\n","type":"object"}},"required":["creationDate","defaultKeyFlag","domainId","expirationTime","keyAlias","keyState","kmsKeyV1Id","origin","realm","rotationInterval","rotationNumber","scheduledDeletionDate"],"requiredInputs":["keyAlias"],"stateInputs":{"description":"Input properties used for looking up and filtering KmsKeyV1 resources.\n","properties":{"allowCancelDeletion":{"description":"Specifies whether the key is enabled from Pending Deletion state. The value <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> indicates\nthat the key state Pending Deletion will be cancelled.\n","type":"boolean"},"creationDate":{"description":"Creation time (time stamp) of a key.\n","type":"string"},"defaultKeyFlag":{"description":"Identification of a Master Key. The value <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> indicates a Default\nMaster Key, and the value <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> indicates a key.\n","type":"string"},"domainId":{"description":"ID of a user domain for the key.\n","type":"string"},"expirationTime":{"description":"Expiration time.\n","type":"string"},"isEnabled":{"description":"Specifies whether the KMS key is enabled.\nThe default value is **true**.\nThis parameter is not supported when creating an external import key for the first time.\n","type":"boolean"},"keyAlias":{"description":"The alias in which to create the key. It is required when\nwe create a new key. Changing this updates the alias of key.\n","type":"string"},"keyDescription":{"description":"The description of the key as viewed in OpenTelekomCloud console.\nChanging this updates the description of key.\n","type":"string"},"keyState":{"description":"The current status of the KMS key.\nThe valid values are as follows:\n+ **1**: To be activated.\n+ **2**: Enabled.\n+ **3**: Disabled.\n+ **4**: Pending deletion.\n+ **5**: Pending import.\n","type":"string"},"kmsKeyV1Id":{"description":"The globally unique identifier for the key.\n","type":"string"},"origin":{"description":"Specifies the source of the KMS key.\nChanging this parameter will create a new resource.\nThe default value is **kms**. The valid values are as follows:\n+ **kms**: The key is generated by KMS.\n+ **external**: The key is external imported.\n","type":"string"},"pendingDays":{"description":"Duration in days after which the key is deleted\nafter destruction of the resource, must be between 7 and 1096 days. Defaults to 7.\nIt only is used when delete a key.\n","type":"string"},"realm":{"description":"Region where a key resides. Changing this creates a new key.\n","type":"string"},"rotationEnabled":{"description":"Specifies whether the key is enabled for rotation.\n","type":"boolean"},"rotationInterval":{"description":"Rotation interval. The value is an integer ranging from 30 to 365.\nSet the interval based on how often a CMK is used.\nIf it is frequently used, set a short interval; otherwise, set a long one.\n","type":"number"},"rotationNumber":{"description":"Number of key rotations.\n","type":"number"},"scheduledDeletionDate":{"description":"Scheduled deletion time (time stamp) of a key.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the AutoScaling Group.\n","type":"object"}},"type":"object"},"type":"object"},"opentelekomcloud:index/lbCertificateV2:LbCertificateV2":{"description":"Up-to-date reference of API arguments for ELB certificate you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-load-balancing/api-ref/apis_v2.0/certificate)\n\nManages a V2 certificate resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst certificate1 = new opentelekomcloud.LbCertificateV2(\"certificate_1\", {\n    name: \"certificate_1\",\n    description: \"terraform test certificate\",\n    domain: \"www.elb.com\",\n    privateKey: `-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN2s8tZ/6LC3X82fajpVsYqF1x\nqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYldiE6Vp8HH5BSKaCWKVg8lGWg1\nUM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb3iyNBmiZ8aZhGw2pI1YwR+15\nMVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dzQ8z1JXWdg8/9Zx7Ktvgwu5PQ\nM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5mf2DPkVgM08XAgaLJcLigwD5\n13koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwIDAQABAoIBACU9S5fjD9/jTMXA\nDRs08A+gGgZUxLn0xk+NAPX3LyB1tfdkCaFB8BccLzO6h3KZuwQOBPv6jkdvEDbx\nNwyw3eA/9GJsIvKiHc0rejdvyPymaw9I8MA7NbXHaJrY7KpqDQyk6sx+aUTcy5jg\niMXLWdwXYHhJ/1HVOo603oZyiS6HZeYU089NDUcX+1SJi3e5Ke0gPVXEqCq1O11/\nrh24bMxnwZo4PKBWdcMBN5Zf/4ij9vrZE+fFzW7vGBO48A5lvZxWU2U5t/OZQRtN\n1uLOHmMFa0FIF2aWbTVfwdUWAFsvAOkHj9VV8BXOUwKOUuEktdkfAlvrxmsFrO/H\nyDeYYPkCgYEA/S55CBbR0sMXpSZ56uRn8JHApZJhgkgvYr+FqDlJq/e92nAzf01P\nRoEBUajwrnf1ycevN/SDfbtWzq2XJGqhWdJmtpO16b7KBsC6BdRcH6dnOYh31jgA\nvABMIP3wzI4zSVTyxRE8LDuboytF1mSCeV5tHYPQTZNwrplDnLQhywcCgYEAw8Yc\nUk/eiFr3hfH/ZohMfV5p82Qp7DNIGRzw8YtVG/3+vNXrAXW1VhugNhQY6L+zLtJC\naKn84ooup0m3YCg0hvINqJuvzfsuzQgtjTXyaE0cEwsjUusOmiuj09vVx/3U7siK\nHdjd2ICPCvQ6Q8tdi8jV320gMs05AtaBkZdsiWUCgYEAtLw4Kk4f+xTKDFsrLUNf\n75wcqhWVBiwBp7yQ7UX4EYsJPKZcHMRTk0EEcAbpyaJZE3I44vjp5ReXIHNLMfPs\nuvI34J4Rfot0LN3n7cFrAi2+wpNo+MOBwrNzpRmijGP2uKKrq4JiMjFbKV/6utGF\nUp7VxfwS904JYpqGaZctiIECgYA1A6nZtF0riY6ry/uAdXpZHL8ONNqRZtWoT0kD\n79otSVu5ISiRbaGcXsDExC52oKrSDAgFtbqQUiEOFg09UcXfoR6HwRkba2CiDwve\nyHQLQI5Qrdxz8Mk0gIrNrSM4FAmcW9vi9z4kCbQyoC5C+4gqeUlJRpDIkQBWP2Y4\n2ct/bQKBgHv8qCsQTZphOxc31BJPa2xVhuv18cEU3XLUrVfUZ/1f43JhLp7gynS2\nep++LKUi9D0VGXY8bqvfJjbECoCeu85vl8NpCXwe/LoVoIn+7KaVIZMwqoGMfgNl\nnEqm7HWkNxHhf8A6En/IjleuddS1sf9e/x+TJN1Xhnt9W6pe7Fk1\n-----END RSA PRIVATE KEY-----\n`,\n    certificate: `-----BEGIN CERTIFICATE-----\nMIIDpTCCAo2gAwIBAgIJAKdmmOBYnFvoMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV\nBAYTAnh4MQswCQYDVQQIDAJ4eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQsw\nCQYDVQQLDAJ4eDELMAkGA1UEAwwCeHgxGTAXBgkqhkiG9w0BCQEWCnh4QDE2My5j\nb20wHhcNMTcxMjA0MDM0MjQ5WhcNMjAxMjAzMDM0MjQ5WjBpMQswCQYDVQQGEwJ4\neDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE\nCwwCeHgxCzAJBgNVBAMMAnh4MRkwFwYJKoZIhvcNAQkBFgp4eEAxNjMuY29tMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN\n2s8tZ/6LC3X82fajpVsYqF1xqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYld\niE6Vp8HH5BSKaCWKVg8lGWg1UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb\n3iyNBmiZ8aZhGw2pI1YwR+15MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dz\nQ8z1JXWdg8/9Zx7Ktvgwu5PQM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5\nmf2DPkVgM08XAgaLJcLigwD513koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwID\nAQABo1AwTjAdBgNVHQ4EFgQUo5A2tIu+bcUfvGTD7wmEkhXKFjcwHwYDVR0jBBgw\nFoAUo5A2tIu+bcUfvGTD7wmEkhXKFjcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B\nAQsFAAOCAQEAWJ2rS6Mvlqk3GfEpboezx2J3X7l1z8Sxoqg6ntwB+rezvK3mc9H0\n83qcVeUcoH+0A0lSHyFN4FvRQL6X1hEheHarYwJK4agb231vb5erasuGO463eYEG\nr4SfTuOm7SyiV2xxbaBKrXJtpBp4WLL/s+LF+nklKjaOxkmxUX0sM4CTA7uFJypY\nc8Tdr8lDDNqoUtMD8BrUCJi+7lmMXRcC3Qi3oZJW76ja+kZA5mKVFPd1ATih8TbA\ni34R7EQDtFeiSvBdeKRsPp8c0KT8H1B4lXNkkCQs2WX5p4lm99+ZtLD4glw8x6Ic\ni1YhgnQbn5E0hz55OLu5jvOkKQjPCW+8Kg==\n-----END CERTIFICATE-----\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ncertificate1 = opentelekomcloud.LbCertificateV2(\"certificate_1\",\n    name=\"certificate_1\",\n    description=\"terraform test certificate\",\n    domain=\"www.elb.com\",\n    private_key=\"\"\"-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN2s8tZ/6LC3X82fajpVsYqF1x\nqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYldiE6Vp8HH5BSKaCWKVg8lGWg1\nUM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb3iyNBmiZ8aZhGw2pI1YwR+15\nMVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dzQ8z1JXWdg8/9Zx7Ktvgwu5PQ\nM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5mf2DPkVgM08XAgaLJcLigwD5\n13koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwIDAQABAoIBACU9S5fjD9/jTMXA\nDRs08A+gGgZUxLn0xk+NAPX3LyB1tfdkCaFB8BccLzO6h3KZuwQOBPv6jkdvEDbx\nNwyw3eA/9GJsIvKiHc0rejdvyPymaw9I8MA7NbXHaJrY7KpqDQyk6sx+aUTcy5jg\niMXLWdwXYHhJ/1HVOo603oZyiS6HZeYU089NDUcX+1SJi3e5Ke0gPVXEqCq1O11/\nrh24bMxnwZo4PKBWdcMBN5Zf/4ij9vrZE+fFzW7vGBO48A5lvZxWU2U5t/OZQRtN\n1uLOHmMFa0FIF2aWbTVfwdUWAFsvAOkHj9VV8BXOUwKOUuEktdkfAlvrxmsFrO/H\nyDeYYPkCgYEA/S55CBbR0sMXpSZ56uRn8JHApZJhgkgvYr+FqDlJq/e92nAzf01P\nRoEBUajwrnf1ycevN/SDfbtWzq2XJGqhWdJmtpO16b7KBsC6BdRcH6dnOYh31jgA\nvABMIP3wzI4zSVTyxRE8LDuboytF1mSCeV5tHYPQTZNwrplDnLQhywcCgYEAw8Yc\nUk/eiFr3hfH/ZohMfV5p82Qp7DNIGRzw8YtVG/3+vNXrAXW1VhugNhQY6L+zLtJC\naKn84ooup0m3YCg0hvINqJuvzfsuzQgtjTXyaE0cEwsjUusOmiuj09vVx/3U7siK\nHdjd2ICPCvQ6Q8tdi8jV320gMs05AtaBkZdsiWUCgYEAtLw4Kk4f+xTKDFsrLUNf\n75wcqhWVBiwBp7yQ7UX4EYsJPKZcHMRTk0EEcAbpyaJZE3I44vjp5ReXIHNLMfPs\nuvI34J4Rfot0LN3n7cFrAi2+wpNo+MOBwrNzpRmijGP2uKKrq4JiMjFbKV/6utGF\nUp7VxfwS904JYpqGaZctiIECgYA1A6nZtF0riY6ry/uAdXpZHL8ONNqRZtWoT0kD\n79otSVu5ISiRbaGcXsDExC52oKrSDAgFtbqQUiEOFg09UcXfoR6HwRkba2CiDwve\nyHQLQI5Qrdxz8Mk0gIrNrSM4FAmcW9vi9z4kCbQyoC5C+4gqeUlJRpDIkQBWP2Y4\n2ct/bQKBgHv8qCsQTZphOxc31BJPa2xVhuv18cEU3XLUrVfUZ/1f43JhLp7gynS2\nep++LKUi9D0VGXY8bqvfJjbECoCeu85vl8NpCXwe/LoVoIn+7KaVIZMwqoGMfgNl\nnEqm7HWkNxHhf8A6En/IjleuddS1sf9e/x+TJN1Xhnt9W6pe7Fk1\n-----END RSA PRIVATE KEY-----\n\"\"\",\n    certificate=\"\"\"-----BEGIN CERTIFICATE-----\nMIIDpTCCAo2gAwIBAgIJAKdmmOBYnFvoMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV\nBAYTAnh4MQswCQYDVQQIDAJ4eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQsw\nCQYDVQQLDAJ4eDELMAkGA1UEAwwCeHgxGTAXBgkqhkiG9w0BCQEWCnh4QDE2My5j\nb20wHhcNMTcxMjA0MDM0MjQ5WhcNMjAxMjAzMDM0MjQ5WjBpMQswCQYDVQQGEwJ4\neDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE\nCwwCeHgxCzAJBgNVBAMMAnh4MRkwFwYJKoZIhvcNAQkBFgp4eEAxNjMuY29tMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN\n2s8tZ/6LC3X82fajpVsYqF1xqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYld\niE6Vp8HH5BSKaCWKVg8lGWg1UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb\n3iyNBmiZ8aZhGw2pI1YwR+15MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dz\nQ8z1JXWdg8/9Zx7Ktvgwu5PQM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5\nmf2DPkVgM08XAgaLJcLigwD513koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwID\nAQABo1AwTjAdBgNVHQ4EFgQUo5A2tIu+bcUfvGTD7wmEkhXKFjcwHwYDVR0jBBgw\nFoAUo5A2tIu+bcUfvGTD7wmEkhXKFjcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B\nAQsFAAOCAQEAWJ2rS6Mvlqk3GfEpboezx2J3X7l1z8Sxoqg6ntwB+rezvK3mc9H0\n83qcVeUcoH+0A0lSHyFN4FvRQL6X1hEheHarYwJK4agb231vb5erasuGO463eYEG\nr4SfTuOm7SyiV2xxbaBKrXJtpBp4WLL/s+LF+nklKjaOxkmxUX0sM4CTA7uFJypY\nc8Tdr8lDDNqoUtMD8BrUCJi+7lmMXRcC3Qi3oZJW76ja+kZA5mKVFPd1ATih8TbA\ni34R7EQDtFeiSvBdeKRsPp8c0KT8H1B4lXNkkCQs2WX5p4lm99+ZtLD4glw8x6Ic\ni1YhgnQbn5E0hz55OLu5jvOkKQjPCW+8Kg==\n-----END CERTIFICATE-----\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var certificate1 = new Opentelekomcloud.LbCertificateV2(\"certificate_1\", new()\n    {\n        Name = \"certificate_1\",\n        Description = \"terraform test certificate\",\n        Domain = \"www.elb.com\",\n        PrivateKey = @\"-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN2s8tZ/6LC3X82fajpVsYqF1x\nqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYldiE6Vp8HH5BSKaCWKVg8lGWg1\nUM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb3iyNBmiZ8aZhGw2pI1YwR+15\nMVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dzQ8z1JXWdg8/9Zx7Ktvgwu5PQ\nM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5mf2DPkVgM08XAgaLJcLigwD5\n13koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwIDAQABAoIBACU9S5fjD9/jTMXA\nDRs08A+gGgZUxLn0xk+NAPX3LyB1tfdkCaFB8BccLzO6h3KZuwQOBPv6jkdvEDbx\nNwyw3eA/9GJsIvKiHc0rejdvyPymaw9I8MA7NbXHaJrY7KpqDQyk6sx+aUTcy5jg\niMXLWdwXYHhJ/1HVOo603oZyiS6HZeYU089NDUcX+1SJi3e5Ke0gPVXEqCq1O11/\nrh24bMxnwZo4PKBWdcMBN5Zf/4ij9vrZE+fFzW7vGBO48A5lvZxWU2U5t/OZQRtN\n1uLOHmMFa0FIF2aWbTVfwdUWAFsvAOkHj9VV8BXOUwKOUuEktdkfAlvrxmsFrO/H\nyDeYYPkCgYEA/S55CBbR0sMXpSZ56uRn8JHApZJhgkgvYr+FqDlJq/e92nAzf01P\nRoEBUajwrnf1ycevN/SDfbtWzq2XJGqhWdJmtpO16b7KBsC6BdRcH6dnOYh31jgA\nvABMIP3wzI4zSVTyxRE8LDuboytF1mSCeV5tHYPQTZNwrplDnLQhywcCgYEAw8Yc\nUk/eiFr3hfH/ZohMfV5p82Qp7DNIGRzw8YtVG/3+vNXrAXW1VhugNhQY6L+zLtJC\naKn84ooup0m3YCg0hvINqJuvzfsuzQgtjTXyaE0cEwsjUusOmiuj09vVx/3U7siK\nHdjd2ICPCvQ6Q8tdi8jV320gMs05AtaBkZdsiWUCgYEAtLw4Kk4f+xTKDFsrLUNf\n75wcqhWVBiwBp7yQ7UX4EYsJPKZcHMRTk0EEcAbpyaJZE3I44vjp5ReXIHNLMfPs\nuvI34J4Rfot0LN3n7cFrAi2+wpNo+MOBwrNzpRmijGP2uKKrq4JiMjFbKV/6utGF\nUp7VxfwS904JYpqGaZctiIECgYA1A6nZtF0riY6ry/uAdXpZHL8ONNqRZtWoT0kD\n79otSVu5ISiRbaGcXsDExC52oKrSDAgFtbqQUiEOFg09UcXfoR6HwRkba2CiDwve\nyHQLQI5Qrdxz8Mk0gIrNrSM4FAmcW9vi9z4kCbQyoC5C+4gqeUlJRpDIkQBWP2Y4\n2ct/bQKBgHv8qCsQTZphOxc31BJPa2xVhuv18cEU3XLUrVfUZ/1f43JhLp7gynS2\nep++LKUi9D0VGXY8bqvfJjbECoCeu85vl8NpCXwe/LoVoIn+7KaVIZMwqoGMfgNl\nnEqm7HWkNxHhf8A6En/IjleuddS1sf9e/x+TJN1Xhnt9W6pe7Fk1\n-----END RSA PRIVATE KEY-----\n\",\n        Certificate = @\"-----BEGIN CERTIFICATE-----\nMIIDpTCCAo2gAwIBAgIJAKdmmOBYnFvoMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV\nBAYTAnh4MQswCQYDVQQIDAJ4eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQsw\nCQYDVQQLDAJ4eDELMAkGA1UEAwwCeHgxGTAXBgkqhkiG9w0BCQEWCnh4QDE2My5j\nb20wHhcNMTcxMjA0MDM0MjQ5WhcNMjAxMjAzMDM0MjQ5WjBpMQswCQYDVQQGEwJ4\neDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE\nCwwCeHgxCzAJBgNVBAMMAnh4MRkwFwYJKoZIhvcNAQkBFgp4eEAxNjMuY29tMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN\n2s8tZ/6LC3X82fajpVsYqF1xqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYld\niE6Vp8HH5BSKaCWKVg8lGWg1UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb\n3iyNBmiZ8aZhGw2pI1YwR+15MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dz\nQ8z1JXWdg8/9Zx7Ktvgwu5PQM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5\nmf2DPkVgM08XAgaLJcLigwD513koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwID\nAQABo1AwTjAdBgNVHQ4EFgQUo5A2tIu+bcUfvGTD7wmEkhXKFjcwHwYDVR0jBBgw\nFoAUo5A2tIu+bcUfvGTD7wmEkhXKFjcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B\nAQsFAAOCAQEAWJ2rS6Mvlqk3GfEpboezx2J3X7l1z8Sxoqg6ntwB+rezvK3mc9H0\n83qcVeUcoH+0A0lSHyFN4FvRQL6X1hEheHarYwJK4agb231vb5erasuGO463eYEG\nr4SfTuOm7SyiV2xxbaBKrXJtpBp4WLL/s+LF+nklKjaOxkmxUX0sM4CTA7uFJypY\nc8Tdr8lDDNqoUtMD8BrUCJi+7lmMXRcC3Qi3oZJW76ja+kZA5mKVFPd1ATih8TbA\ni34R7EQDtFeiSvBdeKRsPp8c0KT8H1B4lXNkkCQs2WX5p4lm99+ZtLD4glw8x6Ic\ni1YhgnQbn5E0hz55OLu5jvOkKQjPCW+8Kg==\n-----END CERTIFICATE-----\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewLbCertificateV2(ctx, \"certificate_1\", &opentelekomcloud.LbCertificateV2Args{\n\t\t\tName:        pulumi.String(\"certificate_1\"),\n\t\t\tDescription: pulumi.String(\"terraform test certificate\"),\n\t\t\tDomain:      pulumi.String(\"www.elb.com\"),\n\t\t\tPrivateKey: pulumi.String(`-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN2s8tZ/6LC3X82fajpVsYqF1x\nqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYldiE6Vp8HH5BSKaCWKVg8lGWg1\nUM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb3iyNBmiZ8aZhGw2pI1YwR+15\nMVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dzQ8z1JXWdg8/9Zx7Ktvgwu5PQ\nM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5mf2DPkVgM08XAgaLJcLigwD5\n13koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwIDAQABAoIBACU9S5fjD9/jTMXA\nDRs08A+gGgZUxLn0xk+NAPX3LyB1tfdkCaFB8BccLzO6h3KZuwQOBPv6jkdvEDbx\nNwyw3eA/9GJsIvKiHc0rejdvyPymaw9I8MA7NbXHaJrY7KpqDQyk6sx+aUTcy5jg\niMXLWdwXYHhJ/1HVOo603oZyiS6HZeYU089NDUcX+1SJi3e5Ke0gPVXEqCq1O11/\nrh24bMxnwZo4PKBWdcMBN5Zf/4ij9vrZE+fFzW7vGBO48A5lvZxWU2U5t/OZQRtN\n1uLOHmMFa0FIF2aWbTVfwdUWAFsvAOkHj9VV8BXOUwKOUuEktdkfAlvrxmsFrO/H\nyDeYYPkCgYEA/S55CBbR0sMXpSZ56uRn8JHApZJhgkgvYr+FqDlJq/e92nAzf01P\nRoEBUajwrnf1ycevN/SDfbtWzq2XJGqhWdJmtpO16b7KBsC6BdRcH6dnOYh31jgA\nvABMIP3wzI4zSVTyxRE8LDuboytF1mSCeV5tHYPQTZNwrplDnLQhywcCgYEAw8Yc\nUk/eiFr3hfH/ZohMfV5p82Qp7DNIGRzw8YtVG/3+vNXrAXW1VhugNhQY6L+zLtJC\naKn84ooup0m3YCg0hvINqJuvzfsuzQgtjTXyaE0cEwsjUusOmiuj09vVx/3U7siK\nHdjd2ICPCvQ6Q8tdi8jV320gMs05AtaBkZdsiWUCgYEAtLw4Kk4f+xTKDFsrLUNf\n75wcqhWVBiwBp7yQ7UX4EYsJPKZcHMRTk0EEcAbpyaJZE3I44vjp5ReXIHNLMfPs\nuvI34J4Rfot0LN3n7cFrAi2+wpNo+MOBwrNzpRmijGP2uKKrq4JiMjFbKV/6utGF\nUp7VxfwS904JYpqGaZctiIECgYA1A6nZtF0riY6ry/uAdXpZHL8ONNqRZtWoT0kD\n79otSVu5ISiRbaGcXsDExC52oKrSDAgFtbqQUiEOFg09UcXfoR6HwRkba2CiDwve\nyHQLQI5Qrdxz8Mk0gIrNrSM4FAmcW9vi9z4kCbQyoC5C+4gqeUlJRpDIkQBWP2Y4\n2ct/bQKBgHv8qCsQTZphOxc31BJPa2xVhuv18cEU3XLUrVfUZ/1f43JhLp7gynS2\nep++LKUi9D0VGXY8bqvfJjbECoCeu85vl8NpCXwe/LoVoIn+7KaVIZMwqoGMfgNl\nnEqm7HWkNxHhf8A6En/IjleuddS1sf9e/x+TJN1Xhnt9W6pe7Fk1\n-----END RSA PRIVATE KEY-----\n`),\n\t\t\tCertificate: pulumi.String(`-----BEGIN CERTIFICATE-----\nMIIDpTCCAo2gAwIBAgIJAKdmmOBYnFvoMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV\nBAYTAnh4MQswCQYDVQQIDAJ4eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQsw\nCQYDVQQLDAJ4eDELMAkGA1UEAwwCeHgxGTAXBgkqhkiG9w0BCQEWCnh4QDE2My5j\nb20wHhcNMTcxMjA0MDM0MjQ5WhcNMjAxMjAzMDM0MjQ5WjBpMQswCQYDVQQGEwJ4\neDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE\nCwwCeHgxCzAJBgNVBAMMAnh4MRkwFwYJKoZIhvcNAQkBFgp4eEAxNjMuY29tMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN\n2s8tZ/6LC3X82fajpVsYqF1xqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYld\niE6Vp8HH5BSKaCWKVg8lGWg1UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb\n3iyNBmiZ8aZhGw2pI1YwR+15MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dz\nQ8z1JXWdg8/9Zx7Ktvgwu5PQM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5\nmf2DPkVgM08XAgaLJcLigwD513koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwID\nAQABo1AwTjAdBgNVHQ4EFgQUo5A2tIu+bcUfvGTD7wmEkhXKFjcwHwYDVR0jBBgw\nFoAUo5A2tIu+bcUfvGTD7wmEkhXKFjcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B\nAQsFAAOCAQEAWJ2rS6Mvlqk3GfEpboezx2J3X7l1z8Sxoqg6ntwB+rezvK3mc9H0\n83qcVeUcoH+0A0lSHyFN4FvRQL6X1hEheHarYwJK4agb231vb5erasuGO463eYEG\nr4SfTuOm7SyiV2xxbaBKrXJtpBp4WLL/s+LF+nklKjaOxkmxUX0sM4CTA7uFJypY\nc8Tdr8lDDNqoUtMD8BrUCJi+7lmMXRcC3Qi3oZJW76ja+kZA5mKVFPd1ATih8TbA\ni34R7EQDtFeiSvBdeKRsPp8c0KT8H1B4lXNkkCQs2WX5p4lm99+ZtLD4glw8x6Ic\ni1YhgnQbn5E0hz55OLu5jvOkKQjPCW+8Kg==\n-----END CERTIFICATE-----\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.LbCertificateV2;\nimport com.pulumi.opentelekomcloud.LbCertificateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var certificate1 = new LbCertificateV2(\"certificate1\", LbCertificateV2Args.builder()\n            .name(\"certificate_1\")\n            .description(\"terraform test certificate\")\n            .domain(\"www.elb.com\")\n            .privateKey(\"\"\"\n-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN2s8tZ/6LC3X82fajpVsYqF1x\nqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYldiE6Vp8HH5BSKaCWKVg8lGWg1\nUM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb3iyNBmiZ8aZhGw2pI1YwR+15\nMVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dzQ8z1JXWdg8/9Zx7Ktvgwu5PQ\nM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5mf2DPkVgM08XAgaLJcLigwD5\n13koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwIDAQABAoIBACU9S5fjD9/jTMXA\nDRs08A+gGgZUxLn0xk+NAPX3LyB1tfdkCaFB8BccLzO6h3KZuwQOBPv6jkdvEDbx\nNwyw3eA/9GJsIvKiHc0rejdvyPymaw9I8MA7NbXHaJrY7KpqDQyk6sx+aUTcy5jg\niMXLWdwXYHhJ/1HVOo603oZyiS6HZeYU089NDUcX+1SJi3e5Ke0gPVXEqCq1O11/\nrh24bMxnwZo4PKBWdcMBN5Zf/4ij9vrZE+fFzW7vGBO48A5lvZxWU2U5t/OZQRtN\n1uLOHmMFa0FIF2aWbTVfwdUWAFsvAOkHj9VV8BXOUwKOUuEktdkfAlvrxmsFrO/H\nyDeYYPkCgYEA/S55CBbR0sMXpSZ56uRn8JHApZJhgkgvYr+FqDlJq/e92nAzf01P\nRoEBUajwrnf1ycevN/SDfbtWzq2XJGqhWdJmtpO16b7KBsC6BdRcH6dnOYh31jgA\nvABMIP3wzI4zSVTyxRE8LDuboytF1mSCeV5tHYPQTZNwrplDnLQhywcCgYEAw8Yc\nUk/eiFr3hfH/ZohMfV5p82Qp7DNIGRzw8YtVG/3+vNXrAXW1VhugNhQY6L+zLtJC\naKn84ooup0m3YCg0hvINqJuvzfsuzQgtjTXyaE0cEwsjUusOmiuj09vVx/3U7siK\nHdjd2ICPCvQ6Q8tdi8jV320gMs05AtaBkZdsiWUCgYEAtLw4Kk4f+xTKDFsrLUNf\n75wcqhWVBiwBp7yQ7UX4EYsJPKZcHMRTk0EEcAbpyaJZE3I44vjp5ReXIHNLMfPs\nuvI34J4Rfot0LN3n7cFrAi2+wpNo+MOBwrNzpRmijGP2uKKrq4JiMjFbKV/6utGF\nUp7VxfwS904JYpqGaZctiIECgYA1A6nZtF0riY6ry/uAdXpZHL8ONNqRZtWoT0kD\n79otSVu5ISiRbaGcXsDExC52oKrSDAgFtbqQUiEOFg09UcXfoR6HwRkba2CiDwve\nyHQLQI5Qrdxz8Mk0gIrNrSM4FAmcW9vi9z4kCbQyoC5C+4gqeUlJRpDIkQBWP2Y4\n2ct/bQKBgHv8qCsQTZphOxc31BJPa2xVhuv18cEU3XLUrVfUZ/1f43JhLp7gynS2\nep++LKUi9D0VGXY8bqvfJjbECoCeu85vl8NpCXwe/LoVoIn+7KaVIZMwqoGMfgNl\nnEqm7HWkNxHhf8A6En/IjleuddS1sf9e/x+TJN1Xhnt9W6pe7Fk1\n-----END RSA PRIVATE KEY-----\n            \"\"\")\n            .certificate(\"\"\"\n-----BEGIN CERTIFICATE-----\nMIIDpTCCAo2gAwIBAgIJAKdmmOBYnFvoMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV\nBAYTAnh4MQswCQYDVQQIDAJ4eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQsw\nCQYDVQQLDAJ4eDELMAkGA1UEAwwCeHgxGTAXBgkqhkiG9w0BCQEWCnh4QDE2My5j\nb20wHhcNMTcxMjA0MDM0MjQ5WhcNMjAxMjAzMDM0MjQ5WjBpMQswCQYDVQQGEwJ4\neDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE\nCwwCeHgxCzAJBgNVBAMMAnh4MRkwFwYJKoZIhvcNAQkBFgp4eEAxNjMuY29tMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN\n2s8tZ/6LC3X82fajpVsYqF1xqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYld\niE6Vp8HH5BSKaCWKVg8lGWg1UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb\n3iyNBmiZ8aZhGw2pI1YwR+15MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dz\nQ8z1JXWdg8/9Zx7Ktvgwu5PQM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5\nmf2DPkVgM08XAgaLJcLigwD513koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwID\nAQABo1AwTjAdBgNVHQ4EFgQUo5A2tIu+bcUfvGTD7wmEkhXKFjcwHwYDVR0jBBgw\nFoAUo5A2tIu+bcUfvGTD7wmEkhXKFjcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B\nAQsFAAOCAQEAWJ2rS6Mvlqk3GfEpboezx2J3X7l1z8Sxoqg6ntwB+rezvK3mc9H0\n83qcVeUcoH+0A0lSHyFN4FvRQL6X1hEheHarYwJK4agb231vb5erasuGO463eYEG\nr4SfTuOm7SyiV2xxbaBKrXJtpBp4WLL/s+LF+nklKjaOxkmxUX0sM4CTA7uFJypY\nc8Tdr8lDDNqoUtMD8BrUCJi+7lmMXRcC3Qi3oZJW76ja+kZA5mKVFPd1ATih8TbA\ni34R7EQDtFeiSvBdeKRsPp8c0KT8H1B4lXNkkCQs2WX5p4lm99+ZtLD4glw8x6Ic\ni1YhgnQbn5E0hz55OLu5jvOkKQjPCW+8Kg==\n-----END CERTIFICATE-----\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  certificate1:\n    type: opentelekomcloud:LbCertificateV2\n    name: certificate_1\n    properties:\n      name: certificate_1\n      description: terraform test certificate\n      domain: www.elb.com\n      privateKey: |\n        -----BEGIN RSA PRIVATE KEY-----\n        MIIEowIBAAKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN2s8tZ/6LC3X82fajpVsYqF1x\n        qEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYldiE6Vp8HH5BSKaCWKVg8lGWg1\n        UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb3iyNBmiZ8aZhGw2pI1YwR+15\n        MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dzQ8z1JXWdg8/9Zx7Ktvgwu5PQ\n        M3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5mf2DPkVgM08XAgaLJcLigwD5\n        13koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwIDAQABAoIBACU9S5fjD9/jTMXA\n        DRs08A+gGgZUxLn0xk+NAPX3LyB1tfdkCaFB8BccLzO6h3KZuwQOBPv6jkdvEDbx\n        Nwyw3eA/9GJsIvKiHc0rejdvyPymaw9I8MA7NbXHaJrY7KpqDQyk6sx+aUTcy5jg\n        iMXLWdwXYHhJ/1HVOo603oZyiS6HZeYU089NDUcX+1SJi3e5Ke0gPVXEqCq1O11/\n        rh24bMxnwZo4PKBWdcMBN5Zf/4ij9vrZE+fFzW7vGBO48A5lvZxWU2U5t/OZQRtN\n        1uLOHmMFa0FIF2aWbTVfwdUWAFsvAOkHj9VV8BXOUwKOUuEktdkfAlvrxmsFrO/H\n        yDeYYPkCgYEA/S55CBbR0sMXpSZ56uRn8JHApZJhgkgvYr+FqDlJq/e92nAzf01P\n        RoEBUajwrnf1ycevN/SDfbtWzq2XJGqhWdJmtpO16b7KBsC6BdRcH6dnOYh31jgA\n        vABMIP3wzI4zSVTyxRE8LDuboytF1mSCeV5tHYPQTZNwrplDnLQhywcCgYEAw8Yc\n        Uk/eiFr3hfH/ZohMfV5p82Qp7DNIGRzw8YtVG/3+vNXrAXW1VhugNhQY6L+zLtJC\n        aKn84ooup0m3YCg0hvINqJuvzfsuzQgtjTXyaE0cEwsjUusOmiuj09vVx/3U7siK\n        Hdjd2ICPCvQ6Q8tdi8jV320gMs05AtaBkZdsiWUCgYEAtLw4Kk4f+xTKDFsrLUNf\n        75wcqhWVBiwBp7yQ7UX4EYsJPKZcHMRTk0EEcAbpyaJZE3I44vjp5ReXIHNLMfPs\n        uvI34J4Rfot0LN3n7cFrAi2+wpNo+MOBwrNzpRmijGP2uKKrq4JiMjFbKV/6utGF\n        Up7VxfwS904JYpqGaZctiIECgYA1A6nZtF0riY6ry/uAdXpZHL8ONNqRZtWoT0kD\n        79otSVu5ISiRbaGcXsDExC52oKrSDAgFtbqQUiEOFg09UcXfoR6HwRkba2CiDwve\n        yHQLQI5Qrdxz8Mk0gIrNrSM4FAmcW9vi9z4kCbQyoC5C+4gqeUlJRpDIkQBWP2Y4\n        2ct/bQKBgHv8qCsQTZphOxc31BJPa2xVhuv18cEU3XLUrVfUZ/1f43JhLp7gynS2\n        ep++LKUi9D0VGXY8bqvfJjbECoCeu85vl8NpCXwe/LoVoIn+7KaVIZMwqoGMfgNl\n        nEqm7HWkNxHhf8A6En/IjleuddS1sf9e/x+TJN1Xhnt9W6pe7Fk1\n        -----END RSA PRIVATE KEY-----\n      certificate: |\n        -----BEGIN CERTIFICATE-----\n        MIIDpTCCAo2gAwIBAgIJAKdmmOBYnFvoMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV\n        BAYTAnh4MQswCQYDVQQIDAJ4eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQsw\n        CQYDVQQLDAJ4eDELMAkGA1UEAwwCeHgxGTAXBgkqhkiG9w0BCQEWCnh4QDE2My5j\n        b20wHhcNMTcxMjA0MDM0MjQ5WhcNMjAxMjAzMDM0MjQ5WjBpMQswCQYDVQQGEwJ4\n        eDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE\n        CwwCeHgxCzAJBgNVBAMMAnh4MRkwFwYJKoZIhvcNAQkBFgp4eEAxNjMuY29tMIIB\n        IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN\n        2s8tZ/6LC3X82fajpVsYqF1xqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYld\n        iE6Vp8HH5BSKaCWKVg8lGWg1UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb\n        3iyNBmiZ8aZhGw2pI1YwR+15MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dz\n        Q8z1JXWdg8/9Zx7Ktvgwu5PQM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5\n        mf2DPkVgM08XAgaLJcLigwD513koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwID\n        AQABo1AwTjAdBgNVHQ4EFgQUo5A2tIu+bcUfvGTD7wmEkhXKFjcwHwYDVR0jBBgw\n        FoAUo5A2tIu+bcUfvGTD7wmEkhXKFjcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B\n        AQsFAAOCAQEAWJ2rS6Mvlqk3GfEpboezx2J3X7l1z8Sxoqg6ntwB+rezvK3mc9H0\n        83qcVeUcoH+0A0lSHyFN4FvRQL6X1hEheHarYwJK4agb231vb5erasuGO463eYEG\n        r4SfTuOm7SyiV2xxbaBKrXJtpBp4WLL/s+LF+nklKjaOxkmxUX0sM4CTA7uFJypY\n        c8Tdr8lDDNqoUtMD8BrUCJi+7lmMXRcC3Qi3oZJW76ja+kZA5mKVFPd1ATih8TbA\n        i34R7EQDtFeiSvBdeKRsPp8c0KT8H1B4lXNkkCQs2WX5p4lm99+ZtLD4glw8x6Ic\n        i1YhgnQbn5E0hz55OLu5jvOkKQjPCW+8Kg==\n        -----END CERTIFICATE-----\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCertificates can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/lbCertificateV2:LbCertificateV2 certificate_1 7117d38e-4c8f-4624-a505-bd96b97d024c\n```\n\n","inputProperties":{"certificate":{"description":"The public encrypted key of the Certificate, PEM format.\n","type":"string"},"description":{"description":"Human-readable description for the Certificate.\n","type":"string"},"domain":{"description":"The domain of the Certificate.\n","type":"string"},"lbCertificateV2Id":{"type":"string"},"name":{"description":"Human-readable name for the Certificate. Does not have\nto be unique.\n","type":"string"},"privateKey":{"description":"The private encrypted key of the Certificate, PEM format.\nRequired for certificates of type <span pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\">`server`</span>.\n","type":"string"},"region":{"description":"The region in which to obtain the V2 Networking client.\nA Networking client is needed to create an LB certificate. If omitted, the\n<span pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\">`region`</span> argument of the provider is used. Changing this creates a new\nLB certificate.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FLbCertificateV2Timeouts:LbCertificateV2Timeouts"},"type":{"description":"The type of certificate the container holds. Either <span pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\">`server`</span> or <span pulumi-lang-nodejs=\"`client`\" pulumi-lang-dotnet=\"`Client`\" pulumi-lang-go=\"`client`\" pulumi-lang-python=\"`client`\" pulumi-lang-yaml=\"`client`\" pulumi-lang-java=\"`client`\">`client`</span>.\nDefaults to <span pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\">`server`</span> if not set. Changing this creates a new LB certificate.\n","type":"string"}},"properties":{"certificate":{"description":"The public encrypted key of the Certificate, PEM format.\n","type":"string"},"createTime":{"description":"Indicates the creation time.\n","type":"string"},"description":{"description":"Human-readable description for the Certificate.\n","type":"string"},"domain":{"description":"The domain of the Certificate.\n","type":"string"},"expireTime":{"description":"Indicates certificate expiration time.\n","type":"string"},"lbCertificateV2Id":{"type":"string"},"name":{"description":"Human-readable name for the Certificate. Does not have\nto be unique.\n","type":"string"},"privateKey":{"description":"The private encrypted key of the Certificate, PEM format.\nRequired for certificates of type <span pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\">`server`</span>.\n","type":"string"},"region":{"description":"The region in which to obtain the V2 Networking client.\nA Networking client is needed to create an LB certificate. If omitted, the\n<span pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\">`region`</span> argument of the provider is used. Changing this creates a new\nLB certificate.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FLbCertificateV2Timeouts:LbCertificateV2Timeouts"},"type":{"description":"The type of certificate the container holds. Either <span pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\">`server`</span> or <span pulumi-lang-nodejs=\"`client`\" pulumi-lang-dotnet=\"`Client`\" pulumi-lang-go=\"`client`\" pulumi-lang-python=\"`client`\" pulumi-lang-yaml=\"`client`\" pulumi-lang-java=\"`client`\">`client`</span>.\nDefaults to <span pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\">`server`</span> if not set. Changing this creates a new LB certificate.\n","type":"string"},"updateTime":{"description":"Indicates the update time.\n","type":"string"}},"required":["certificate","createTime","domain","expireTime","lbCertificateV2Id","name","region","type","updateTime"],"requiredInputs":["certificate"],"stateInputs":{"description":"Input properties used for looking up and filtering LbCertificateV2 resources.\n","properties":{"certificate":{"description":"The public encrypted key of the Certificate, PEM format.\n","type":"string"},"createTime":{"description":"Indicates the creation time.\n","type":"string"},"description":{"description":"Human-readable description for the Certificate.\n","type":"string"},"domain":{"description":"The domain of the Certificate.\n","type":"string"},"expireTime":{"description":"Indicates certificate expiration time.\n","type":"string"},"lbCertificateV2Id":{"type":"string"},"name":{"description":"Human-readable name for the Certificate. Does not have\nto be unique.\n","type":"string"},"privateKey":{"description":"The private encrypted key of the Certificate, PEM format.\nRequired for certificates of type <span pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\">`server`</span>.\n","type":"string"},"region":{"description":"The region in which to obtain the V2 Networking client.\nA Networking client is needed to create an LB certificate. If omitted, the\n<span pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\">`region`</span> argument of the provider is used. Changing this creates a new\nLB certificate.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FLbCertificateV2Timeouts:LbCertificateV2Timeouts"},"type":{"description":"The type of certificate the container holds. Either <span pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\">`server`</span> or <span pulumi-lang-nodejs=\"`client`\" pulumi-lang-dotnet=\"`Client`\" pulumi-lang-go=\"`client`\" pulumi-lang-python=\"`client`\" pulumi-lang-yaml=\"`client`\" pulumi-lang-java=\"`client`\">`client`</span>.\nDefaults to <span pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\">`server`</span> if not set. Changing this creates a new LB certificate.\n","type":"string"},"updateTime":{"description":"Indicates the update time.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/lbCertificateV3:LbCertificateV3":{"description":"Up-to-date reference of API arguments for DLB certificate you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-load-balancing/api-ref/apis_v3/certificate)\n\nManages a V3 certificate resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst certificate1 = new opentelekomcloud.LbCertificateV3(\"certificate_1\", {\n    name: \"certificate_1\",\n    description: \"terraform test certificate\",\n    domain: \"www.elb.com\",\n    privateKey: `-----BEGIN RSA PRIVATE KEY-----\nMIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEAu+qgVpV6mqbaGW1Q\nn6eDPzhwentQPPiXwG1665M9+gjW4pUQ0RudBc0fkUU/O+Q0UMT8ZV/I2hSenCVy\nJoyPEwIDAQABAkAbyksEAv8qt9oxQHVX5xIF23bm5i2rlqf6kTZIeHIF89/NNJ2E\nsejiqFIWqPc5a00Scn+ymdCvjC25JVyup9cBAiEA4a+7WhPmgS54yNHjwkG2pflz\ncfH1V7qPqlBKIGLwZbMCIQDVKCsZ6eoNdQoLVmK0zii8XDCgL8HWMrm/bytbYM9B\nIQIgVdcAXKebEeF6IW/rwDQ8Y2644UsVdTPJdw8o0p6vLw8CIDqm191EiPt09fOS\nrIxVoc3ajCK3oV2ADa5IN6ToKX8hAiBPuNCCIYcZz0tAzWX7I1OYMI3UhJjtrESg\nmYFrsJ4gHw==\n-----END RSA PRIVATE KEY-----\n`,\n    certificate: `-----BEGIN CERTIFICATE-----\nMIIB4TCCAYugAwIBAgIUPXCpWJCiy5mI79NIfenl5KNWPzkwDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\nGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMTExMDIxMDM3MjBaFw0yMTEy\nMDIxMDM3MjBaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw\nHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwXDANBgkqhkiG9w0BAQEF\nAANLADBIAkEAu+qgVpV6mqbaGW1Qn6eDPzhwentQPPiXwG1665M9+gjW4pUQ0Rud\nBc0fkUU/O+Q0UMT8ZV/I2hSenCVyJoyPEwIDAQABo1MwUTAdBgNVHQ4EFgQUtItI\nIAXZDIEfuvCX7AY3s//wlI8wHwYDVR0jBBgwFoAUtItIIAXZDIEfuvCX7AY3s//w\nlI8wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAANBAEkgP/JlpVKc4j+Z\nKRcMa7RAXYJqCbRxtpqRU7OOAhDmBnldtS5CTMoh1r7TOGMfM1Npa+kGV5QnjRzI\nFzFSymo=\n-----END CERTIFICATE-----\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ncertificate1 = opentelekomcloud.LbCertificateV3(\"certificate_1\",\n    name=\"certificate_1\",\n    description=\"terraform test certificate\",\n    domain=\"www.elb.com\",\n    private_key=\"\"\"-----BEGIN RSA PRIVATE KEY-----\nMIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEAu+qgVpV6mqbaGW1Q\nn6eDPzhwentQPPiXwG1665M9+gjW4pUQ0RudBc0fkUU/O+Q0UMT8ZV/I2hSenCVy\nJoyPEwIDAQABAkAbyksEAv8qt9oxQHVX5xIF23bm5i2rlqf6kTZIeHIF89/NNJ2E\nsejiqFIWqPc5a00Scn+ymdCvjC25JVyup9cBAiEA4a+7WhPmgS54yNHjwkG2pflz\ncfH1V7qPqlBKIGLwZbMCIQDVKCsZ6eoNdQoLVmK0zii8XDCgL8HWMrm/bytbYM9B\nIQIgVdcAXKebEeF6IW/rwDQ8Y2644UsVdTPJdw8o0p6vLw8CIDqm191EiPt09fOS\nrIxVoc3ajCK3oV2ADa5IN6ToKX8hAiBPuNCCIYcZz0tAzWX7I1OYMI3UhJjtrESg\nmYFrsJ4gHw==\n-----END RSA PRIVATE KEY-----\n\"\"\",\n    certificate=\"\"\"-----BEGIN CERTIFICATE-----\nMIIB4TCCAYugAwIBAgIUPXCpWJCiy5mI79NIfenl5KNWPzkwDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\nGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMTExMDIxMDM3MjBaFw0yMTEy\nMDIxMDM3MjBaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw\nHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwXDANBgkqhkiG9w0BAQEF\nAANLADBIAkEAu+qgVpV6mqbaGW1Qn6eDPzhwentQPPiXwG1665M9+gjW4pUQ0Rud\nBc0fkUU/O+Q0UMT8ZV/I2hSenCVyJoyPEwIDAQABo1MwUTAdBgNVHQ4EFgQUtItI\nIAXZDIEfuvCX7AY3s//wlI8wHwYDVR0jBBgwFoAUtItIIAXZDIEfuvCX7AY3s//w\nlI8wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAANBAEkgP/JlpVKc4j+Z\nKRcMa7RAXYJqCbRxtpqRU7OOAhDmBnldtS5CTMoh1r7TOGMfM1Npa+kGV5QnjRzI\nFzFSymo=\n-----END CERTIFICATE-----\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var certificate1 = new Opentelekomcloud.LbCertificateV3(\"certificate_1\", new()\n    {\n        Name = \"certificate_1\",\n        Description = \"terraform test certificate\",\n        Domain = \"www.elb.com\",\n        PrivateKey = @\"-----BEGIN RSA PRIVATE KEY-----\nMIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEAu+qgVpV6mqbaGW1Q\nn6eDPzhwentQPPiXwG1665M9+gjW4pUQ0RudBc0fkUU/O+Q0UMT8ZV/I2hSenCVy\nJoyPEwIDAQABAkAbyksEAv8qt9oxQHVX5xIF23bm5i2rlqf6kTZIeHIF89/NNJ2E\nsejiqFIWqPc5a00Scn+ymdCvjC25JVyup9cBAiEA4a+7WhPmgS54yNHjwkG2pflz\ncfH1V7qPqlBKIGLwZbMCIQDVKCsZ6eoNdQoLVmK0zii8XDCgL8HWMrm/bytbYM9B\nIQIgVdcAXKebEeF6IW/rwDQ8Y2644UsVdTPJdw8o0p6vLw8CIDqm191EiPt09fOS\nrIxVoc3ajCK3oV2ADa5IN6ToKX8hAiBPuNCCIYcZz0tAzWX7I1OYMI3UhJjtrESg\nmYFrsJ4gHw==\n-----END RSA PRIVATE KEY-----\n\",\n        Certificate = @\"-----BEGIN CERTIFICATE-----\nMIIB4TCCAYugAwIBAgIUPXCpWJCiy5mI79NIfenl5KNWPzkwDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\nGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMTExMDIxMDM3MjBaFw0yMTEy\nMDIxMDM3MjBaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw\nHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwXDANBgkqhkiG9w0BAQEF\nAANLADBIAkEAu+qgVpV6mqbaGW1Qn6eDPzhwentQPPiXwG1665M9+gjW4pUQ0Rud\nBc0fkUU/O+Q0UMT8ZV/I2hSenCVyJoyPEwIDAQABo1MwUTAdBgNVHQ4EFgQUtItI\nIAXZDIEfuvCX7AY3s//wlI8wHwYDVR0jBBgwFoAUtItIIAXZDIEfuvCX7AY3s//w\nlI8wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAANBAEkgP/JlpVKc4j+Z\nKRcMa7RAXYJqCbRxtpqRU7OOAhDmBnldtS5CTMoh1r7TOGMfM1Npa+kGV5QnjRzI\nFzFSymo=\n-----END CERTIFICATE-----\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewLbCertificateV3(ctx, \"certificate_1\", &opentelekomcloud.LbCertificateV3Args{\n\t\t\tName:        pulumi.String(\"certificate_1\"),\n\t\t\tDescription: pulumi.String(\"terraform test certificate\"),\n\t\t\tDomain:      pulumi.String(\"www.elb.com\"),\n\t\t\tPrivateKey: pulumi.String(`-----BEGIN RSA PRIVATE KEY-----\nMIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEAu+qgVpV6mqbaGW1Q\nn6eDPzhwentQPPiXwG1665M9+gjW4pUQ0RudBc0fkUU/O+Q0UMT8ZV/I2hSenCVy\nJoyPEwIDAQABAkAbyksEAv8qt9oxQHVX5xIF23bm5i2rlqf6kTZIeHIF89/NNJ2E\nsejiqFIWqPc5a00Scn+ymdCvjC25JVyup9cBAiEA4a+7WhPmgS54yNHjwkG2pflz\ncfH1V7qPqlBKIGLwZbMCIQDVKCsZ6eoNdQoLVmK0zii8XDCgL8HWMrm/bytbYM9B\nIQIgVdcAXKebEeF6IW/rwDQ8Y2644UsVdTPJdw8o0p6vLw8CIDqm191EiPt09fOS\nrIxVoc3ajCK3oV2ADa5IN6ToKX8hAiBPuNCCIYcZz0tAzWX7I1OYMI3UhJjtrESg\nmYFrsJ4gHw==\n-----END RSA PRIVATE KEY-----\n`),\n\t\t\tCertificate: pulumi.String(`-----BEGIN CERTIFICATE-----\nMIIB4TCCAYugAwIBAgIUPXCpWJCiy5mI79NIfenl5KNWPzkwDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\nGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMTExMDIxMDM3MjBaFw0yMTEy\nMDIxMDM3MjBaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw\nHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwXDANBgkqhkiG9w0BAQEF\nAANLADBIAkEAu+qgVpV6mqbaGW1Qn6eDPzhwentQPPiXwG1665M9+gjW4pUQ0Rud\nBc0fkUU/O+Q0UMT8ZV/I2hSenCVyJoyPEwIDAQABo1MwUTAdBgNVHQ4EFgQUtItI\nIAXZDIEfuvCX7AY3s//wlI8wHwYDVR0jBBgwFoAUtItIIAXZDIEfuvCX7AY3s//w\nlI8wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAANBAEkgP/JlpVKc4j+Z\nKRcMa7RAXYJqCbRxtpqRU7OOAhDmBnldtS5CTMoh1r7TOGMfM1Npa+kGV5QnjRzI\nFzFSymo=\n-----END CERTIFICATE-----\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.LbCertificateV3;\nimport com.pulumi.opentelekomcloud.LbCertificateV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var certificate1 = new LbCertificateV3(\"certificate1\", LbCertificateV3Args.builder()\n            .name(\"certificate_1\")\n            .description(\"terraform test certificate\")\n            .domain(\"www.elb.com\")\n            .privateKey(\"\"\"\n-----BEGIN RSA PRIVATE KEY-----\nMIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEAu+qgVpV6mqbaGW1Q\nn6eDPzhwentQPPiXwG1665M9+gjW4pUQ0RudBc0fkUU/O+Q0UMT8ZV/I2hSenCVy\nJoyPEwIDAQABAkAbyksEAv8qt9oxQHVX5xIF23bm5i2rlqf6kTZIeHIF89/NNJ2E\nsejiqFIWqPc5a00Scn+ymdCvjC25JVyup9cBAiEA4a+7WhPmgS54yNHjwkG2pflz\ncfH1V7qPqlBKIGLwZbMCIQDVKCsZ6eoNdQoLVmK0zii8XDCgL8HWMrm/bytbYM9B\nIQIgVdcAXKebEeF6IW/rwDQ8Y2644UsVdTPJdw8o0p6vLw8CIDqm191EiPt09fOS\nrIxVoc3ajCK3oV2ADa5IN6ToKX8hAiBPuNCCIYcZz0tAzWX7I1OYMI3UhJjtrESg\nmYFrsJ4gHw==\n-----END RSA PRIVATE KEY-----\n            \"\"\")\n            .certificate(\"\"\"\n-----BEGIN CERTIFICATE-----\nMIIB4TCCAYugAwIBAgIUPXCpWJCiy5mI79NIfenl5KNWPzkwDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\nGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMTExMDIxMDM3MjBaFw0yMTEy\nMDIxMDM3MjBaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw\nHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwXDANBgkqhkiG9w0BAQEF\nAANLADBIAkEAu+qgVpV6mqbaGW1Qn6eDPzhwentQPPiXwG1665M9+gjW4pUQ0Rud\nBc0fkUU/O+Q0UMT8ZV/I2hSenCVyJoyPEwIDAQABo1MwUTAdBgNVHQ4EFgQUtItI\nIAXZDIEfuvCX7AY3s//wlI8wHwYDVR0jBBgwFoAUtItIIAXZDIEfuvCX7AY3s//w\nlI8wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAANBAEkgP/JlpVKc4j+Z\nKRcMa7RAXYJqCbRxtpqRU7OOAhDmBnldtS5CTMoh1r7TOGMfM1Npa+kGV5QnjRzI\nFzFSymo=\n-----END CERTIFICATE-----\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  certificate1:\n    type: opentelekomcloud:LbCertificateV3\n    name: certificate_1\n    properties:\n      name: certificate_1\n      description: terraform test certificate\n      domain: www.elb.com\n      privateKey: |\n        -----BEGIN RSA PRIVATE KEY-----\n        MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEAu+qgVpV6mqbaGW1Q\n        n6eDPzhwentQPPiXwG1665M9+gjW4pUQ0RudBc0fkUU/O+Q0UMT8ZV/I2hSenCVy\n        JoyPEwIDAQABAkAbyksEAv8qt9oxQHVX5xIF23bm5i2rlqf6kTZIeHIF89/NNJ2E\n        sejiqFIWqPc5a00Scn+ymdCvjC25JVyup9cBAiEA4a+7WhPmgS54yNHjwkG2pflz\n        cfH1V7qPqlBKIGLwZbMCIQDVKCsZ6eoNdQoLVmK0zii8XDCgL8HWMrm/bytbYM9B\n        IQIgVdcAXKebEeF6IW/rwDQ8Y2644UsVdTPJdw8o0p6vLw8CIDqm191EiPt09fOS\n        rIxVoc3ajCK3oV2ADa5IN6ToKX8hAiBPuNCCIYcZz0tAzWX7I1OYMI3UhJjtrESg\n        mYFrsJ4gHw==\n        -----END RSA PRIVATE KEY-----\n      certificate: |\n        -----BEGIN CERTIFICATE-----\n        MIIB4TCCAYugAwIBAgIUPXCpWJCiy5mI79NIfenl5KNWPzkwDQYJKoZIhvcNAQEL\n        BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\n        GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMTExMDIxMDM3MjBaFw0yMTEy\n        MDIxMDM3MjBaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw\n        HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwXDANBgkqhkiG9w0BAQEF\n        AANLADBIAkEAu+qgVpV6mqbaGW1Qn6eDPzhwentQPPiXwG1665M9+gjW4pUQ0Rud\n        Bc0fkUU/O+Q0UMT8ZV/I2hSenCVyJoyPEwIDAQABo1MwUTAdBgNVHQ4EFgQUtItI\n        IAXZDIEfuvCX7AY3s//wlI8wHwYDVR0jBBgwFoAUtItIIAXZDIEfuvCX7AY3s//w\n        lI8wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAANBAEkgP/JlpVKc4j+Z\n        KRcMa7RAXYJqCbRxtpqRU7OOAhDmBnldtS5CTMoh1r7TOGMfM1Npa+kGV5QnjRzI\n        FzFSymo=\n        -----END CERTIFICATE-----\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCertificates can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/lbCertificateV3:LbCertificateV3 certificate_1 7117d38e-4c8f-4624-a505-bd96b97d024c\n```\n\n","inputProperties":{"certificate":{"description":"The public encrypted key of the Certificate, PEM format.\n","type":"string"},"description":{"description":"Provides supplementary information about the certificate.\n","type":"string"},"domain":{"description":"The domain of the Certificate.\n","type":"string"},"lbCertificateV3Id":{"type":"string"},"name":{"description":"Specifies the certificate name. Only letters,\ndigits, underscores, and hyphens are allowed.\n","type":"string"},"privateKey":{"description":"The private encrypted key of the Certificate, PEM format.\nRequired for certificates of type <span pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\">`server`</span>.\n","type":"string"},"region":{"description":"The region in which to obtain the V3 ELB client.\nAn ELB client is needed to create an LB certificate. If omitted, the\n<span pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\">`region`</span> argument of the provider is used. Changing this creates a new\nLB certificate.\n","type":"string"},"type":{"description":"The type of certificate the container holds. Either <span pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\">`server`</span> or <span pulumi-lang-nodejs=\"`client`\" pulumi-lang-dotnet=\"`Client`\" pulumi-lang-go=\"`client`\" pulumi-lang-python=\"`client`\" pulumi-lang-yaml=\"`client`\" pulumi-lang-java=\"`client`\">`client`</span>.\nDefaults to <span pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\">`server`</span> if not set. Changing this creates a new LB certificate.\n","type":"string"}},"properties":{"certificate":{"description":"The public encrypted key of the Certificate, PEM format.\n","type":"string"},"createdAt":{"type":"string"},"description":{"description":"Provides supplementary information about the certificate.\n","type":"string"},"domain":{"description":"The domain of the Certificate.\n","type":"string"},"expireTime":{"description":"Indicates the expiration time.\n","type":"string"},"lbCertificateV3Id":{"type":"string"},"name":{"description":"Specifies the certificate name. Only letters,\ndigits, underscores, and hyphens are allowed.\n","type":"string"},"privateKey":{"description":"The private encrypted key of the Certificate, PEM format.\nRequired for certificates of type <span pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\">`server`</span>.\n","type":"string"},"region":{"description":"The region in which to obtain the V3 ELB client.\nAn ELB client is needed to create an LB certificate. If omitted, the\n<span pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\">`region`</span> argument of the provider is used. Changing this creates a new\nLB certificate.\n","type":"string"},"type":{"description":"The type of certificate the container holds. Either <span pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\">`server`</span> or <span pulumi-lang-nodejs=\"`client`\" pulumi-lang-dotnet=\"`Client`\" pulumi-lang-go=\"`client`\" pulumi-lang-python=\"`client`\" pulumi-lang-yaml=\"`client`\" pulumi-lang-java=\"`client`\">`client`</span>.\nDefaults to <span pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\">`server`</span> if not set. Changing this creates a new LB certificate.\n","type":"string"},"updatedAt":{"description":"Indicates the update time.\n","type":"string"}},"required":["certificate","createdAt","domain","expireTime","lbCertificateV3Id","name","region","type","updatedAt"],"requiredInputs":["certificate"],"stateInputs":{"description":"Input properties used for looking up and filtering LbCertificateV3 resources.\n","properties":{"certificate":{"description":"The public encrypted key of the Certificate, PEM format.\n","type":"string"},"createdAt":{"type":"string"},"description":{"description":"Provides supplementary information about the certificate.\n","type":"string"},"domain":{"description":"The domain of the Certificate.\n","type":"string"},"expireTime":{"description":"Indicates the expiration time.\n","type":"string"},"lbCertificateV3Id":{"type":"string"},"name":{"description":"Specifies the certificate name. Only letters,\ndigits, underscores, and hyphens are allowed.\n","type":"string"},"privateKey":{"description":"The private encrypted key of the Certificate, PEM format.\nRequired for certificates of type <span pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\">`server`</span>.\n","type":"string"},"region":{"description":"The region in which to obtain the V3 ELB client.\nAn ELB client is needed to create an LB certificate. If omitted, the\n<span pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\">`region`</span> argument of the provider is used. Changing this creates a new\nLB certificate.\n","type":"string"},"type":{"description":"The type of certificate the container holds. Either <span pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\">`server`</span> or <span pulumi-lang-nodejs=\"`client`\" pulumi-lang-dotnet=\"`Client`\" pulumi-lang-go=\"`client`\" pulumi-lang-python=\"`client`\" pulumi-lang-yaml=\"`client`\" pulumi-lang-java=\"`client`\">`client`</span>.\nDefaults to <span pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\">`server`</span> if not set. Changing this creates a new LB certificate.\n","type":"string"},"updatedAt":{"description":"Indicates the update time.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/lbIpgroupV3:LbIpgroupV3":{"description":"Up-to-date reference of API arguments for DLB ip group you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-load-balancing/api-ref/apis_v3/ip_address_group)\n\nManages a Dedicated Load Balancer IP address group resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst group1 = new opentelekomcloud.LbIpgroupV3(\"group_1\", {\n    name: \"group_1\",\n    description: \"group description\",\n    ipLists: [\n        {\n            ip: \"192.168.50.10\",\n            description: \"one\",\n        },\n        {\n            ip: \"192.168.100.10\",\n            description: \"two\",\n        },\n        {\n            ip: \"192.168.150.10\",\n            description: \"three\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ngroup1 = opentelekomcloud.LbIpgroupV3(\"group_1\",\n    name=\"group_1\",\n    description=\"group description\",\n    ip_lists=[\n        {\n            \"ip\": \"192.168.50.10\",\n            \"description\": \"one\",\n        },\n        {\n            \"ip\": \"192.168.100.10\",\n            \"description\": \"two\",\n        },\n        {\n            \"ip\": \"192.168.150.10\",\n            \"description\": \"three\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var group1 = new Opentelekomcloud.LbIpgroupV3(\"group_1\", new()\n    {\n        Name = \"group_1\",\n        Description = \"group description\",\n        IpLists = new[]\n        {\n            new Opentelekomcloud.Inputs.LbIpgroupV3IpListArgs\n            {\n                Ip = \"192.168.50.10\",\n                Description = \"one\",\n            },\n            new Opentelekomcloud.Inputs.LbIpgroupV3IpListArgs\n            {\n                Ip = \"192.168.100.10\",\n                Description = \"two\",\n            },\n            new Opentelekomcloud.Inputs.LbIpgroupV3IpListArgs\n            {\n                Ip = \"192.168.150.10\",\n                Description = \"three\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewLbIpgroupV3(ctx, \"group_1\", &opentelekomcloud.LbIpgroupV3Args{\n\t\t\tName:        pulumi.String(\"group_1\"),\n\t\t\tDescription: pulumi.String(\"group description\"),\n\t\t\tIpLists: opentelekomcloud.LbIpgroupV3IpListArray{\n\t\t\t\t&opentelekomcloud.LbIpgroupV3IpListArgs{\n\t\t\t\t\tIp:          pulumi.String(\"192.168.50.10\"),\n\t\t\t\t\tDescription: pulumi.String(\"one\"),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.LbIpgroupV3IpListArgs{\n\t\t\t\t\tIp:          pulumi.String(\"192.168.100.10\"),\n\t\t\t\t\tDescription: pulumi.String(\"two\"),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.LbIpgroupV3IpListArgs{\n\t\t\t\t\tIp:          pulumi.String(\"192.168.150.10\"),\n\t\t\t\t\tDescription: pulumi.String(\"three\"),\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.opentelekomcloud.LbIpgroupV3;\nimport com.pulumi.opentelekomcloud.LbIpgroupV3Args;\nimport com.pulumi.opentelekomcloud.inputs.LbIpgroupV3IpListArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var group1 = new LbIpgroupV3(\"group1\", LbIpgroupV3Args.builder()\n            .name(\"group_1\")\n            .description(\"group description\")\n            .ipLists(            \n                LbIpgroupV3IpListArgs.builder()\n                    .ip(\"192.168.50.10\")\n                    .description(\"one\")\n                    .build(),\n                LbIpgroupV3IpListArgs.builder()\n                    .ip(\"192.168.100.10\")\n                    .description(\"two\")\n                    .build(),\n                LbIpgroupV3IpListArgs.builder()\n                    .ip(\"192.168.150.10\")\n                    .description(\"three\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  group1:\n    type: opentelekomcloud:LbIpgroupV3\n    name: group_1\n    properties:\n      name: group_1\n      description: group description\n      ipLists:\n        - ip: 192.168.50.10\n          description: one\n        - ip: 192.168.100.10\n          description: two\n        - ip: 192.168.150.10\n          description: three\n```\n<!--End PulumiCodeChooser -->\n\n## Example empty ip list\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst group1 = new opentelekomcloud.LbIpgroupV3(\"group_1\", {\n    name: \"group_1\",\n    description: \"group description\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ngroup1 = opentelekomcloud.LbIpgroupV3(\"group_1\",\n    name=\"group_1\",\n    description=\"group description\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var group1 = new Opentelekomcloud.LbIpgroupV3(\"group_1\", new()\n    {\n        Name = \"group_1\",\n        Description = \"group description\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewLbIpgroupV3(ctx, \"group_1\", &opentelekomcloud.LbIpgroupV3Args{\n\t\t\tName:        pulumi.String(\"group_1\"),\n\t\t\tDescription: pulumi.String(\"group description\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.LbIpgroupV3;\nimport com.pulumi.opentelekomcloud.LbIpgroupV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var group1 = new LbIpgroupV3(\"group1\", LbIpgroupV3Args.builder()\n            .name(\"group_1\")\n            .description(\"group description\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  group1:\n    type: opentelekomcloud:LbIpgroupV3\n    name: group_1\n    properties:\n      name: group_1\n      description: group description\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nIp groups can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/lbIpgroupV3:LbIpgroupV3 group_1 7117d38e-4c8f-4624-a505-bd96b97d024c\n```\n\n","inputProperties":{"description":{"description":"Provides supplementary information about the IP address group.\n","type":"string"},"ipLists":{"description":"Specifies the IP addresses or CIDR blocks in the IP address group.\nAny IP address can be used if this block isn't specified.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FLbIpgroupV3IpList:LbIpgroupV3IpList"},"type":"array"},"lbIpgroupV3Id":{"type":"string"},"name":{"description":"Specifies the IP address group name.\n","type":"string"},"projectId":{"description":"Specifies the project ID of the IP address group.\n","type":"string"}},"properties":{"createdAt":{"description":"Indicates the creation time.\n","type":"string"},"description":{"description":"Provides supplementary information about the IP address group.\n","type":"string"},"ipLists":{"description":"Specifies the IP addresses or CIDR blocks in the IP address group.\nAny IP address can be used if this block isn't specified.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FLbIpgroupV3IpList:LbIpgroupV3IpList"},"type":"array"},"lbIpgroupV3Id":{"type":"string"},"listeners":{"description":"Lists the IDs of listeners with which the IP address group is associated.\n","items":{"type":"string"},"type":"array"},"name":{"description":"Specifies the IP address group name.\n","type":"string"},"projectId":{"description":"Specifies the project ID of the IP address group.\n","type":"string"},"updatedAt":{"description":"Indicates the update time.\n","type":"string"}},"required":["createdAt","lbIpgroupV3Id","listeners","name","projectId","updatedAt"],"stateInputs":{"description":"Input properties used for looking up and filtering LbIpgroupV3 resources.\n","properties":{"createdAt":{"description":"Indicates the creation time.\n","type":"string"},"description":{"description":"Provides supplementary information about the IP address group.\n","type":"string"},"ipLists":{"description":"Specifies the IP addresses or CIDR blocks in the IP address group.\nAny IP address can be used if this block isn't specified.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FLbIpgroupV3IpList:LbIpgroupV3IpList"},"type":"array"},"lbIpgroupV3Id":{"type":"string"},"listeners":{"description":"Lists the IDs of listeners with which the IP address group is associated.\n","items":{"type":"string"},"type":"array"},"name":{"description":"Specifies the IP address group name.\n","type":"string"},"projectId":{"description":"Specifies the project ID of the IP address group.\n","type":"string"},"updatedAt":{"description":"Indicates the update time.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/lbL7policyV2:LbL7policyV2":{"description":"Up-to-date reference of API arguments for ELB l7 policy you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-load-balancing/api-ref/apis_v2.0/forwarding_policy)\n\nManages a Load Balancer L7 Policy resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst loadbalancer1 = new opentelekomcloud.LbLoadbalancerV2(\"loadbalancer_1\", {\n    name: \"loadbalancer_1\",\n    vipSubnetId: \"SUBNET_ID\",\n});\nconst listener1 = new opentelekomcloud.LbListenerV2(\"listener_1\", {\n    name: \"listener_1\",\n    protocol: \"HTTP\",\n    protocolPort: 8080,\n    loadbalancerId: loadbalancer1.lbLoadbalancerV2Id,\n});\nconst pool1 = new opentelekomcloud.LbPoolV2(\"pool_1\", {\n    name: \"pool_1\",\n    protocol: \"HTTP\",\n    lbMethod: \"ROUND_ROBIN\",\n    loadbalancerId: loadbalancer1.lbLoadbalancerV2Id,\n});\nconst l7policy1 = new opentelekomcloud.LbL7policyV2(\"l7policy_1\", {\n    name: \"test\",\n    action: \"REDIRECT_TO_POOL\",\n    description: \"test l7 policy\",\n    position: 1,\n    listenerId: listener1.lbListenerV2Id,\n    redirectPoolId: pool1.lbPoolV2Id,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nloadbalancer1 = opentelekomcloud.LbLoadbalancerV2(\"loadbalancer_1\",\n    name=\"loadbalancer_1\",\n    vip_subnet_id=\"SUBNET_ID\")\nlistener1 = opentelekomcloud.LbListenerV2(\"listener_1\",\n    name=\"listener_1\",\n    protocol=\"HTTP\",\n    protocol_port=8080,\n    loadbalancer_id=loadbalancer1.lb_loadbalancer_v2_id)\npool1 = opentelekomcloud.LbPoolV2(\"pool_1\",\n    name=\"pool_1\",\n    protocol=\"HTTP\",\n    lb_method=\"ROUND_ROBIN\",\n    loadbalancer_id=loadbalancer1.lb_loadbalancer_v2_id)\nl7policy1 = opentelekomcloud.LbL7policyV2(\"l7policy_1\",\n    name=\"test\",\n    action=\"REDIRECT_TO_POOL\",\n    description=\"test l7 policy\",\n    position=1,\n    listener_id=listener1.lb_listener_v2_id,\n    redirect_pool_id=pool1.lb_pool_v2_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var loadbalancer1 = new Opentelekomcloud.LbLoadbalancerV2(\"loadbalancer_1\", new()\n    {\n        Name = \"loadbalancer_1\",\n        VipSubnetId = \"SUBNET_ID\",\n    });\n\n    var listener1 = new Opentelekomcloud.LbListenerV2(\"listener_1\", new()\n    {\n        Name = \"listener_1\",\n        Protocol = \"HTTP\",\n        ProtocolPort = 8080,\n        LoadbalancerId = loadbalancer1.LbLoadbalancerV2Id,\n    });\n\n    var pool1 = new Opentelekomcloud.LbPoolV2(\"pool_1\", new()\n    {\n        Name = \"pool_1\",\n        Protocol = \"HTTP\",\n        LbMethod = \"ROUND_ROBIN\",\n        LoadbalancerId = loadbalancer1.LbLoadbalancerV2Id,\n    });\n\n    var l7policy1 = new Opentelekomcloud.LbL7policyV2(\"l7policy_1\", new()\n    {\n        Name = \"test\",\n        Action = \"REDIRECT_TO_POOL\",\n        Description = \"test l7 policy\",\n        Position = 1,\n        ListenerId = listener1.LbListenerV2Id,\n        RedirectPoolId = pool1.LbPoolV2Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tloadbalancer1, err := opentelekomcloud.NewLbLoadbalancerV2(ctx, \"loadbalancer_1\", &opentelekomcloud.LbLoadbalancerV2Args{\n\t\t\tName:        pulumi.String(\"loadbalancer_1\"),\n\t\t\tVipSubnetId: pulumi.String(\"SUBNET_ID\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlistener1, err := opentelekomcloud.NewLbListenerV2(ctx, \"listener_1\", &opentelekomcloud.LbListenerV2Args{\n\t\t\tName:           pulumi.String(\"listener_1\"),\n\t\t\tProtocol:       pulumi.String(\"HTTP\"),\n\t\t\tProtocolPort:   pulumi.Float64(8080),\n\t\t\tLoadbalancerId: loadbalancer1.LbLoadbalancerV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpool1, err := opentelekomcloud.NewLbPoolV2(ctx, \"pool_1\", &opentelekomcloud.LbPoolV2Args{\n\t\t\tName:           pulumi.String(\"pool_1\"),\n\t\t\tProtocol:       pulumi.String(\"HTTP\"),\n\t\t\tLbMethod:       pulumi.String(\"ROUND_ROBIN\"),\n\t\t\tLoadbalancerId: loadbalancer1.LbLoadbalancerV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewLbL7policyV2(ctx, \"l7policy_1\", &opentelekomcloud.LbL7policyV2Args{\n\t\t\tName:           pulumi.String(\"test\"),\n\t\t\tAction:         pulumi.String(\"REDIRECT_TO_POOL\"),\n\t\t\tDescription:    pulumi.String(\"test l7 policy\"),\n\t\t\tPosition:       pulumi.Float64(1),\n\t\t\tListenerId:     listener1.LbListenerV2Id,\n\t\t\tRedirectPoolId: pool1.LbPoolV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.LbLoadbalancerV2;\nimport com.pulumi.opentelekomcloud.LbLoadbalancerV2Args;\nimport com.pulumi.opentelekomcloud.LbListenerV2;\nimport com.pulumi.opentelekomcloud.LbListenerV2Args;\nimport com.pulumi.opentelekomcloud.LbPoolV2;\nimport com.pulumi.opentelekomcloud.LbPoolV2Args;\nimport com.pulumi.opentelekomcloud.LbL7policyV2;\nimport com.pulumi.opentelekomcloud.LbL7policyV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var loadbalancer1 = new LbLoadbalancerV2(\"loadbalancer1\", LbLoadbalancerV2Args.builder()\n            .name(\"loadbalancer_1\")\n            .vipSubnetId(\"SUBNET_ID\")\n            .build());\n\n        var listener1 = new LbListenerV2(\"listener1\", LbListenerV2Args.builder()\n            .name(\"listener_1\")\n            .protocol(\"HTTP\")\n            .protocolPort(8080.0)\n            .loadbalancerId(loadbalancer1.lbLoadbalancerV2Id())\n            .build());\n\n        var pool1 = new LbPoolV2(\"pool1\", LbPoolV2Args.builder()\n            .name(\"pool_1\")\n            .protocol(\"HTTP\")\n            .lbMethod(\"ROUND_ROBIN\")\n            .loadbalancerId(loadbalancer1.lbLoadbalancerV2Id())\n            .build());\n\n        var l7policy1 = new LbL7policyV2(\"l7policy1\", LbL7policyV2Args.builder()\n            .name(\"test\")\n            .action(\"REDIRECT_TO_POOL\")\n            .description(\"test l7 policy\")\n            .position(1.0)\n            .listenerId(listener1.lbListenerV2Id())\n            .redirectPoolId(pool1.lbPoolV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  loadbalancer1:\n    type: opentelekomcloud:LbLoadbalancerV2\n    name: loadbalancer_1\n    properties:\n      name: loadbalancer_1\n      vipSubnetId: SUBNET_ID\n  listener1:\n    type: opentelekomcloud:LbListenerV2\n    name: listener_1\n    properties:\n      name: listener_1\n      protocol: HTTP\n      protocolPort: 8080\n      loadbalancerId: ${loadbalancer1.lbLoadbalancerV2Id}\n  pool1:\n    type: opentelekomcloud:LbPoolV2\n    name: pool_1\n    properties:\n      name: pool_1\n      protocol: HTTP\n      lbMethod: ROUND_ROBIN\n      loadbalancerId: ${loadbalancer1.lbLoadbalancerV2Id}\n  l7policy1:\n    type: opentelekomcloud:LbL7policyV2\n    name: l7policy_1\n    properties:\n      name: test\n      action: REDIRECT_TO_POOL\n      description: test l7 policy\n      position: 1\n      listenerId: ${listener1.lbListenerV2Id}\n      redirectPoolId: ${pool1.lbPoolV2Id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nLoad Balancer L7 Policy can be imported using the L7 Policy ID, e.g.:\n\n```sh\n$ pulumi import opentelekomcloud:index/lbL7policyV2:LbL7policyV2 l7policy_1 8a7a79c2-cf17-4e65-b2ae-ddc8bfcf6c74\n```\n\n","inputProperties":{"action":{"description":"The L7 Policy action - can either be REDIRECT_TO_POOL,\nor REDIRECT_TO_LISTENER. Changing this creates a new L7 Policy.\n","type":"string"},"adminStateUp":{"description":"The administrative state of the L7 Policy.\nThis value can only be true (UP).\n","type":"boolean"},"description":{"description":"Human-readable description for the L7 Policy.\n","type":"string"},"lbL7policyV2Id":{"description":"The unique ID for the L7 policy.\n","type":"string"},"listenerId":{"description":"The Listener on which the L7 Policy will be associated with.\nChanging this creates a new L7 Policy.\n","type":"string"},"name":{"description":"Human-readable name for the L7 Policy. Does not have\nto be unique.\n","type":"string"},"position":{"description":"The position of this policy on the listener. Positions start at 1. Changing this creates a new L7 Policy.\n","type":"number"},"redirectListenerId":{"description":"Requests matching this policy will be redirected to the listener with this ID.\nOnly valid if action is REDIRECT_TO_LISTENER.\n","type":"string"},"redirectPoolId":{"description":"Requests matching this policy will be redirected to the pool with this ID.\nOnly valid if action is REDIRECT_TO_POOL.\n","type":"string"},"region":{"description":"The region in which to obtain the V2 Networking client.\nIf omitted, the <span pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\">`region`</span> argument of the provider is used.\nChanging this creates a new L7 Policy.\n","type":"string"},"tenantId":{"description":"Required for admins. The UUID of the tenant who owns\nthe L7 Policy. Only administrative users can specify a tenant UUID\nother than their own. Changing this creates a new L7 Policy.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FLbL7policyV2Timeouts:LbL7policyV2Timeouts"}},"properties":{"action":{"description":"The L7 Policy action - can either be REDIRECT_TO_POOL,\nor REDIRECT_TO_LISTENER. Changing this creates a new L7 Policy.\n","type":"string"},"adminStateUp":{"description":"The administrative state of the L7 Policy.\nThis value can only be true (UP).\n","type":"boolean"},"description":{"description":"Human-readable description for the L7 Policy.\n","type":"string"},"lbL7policyV2Id":{"description":"The unique ID for the L7 policy.\n","type":"string"},"listenerId":{"description":"The Listener on which the L7 Policy will be associated with.\nChanging this creates a new L7 Policy.\n","type":"string"},"name":{"description":"Human-readable name for the L7 Policy. Does not have\nto be unique.\n","type":"string"},"position":{"description":"The position of this policy on the listener. Positions start at 1. Changing this creates a new L7 Policy.\n","type":"number"},"redirectListenerId":{"description":"Requests matching this policy will be redirected to the listener with this ID.\nOnly valid if action is REDIRECT_TO_LISTENER.\n","type":"string"},"redirectPoolId":{"description":"Requests matching this policy will be redirected to the pool with this ID.\nOnly valid if action is REDIRECT_TO_POOL.\n","type":"string"},"region":{"description":"The region in which to obtain the V2 Networking client.\nIf omitted, the <span pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\">`region`</span> argument of the provider is used.\nChanging this creates a new L7 Policy.\n","type":"string"},"tenantId":{"description":"Required for admins. The UUID of the tenant who owns\nthe L7 Policy. Only administrative users can specify a tenant UUID\nother than their own. Changing this creates a new L7 Policy.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FLbL7policyV2Timeouts:LbL7policyV2Timeouts"}},"required":["action","lbL7policyV2Id","listenerId","name","position","region","tenantId"],"requiredInputs":["action","listenerId"],"stateInputs":{"description":"Input properties used for looking up and filtering LbL7policyV2 resources.\n","properties":{"action":{"description":"The L7 Policy action - can either be REDIRECT_TO_POOL,\nor REDIRECT_TO_LISTENER. Changing this creates a new L7 Policy.\n","type":"string"},"adminStateUp":{"description":"The administrative state of the L7 Policy.\nThis value can only be true (UP).\n","type":"boolean"},"description":{"description":"Human-readable description for the L7 Policy.\n","type":"string"},"lbL7policyV2Id":{"description":"The unique ID for the L7 policy.\n","type":"string"},"listenerId":{"description":"The Listener on which the L7 Policy will be associated with.\nChanging this creates a new L7 Policy.\n","type":"string"},"name":{"description":"Human-readable name for the L7 Policy. Does not have\nto be unique.\n","type":"string"},"position":{"description":"The position of this policy on the listener. Positions start at 1. Changing this creates a new L7 Policy.\n","type":"number"},"redirectListenerId":{"description":"Requests matching this policy will be redirected to the listener with this ID.\nOnly valid if action is REDIRECT_TO_LISTENER.\n","type":"string"},"redirectPoolId":{"description":"Requests matching this policy will be redirected to the pool with this ID.\nOnly valid if action is REDIRECT_TO_POOL.\n","type":"string"},"region":{"description":"The region in which to obtain the V2 Networking client.\nIf omitted, the <span pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\">`region`</span> argument of the provider is used.\nChanging this creates a new L7 Policy.\n","type":"string"},"tenantId":{"description":"Required for admins. The UUID of the tenant who owns\nthe L7 Policy. Only administrative users can specify a tenant UUID\nother than their own. Changing this creates a new L7 Policy.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FLbL7policyV2Timeouts:LbL7policyV2Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/lbL7ruleV2:LbL7ruleV2":{"description":"Up-to-date reference of API arguments for ELB l7 rule you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-load-balancing/api-ref/apis_v2.0/forwarding_rule)\n\nManages a V2 L7 Rule resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```yaml\nresources:\n  loadbalancer1:\n    type: opentelekomcloud:LbLoadbalancerV2\n    name: loadbalancer_1\n    properties:\n      name: loadbalancer_1\n      vipSubnetId: SUBNET_ID\n  listener1:\n    type: opentelekomcloud:LbListenerV2\n    name: listener_1\n    properties:\n      name: listener_1\n      protocol: HTTP\n      protocolPort: 8080\n      loadbalancerId: ${loadbalancer1.lbLoadbalancerV2Id}\n  pool1:\n    type: opentelekomcloud:LbPoolV2\n    name: pool_1\n    properties:\n      name: pool_1\n      protocol: HTTP\n      lbMethod: ROUND_ROBIN\n      loadbalancerId: ${loadbalancer1.lbLoadbalancerV2Id}\n  l7policy1:\n    type: opentelekomcloud:LbL7policyV2\n    name: l7policy_1\n    properties:\n      name: test\n      action: REDIRECT_TO_URL\n      description: test description\n      position: 1\n      listenerId: ${listener1.lbListenerV2Id}\n      redirectUrl: http://www.example.com\n  l7rule1:\n    type: opentelekomcloud:LbL7ruleV2\n    name: l7rule_1\n    properties:\n      l7policyId: ${l7policy1.lbL7policyV2Id}\n      type: PATH\n      compareType: EQUAL_TO\n      value: /api\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nLoad Balancer L7 Rule can be imported using the L7 Policy ID and L7 Rule ID\n\nseparated by a slash, e.g.:\n\n```sh\n$ pulumi import opentelekomcloud:index/lbL7ruleV2:LbL7ruleV2 l7rule_1 e0bd694a-abbe-450e-b329-0931fd1cc5eb/4086b0c9-b18c-4d1c-b6b8-4c56c3ad2a9e\n```\n\n","inputProperties":{"adminStateUp":{"description":"The administrative state of the L7 Rule.\nThe value can only be true (UP).\n","type":"boolean"},"compareType":{"description":"The comparison type for the L7 rule - can either be\nSTARTS_WITH, EQUAL_TO or REGEX\n","type":"string"},"key":{"description":"The key to use for the comparison. For example, the name of the cookie to\nevaluate. Valid when <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is set to COOKIE or HEADER. Changing this creates a new L7 Rule.\n","type":"string"},"l7policyId":{"description":"The ID of the L7 Policy to query. Changing this creates a new\nL7 Rule.\n","type":"string"},"lbL7ruleV2Id":{"description":"The unique ID for the L7 Rule.\n","type":"string"},"region":{"description":"The region in which to obtain the V2 Networking client.\nIf omitted, the <span pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\">`region`</span> argument of the provider is used.\nChanging this creates a new L7 Rule.\n","type":"string"},"tenantId":{"description":"Required for admins. The UUID of the tenant who owns\nthe L7 Rule.  Only administrative users can specify a tenant UUID\nother than their own. Changing this creates a new L7 Rule.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FLbL7ruleV2Timeouts:LbL7ruleV2Timeouts"},"type":{"description":"The L7 Rule type - can either be HOST_NAME or PATH. Changing this creates a new L7 Rule.\n","type":"string"},"value":{"description":"The value to use for the comparison. For example, the file type to\ncompare.\n","type":"string"}},"properties":{"adminStateUp":{"description":"The administrative state of the L7 Rule.\nThe value can only be true (UP).\n","type":"boolean"},"compareType":{"description":"The comparison type for the L7 rule - can either be\nSTARTS_WITH, EQUAL_TO or REGEX\n","type":"string"},"key":{"description":"The key to use for the comparison. For example, the name of the cookie to\nevaluate. Valid when <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is set to COOKIE or HEADER. Changing this creates a new L7 Rule.\n","type":"string"},"l7policyId":{"description":"The ID of the L7 Policy to query. Changing this creates a new\nL7 Rule.\n","type":"string"},"lbL7ruleV2Id":{"description":"The unique ID for the L7 Rule.\n","type":"string"},"listenerId":{"description":"The ID of the Listener owning this resource.\n","type":"string"},"region":{"description":"The region in which to obtain the V2 Networking client.\nIf omitted, the <span pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\">`region`</span> argument of the provider is used.\nChanging this creates a new L7 Rule.\n","type":"string"},"tenantId":{"description":"Required for admins. The UUID of the tenant who owns\nthe L7 Rule.  Only administrative users can specify a tenant UUID\nother than their own. Changing this creates a new L7 Rule.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FLbL7ruleV2Timeouts:LbL7ruleV2Timeouts"},"type":{"description":"The L7 Rule type - can either be HOST_NAME or PATH. Changing this creates a new L7 Rule.\n","type":"string"},"value":{"description":"The value to use for the comparison. For example, the file type to\ncompare.\n","type":"string"}},"required":["compareType","l7policyId","lbL7ruleV2Id","listenerId","region","tenantId","type","value"],"requiredInputs":["compareType","l7policyId","type","value"],"stateInputs":{"description":"Input properties used for looking up and filtering LbL7ruleV2 resources.\n","properties":{"adminStateUp":{"description":"The administrative state of the L7 Rule.\nThe value can only be true (UP).\n","type":"boolean"},"compareType":{"description":"The comparison type for the L7 rule - can either be\nSTARTS_WITH, EQUAL_TO or REGEX\n","type":"string"},"key":{"description":"The key to use for the comparison. For example, the name of the cookie to\nevaluate. Valid when <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is set to COOKIE or HEADER. Changing this creates a new L7 Rule.\n","type":"string"},"l7policyId":{"description":"The ID of the L7 Policy to query. Changing this creates a new\nL7 Rule.\n","type":"string"},"lbL7ruleV2Id":{"description":"The unique ID for the L7 Rule.\n","type":"string"},"listenerId":{"description":"The ID of the Listener owning this resource.\n","type":"string"},"region":{"description":"The region in which to obtain the V2 Networking client.\nIf omitted, the <span pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\">`region`</span> argument of the provider is used.\nChanging this creates a new L7 Rule.\n","type":"string"},"tenantId":{"description":"Required for admins. The UUID of the tenant who owns\nthe L7 Rule.  Only administrative users can specify a tenant UUID\nother than their own. Changing this creates a new L7 Rule.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FLbL7ruleV2Timeouts:LbL7ruleV2Timeouts"},"type":{"description":"The L7 Rule type - can either be HOST_NAME or PATH. Changing this creates a new L7 Rule.\n","type":"string"},"value":{"description":"The value to use for the comparison. For example, the file type to\ncompare.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/lbListenerV2:LbListenerV2":{"description":"Up-to-date reference of API arguments for ELB listener you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-load-balancing/api-ref/apis_v2.0/listener)\n\nManages an Enhanced LB listener resource within OpenTelekomCloud.\n\n## Example Basic Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst listener1 = new opentelekomcloud.LbListenerV2(\"listener_1\", {\n    protocol: \"HTTP\",\n    protocolPort: 8080,\n    loadbalancerId: \"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n    tags: {\n        muh: \"kuh\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nlistener1 = opentelekomcloud.LbListenerV2(\"listener_1\",\n    protocol=\"HTTP\",\n    protocol_port=8080,\n    loadbalancer_id=\"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n    tags={\n        \"muh\": \"kuh\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var listener1 = new Opentelekomcloud.LbListenerV2(\"listener_1\", new()\n    {\n        Protocol = \"HTTP\",\n        ProtocolPort = 8080,\n        LoadbalancerId = \"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n        Tags = \n        {\n            { \"muh\", \"kuh\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewLbListenerV2(ctx, \"listener_1\", &opentelekomcloud.LbListenerV2Args{\n\t\t\tProtocol:       pulumi.String(\"HTTP\"),\n\t\t\tProtocolPort:   pulumi.Float64(8080),\n\t\t\tLoadbalancerId: pulumi.String(\"d9415786-5f1a-428b-b35f-2f1523e146d2\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"muh\": pulumi.String(\"kuh\"),\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.opentelekomcloud.LbListenerV2;\nimport com.pulumi.opentelekomcloud.LbListenerV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var listener1 = new LbListenerV2(\"listener1\", LbListenerV2Args.builder()\n            .protocol(\"HTTP\")\n            .protocolPort(8080.0)\n            .loadbalancerId(\"d9415786-5f1a-428b-b35f-2f1523e146d2\")\n            .tags(Map.of(\"muh\", \"kuh\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  listener1:\n    type: opentelekomcloud:LbListenerV2\n    name: listener_1\n    properties:\n      protocol: HTTP\n      protocolPort: 8080\n      loadbalancerId: d9415786-5f1a-428b-b35f-2f1523e146d2\n      tags:\n        muh: kuh\n```\n<!--End PulumiCodeChooser -->\n\n## Example Ip Address Group\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst loadbalancer1 = new opentelekomcloud.LbLoadbalancerV2(\"loadbalancer_1\", {\n    name: \"loadbalancer_1\",\n    vipSubnetId: sharedSubnet.subnetId,\n});\nconst group1 = new opentelekomcloud.LbIpgroupV3(\"group_1\", {\n    name: \"group_1\",\n    description: \"some interesting description 1\",\n    ipLists: [{\n        ip: \"192.168.10.10\",\n        description: \"first\",\n    }],\n});\nconst listener1 = new opentelekomcloud.LbListenerV2(\"listener_1\", {\n    name: \"listener_1_updated\",\n    loadbalancerId: loadbalancer1.lbLoadbalancerV2Id,\n    protocol: \"HTTP\",\n    protocolPort: 8080,\n    ipGroup: {\n        id: group1.lbIpgroupV3Id,\n        enable: false,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nloadbalancer1 = opentelekomcloud.LbLoadbalancerV2(\"loadbalancer_1\",\n    name=\"loadbalancer_1\",\n    vip_subnet_id=shared_subnet[\"subnetId\"])\ngroup1 = opentelekomcloud.LbIpgroupV3(\"group_1\",\n    name=\"group_1\",\n    description=\"some interesting description 1\",\n    ip_lists=[{\n        \"ip\": \"192.168.10.10\",\n        \"description\": \"first\",\n    }])\nlistener1 = opentelekomcloud.LbListenerV2(\"listener_1\",\n    name=\"listener_1_updated\",\n    loadbalancer_id=loadbalancer1.lb_loadbalancer_v2_id,\n    protocol=\"HTTP\",\n    protocol_port=8080,\n    ip_group={\n        \"id\": group1.lb_ipgroup_v3_id,\n        \"enable\": False,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var loadbalancer1 = new Opentelekomcloud.LbLoadbalancerV2(\"loadbalancer_1\", new()\n    {\n        Name = \"loadbalancer_1\",\n        VipSubnetId = sharedSubnet.SubnetId,\n    });\n\n    var group1 = new Opentelekomcloud.LbIpgroupV3(\"group_1\", new()\n    {\n        Name = \"group_1\",\n        Description = \"some interesting description 1\",\n        IpLists = new[]\n        {\n            new Opentelekomcloud.Inputs.LbIpgroupV3IpListArgs\n            {\n                Ip = \"192.168.10.10\",\n                Description = \"first\",\n            },\n        },\n    });\n\n    var listener1 = new Opentelekomcloud.LbListenerV2(\"listener_1\", new()\n    {\n        Name = \"listener_1_updated\",\n        LoadbalancerId = loadbalancer1.LbLoadbalancerV2Id,\n        Protocol = \"HTTP\",\n        ProtocolPort = 8080,\n        IpGroup = new Opentelekomcloud.Inputs.LbListenerV2IpGroupArgs\n        {\n            Id = group1.LbIpgroupV3Id,\n            Enable = false,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tloadbalancer1, err := opentelekomcloud.NewLbLoadbalancerV2(ctx, \"loadbalancer_1\", &opentelekomcloud.LbLoadbalancerV2Args{\n\t\t\tName:        pulumi.String(\"loadbalancer_1\"),\n\t\t\tVipSubnetId: pulumi.Any(sharedSubnet.SubnetId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgroup1, err := opentelekomcloud.NewLbIpgroupV3(ctx, \"group_1\", &opentelekomcloud.LbIpgroupV3Args{\n\t\t\tName:        pulumi.String(\"group_1\"),\n\t\t\tDescription: pulumi.String(\"some interesting description 1\"),\n\t\t\tIpLists: opentelekomcloud.LbIpgroupV3IpListArray{\n\t\t\t\t&opentelekomcloud.LbIpgroupV3IpListArgs{\n\t\t\t\t\tIp:          pulumi.String(\"192.168.10.10\"),\n\t\t\t\t\tDescription: pulumi.String(\"first\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewLbListenerV2(ctx, \"listener_1\", &opentelekomcloud.LbListenerV2Args{\n\t\t\tName:           pulumi.String(\"listener_1_updated\"),\n\t\t\tLoadbalancerId: loadbalancer1.LbLoadbalancerV2Id,\n\t\t\tProtocol:       pulumi.String(\"HTTP\"),\n\t\t\tProtocolPort:   pulumi.Float64(8080),\n\t\t\tIpGroup: &opentelekomcloud.LbListenerV2IpGroupArgs{\n\t\t\t\tId:     group1.LbIpgroupV3Id,\n\t\t\t\tEnable: pulumi.Bool(false),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.LbLoadbalancerV2;\nimport com.pulumi.opentelekomcloud.LbLoadbalancerV2Args;\nimport com.pulumi.opentelekomcloud.LbIpgroupV3;\nimport com.pulumi.opentelekomcloud.LbIpgroupV3Args;\nimport com.pulumi.opentelekomcloud.inputs.LbIpgroupV3IpListArgs;\nimport com.pulumi.opentelekomcloud.LbListenerV2;\nimport com.pulumi.opentelekomcloud.LbListenerV2Args;\nimport com.pulumi.opentelekomcloud.inputs.LbListenerV2IpGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var loadbalancer1 = new LbLoadbalancerV2(\"loadbalancer1\", LbLoadbalancerV2Args.builder()\n            .name(\"loadbalancer_1\")\n            .vipSubnetId(sharedSubnet.subnetId())\n            .build());\n\n        var group1 = new LbIpgroupV3(\"group1\", LbIpgroupV3Args.builder()\n            .name(\"group_1\")\n            .description(\"some interesting description 1\")\n            .ipLists(LbIpgroupV3IpListArgs.builder()\n                .ip(\"192.168.10.10\")\n                .description(\"first\")\n                .build())\n            .build());\n\n        var listener1 = new LbListenerV2(\"listener1\", LbListenerV2Args.builder()\n            .name(\"listener_1_updated\")\n            .loadbalancerId(loadbalancer1.lbLoadbalancerV2Id())\n            .protocol(\"HTTP\")\n            .protocolPort(8080.0)\n            .ipGroup(LbListenerV2IpGroupArgs.builder()\n                .id(group1.lbIpgroupV3Id())\n                .enable(false)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  loadbalancer1:\n    type: opentelekomcloud:LbLoadbalancerV2\n    name: loadbalancer_1\n    properties:\n      name: loadbalancer_1\n      vipSubnetId: ${sharedSubnet.subnetId}\n  group1:\n    type: opentelekomcloud:LbIpgroupV3\n    name: group_1\n    properties:\n      name: group_1\n      description: some interesting description 1\n      ipLists:\n        - ip: 192.168.10.10\n          description: first\n  listener1:\n    type: opentelekomcloud:LbListenerV2\n    name: listener_1\n    properties:\n      name: listener_1_updated\n      loadbalancerId: ${loadbalancer1.lbLoadbalancerV2Id}\n      protocol: HTTP\n      protocolPort: 8080\n      ipGroup:\n        id: ${group1.lbIpgroupV3Id}\n        enable: false\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nListeners can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/lbListenerV2:LbListenerV2 listener_1 7117d38e-4c8f-4624-a505-bd96b97d024c\n```\n\n","inputProperties":{"adminStateUp":{"description":"The administrative state of the Listener.\nA valid value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> (UP) or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> (DOWN).\n","type":"boolean"},"clientCaTlsContainerRef":{"description":"Specifies the ID of a certificate container of type <span pulumi-lang-nodejs=\"`client`\" pulumi-lang-dotnet=\"`Client`\" pulumi-lang-go=\"`client`\" pulumi-lang-python=\"`client`\" pulumi-lang-yaml=\"`client`\" pulumi-lang-java=\"`client`\">`client`</span>\nused by the listener. The value contains a maximum of 128 characters. The default value is <span pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\">`null`</span>.\nThe loadbalancer only establishes a TLS connection if the client presents a certificate delivered by\nthe client CA whose certificate is registered in the referenced certificate container. The option is\neffective only in conjunction with `TERMINATED_HTTPS`.\n","type":"string"},"defaultPoolId":{"description":"The ID of the default pool with which the\nListener is associated. Changing this creates a new Listener.\n","type":"string"},"defaultTlsContainerRef":{"description":"Specifies the ID of a certificate container of type <span pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\">`server`</span>\nused by the listener. The value contains a maximum of 128 characters. The default value is <span pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\">`null`</span>.\nThis parameter is **required** when protocol is set to `TERMINATED_HTTPS`.\nSee [here](https://wiki.openstack.org/wiki/Network/LBaaS/docs/how-to-create-tls-loadbalancer)\nfor more information.\n","type":"string"},"description":{"description":"Human-readable description for the Listener.\n","type":"string"},"http2Enable":{"description":"<span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> to enable HTTP/2 mode of ELB.\nHTTP/2 is disabled by default if not set.\n","type":"boolean"},"ipGroup":{"$ref":"#/types/opentelekomcloud:index%2FLbListenerV2IpGroup:LbListenerV2IpGroup","description":"Specifies the IP address group associated with the listener.\n"},"lbListenerV2Id":{"description":"The unique ID for the Listener.\n","type":"string"},"loadbalancerId":{"description":"The load balancer on which to provision this\nListener. Changing this creates a new Listener.\n","type":"string"},"name":{"description":"Human-readable name for the Listener. Does not have\nto be unique.\n","type":"string"},"protocol":{"description":"The protocol - can either be `TCP`, `HTTP`, `UDP` or `TERMINATED_HTTPS`.\nChanging this creates a new Listener.\n","type":"string"},"protocolPort":{"description":"The port on which to listen for client traffic.\nChanging this creates a new Listener.\n","type":"number"},"region":{"type":"string"},"sniContainerRefs":{"description":"Lists the IDs of SNI certificates (server certificates with a domain name) used\nby the listener. If the parameter value is an empty list, the SNI feature is disabled.\nThe default value is `[]`. It only works in conjunction with `TERMINATED_HTTPS`.\n","items":{"type":"string"},"type":"array"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the loadbalancer listener.\n","type":"object"},"tenantId":{"description":"Required for admins. The UUID of the tenant who owns\nthe Listener.  Only administrative users can specify a tenant UUID\nother than their own. Changing this creates a new Listener.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FLbListenerV2Timeouts:LbListenerV2Timeouts"},"tlsCiphersPolicy":{"description":"Controls the TLS version used. Supported values are `tls-1-0`, `tls-1-1`,\n`tls-1-2` and `tls-1-2-strict`. If not set, the loadbalancer uses `tls-1-0`. See\n[here](https://docs.otc.t-systems.com/api/elb/elb_zq_jt_0001.html) for details about the supported cipher\nsuites. The option is effective only in conjunction with `TERMINATED_HTTPS`.\n","type":"string"},"transparentClientIpEnable":{"description":"Specifies whether to pass source IP addresses of the clients to\nbackend servers. The value is always <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> for `HTTP` and `HTTPS` listeners. For `TCP` and `UDP` listeners the\nvalue can be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> with <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> by default.\n\n->\nIf the load balancer is a Dedicated Load Balancer, <span pulumi-lang-nodejs=\"`transparentClientIpEnable`\" pulumi-lang-dotnet=\"`TransparentClientIpEnable`\" pulumi-lang-go=\"`transparentClientIpEnable`\" pulumi-lang-python=\"`transparent_client_ip_enable`\" pulumi-lang-yaml=\"`transparentClientIpEnable`\" pulumi-lang-java=\"`transparentClientIpEnable`\">`transparent_client_ip_enable`</span> is always <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>\n","type":"boolean"}},"properties":{"adminStateUp":{"description":"The administrative state of the Listener.\nA valid value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> (UP) or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> (DOWN).\n","type":"boolean"},"clientCaTlsContainerRef":{"description":"Specifies the ID of a certificate container of type <span pulumi-lang-nodejs=\"`client`\" pulumi-lang-dotnet=\"`Client`\" pulumi-lang-go=\"`client`\" pulumi-lang-python=\"`client`\" pulumi-lang-yaml=\"`client`\" pulumi-lang-java=\"`client`\">`client`</span>\nused by the listener. The value contains a maximum of 128 characters. The default value is <span pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\">`null`</span>.\nThe loadbalancer only establishes a TLS connection if the client presents a certificate delivered by\nthe client CA whose certificate is registered in the referenced certificate container. The option is\neffective only in conjunction with `TERMINATED_HTTPS`.\n","type":"string"},"defaultPoolId":{"description":"The ID of the default pool with which the\nListener is associated. Changing this creates a new Listener.\n","type":"string"},"defaultTlsContainerRef":{"description":"Specifies the ID of a certificate container of type <span pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\">`server`</span>\nused by the listener. The value contains a maximum of 128 characters. The default value is <span pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\">`null`</span>.\nThis parameter is **required** when protocol is set to `TERMINATED_HTTPS`.\nSee [here](https://wiki.openstack.org/wiki/Network/LBaaS/docs/how-to-create-tls-loadbalancer)\nfor more information.\n","type":"string"},"description":{"description":"Human-readable description for the Listener.\n","type":"string"},"http2Enable":{"description":"<span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> to enable HTTP/2 mode of ELB.\nHTTP/2 is disabled by default if not set.\n","type":"boolean"},"ipGroup":{"$ref":"#/types/opentelekomcloud:index%2FLbListenerV2IpGroup:LbListenerV2IpGroup","description":"Specifies the IP address group associated with the listener.\n"},"lbListenerV2Id":{"description":"The unique ID for the Listener.\n","type":"string"},"loadbalancerId":{"description":"The load balancer on which to provision this\nListener. Changing this creates a new Listener.\n","type":"string"},"name":{"description":"Human-readable name for the Listener. Does not have\nto be unique.\n","type":"string"},"protocol":{"description":"The protocol - can either be `TCP`, `HTTP`, `UDP` or `TERMINATED_HTTPS`.\nChanging this creates a new Listener.\n","type":"string"},"protocolPort":{"description":"The port on which to listen for client traffic.\nChanging this creates a new Listener.\n","type":"number"},"region":{"type":"string"},"sniContainerRefs":{"description":"Lists the IDs of SNI certificates (server certificates with a domain name) used\nby the listener. If the parameter value is an empty list, the SNI feature is disabled.\nThe default value is `[]`. It only works in conjunction with `TERMINATED_HTTPS`.\n","items":{"type":"string"},"type":"array"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the loadbalancer listener.\n","type":"object"},"tenantId":{"description":"Required for admins. The UUID of the tenant who owns\nthe Listener.  Only administrative users can specify a tenant UUID\nother than their own. Changing this creates a new Listener.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FLbListenerV2Timeouts:LbListenerV2Timeouts"},"tlsCiphersPolicy":{"description":"Controls the TLS version used. Supported values are `tls-1-0`, `tls-1-1`,\n`tls-1-2` and `tls-1-2-strict`. If not set, the loadbalancer uses `tls-1-0`. See\n[here](https://docs.otc.t-systems.com/api/elb/elb_zq_jt_0001.html) for details about the supported cipher\nsuites. The option is effective only in conjunction with `TERMINATED_HTTPS`.\n","type":"string"},"transparentClientIpEnable":{"description":"Specifies whether to pass source IP addresses of the clients to\nbackend servers. The value is always <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> for `HTTP` and `HTTPS` listeners. For `TCP` and `UDP` listeners the\nvalue can be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> with <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> by default.\n\n->\nIf the load balancer is a Dedicated Load Balancer, <span pulumi-lang-nodejs=\"`transparentClientIpEnable`\" pulumi-lang-dotnet=\"`TransparentClientIpEnable`\" pulumi-lang-go=\"`transparentClientIpEnable`\" pulumi-lang-python=\"`transparent_client_ip_enable`\" pulumi-lang-yaml=\"`transparentClientIpEnable`\" pulumi-lang-java=\"`transparentClientIpEnable`\">`transparent_client_ip_enable`</span> is always <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>\n","type":"boolean"}},"required":["clientCaTlsContainerRef","defaultPoolId","defaultTlsContainerRef","lbListenerV2Id","loadbalancerId","name","protocol","protocolPort","region","tenantId","transparentClientIpEnable"],"requiredInputs":["loadbalancerId","protocol","protocolPort"],"stateInputs":{"description":"Input properties used for looking up and filtering LbListenerV2 resources.\n","properties":{"adminStateUp":{"description":"The administrative state of the Listener.\nA valid value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> (UP) or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> (DOWN).\n","type":"boolean"},"clientCaTlsContainerRef":{"description":"Specifies the ID of a certificate container of type <span pulumi-lang-nodejs=\"`client`\" pulumi-lang-dotnet=\"`Client`\" pulumi-lang-go=\"`client`\" pulumi-lang-python=\"`client`\" pulumi-lang-yaml=\"`client`\" pulumi-lang-java=\"`client`\">`client`</span>\nused by the listener. The value contains a maximum of 128 characters. The default value is <span pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\">`null`</span>.\nThe loadbalancer only establishes a TLS connection if the client presents a certificate delivered by\nthe client CA whose certificate is registered in the referenced certificate container. The option is\neffective only in conjunction with `TERMINATED_HTTPS`.\n","type":"string"},"defaultPoolId":{"description":"The ID of the default pool with which the\nListener is associated. Changing this creates a new Listener.\n","type":"string"},"defaultTlsContainerRef":{"description":"Specifies the ID of a certificate container of type <span pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\">`server`</span>\nused by the listener. The value contains a maximum of 128 characters. The default value is <span pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\">`null`</span>.\nThis parameter is **required** when protocol is set to `TERMINATED_HTTPS`.\nSee [here](https://wiki.openstack.org/wiki/Network/LBaaS/docs/how-to-create-tls-loadbalancer)\nfor more information.\n","type":"string"},"description":{"description":"Human-readable description for the Listener.\n","type":"string"},"http2Enable":{"description":"<span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> to enable HTTP/2 mode of ELB.\nHTTP/2 is disabled by default if not set.\n","type":"boolean"},"ipGroup":{"$ref":"#/types/opentelekomcloud:index%2FLbListenerV2IpGroup:LbListenerV2IpGroup","description":"Specifies the IP address group associated with the listener.\n"},"lbListenerV2Id":{"description":"The unique ID for the Listener.\n","type":"string"},"loadbalancerId":{"description":"The load balancer on which to provision this\nListener. Changing this creates a new Listener.\n","type":"string"},"name":{"description":"Human-readable name for the Listener. Does not have\nto be unique.\n","type":"string"},"protocol":{"description":"The protocol - can either be `TCP`, `HTTP`, `UDP` or `TERMINATED_HTTPS`.\nChanging this creates a new Listener.\n","type":"string"},"protocolPort":{"description":"The port on which to listen for client traffic.\nChanging this creates a new Listener.\n","type":"number"},"region":{"type":"string"},"sniContainerRefs":{"description":"Lists the IDs of SNI certificates (server certificates with a domain name) used\nby the listener. If the parameter value is an empty list, the SNI feature is disabled.\nThe default value is `[]`. It only works in conjunction with `TERMINATED_HTTPS`.\n","items":{"type":"string"},"type":"array"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the loadbalancer listener.\n","type":"object"},"tenantId":{"description":"Required for admins. The UUID of the tenant who owns\nthe Listener.  Only administrative users can specify a tenant UUID\nother than their own. Changing this creates a new Listener.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FLbListenerV2Timeouts:LbListenerV2Timeouts"},"tlsCiphersPolicy":{"description":"Controls the TLS version used. Supported values are `tls-1-0`, `tls-1-1`,\n`tls-1-2` and `tls-1-2-strict`. If not set, the loadbalancer uses `tls-1-0`. See\n[here](https://docs.otc.t-systems.com/api/elb/elb_zq_jt_0001.html) for details about the supported cipher\nsuites. The option is effective only in conjunction with `TERMINATED_HTTPS`.\n","type":"string"},"transparentClientIpEnable":{"description":"Specifies whether to pass source IP addresses of the clients to\nbackend servers. The value is always <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> for `HTTP` and `HTTPS` listeners. For `TCP` and `UDP` listeners the\nvalue can be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> with <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> by default.\n\n->\nIf the load balancer is a Dedicated Load Balancer, <span pulumi-lang-nodejs=\"`transparentClientIpEnable`\" pulumi-lang-dotnet=\"`TransparentClientIpEnable`\" pulumi-lang-go=\"`transparentClientIpEnable`\" pulumi-lang-python=\"`transparent_client_ip_enable`\" pulumi-lang-yaml=\"`transparentClientIpEnable`\" pulumi-lang-java=\"`transparentClientIpEnable`\">`transparent_client_ip_enable`</span> is always <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>\n","type":"boolean"}},"type":"object"},"type":"object"},"opentelekomcloud:index/lbListenerV3:LbListenerV3":{"description":"Up-to-date reference of API arguments for DLB listener you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-load-balancing/api-ref/apis_v3/listener)\n\nManages a Dedicated LB listener resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst listener1 = new opentelekomcloud.LbListenerV3(\"listener_1\", {\n    protocol: \"HTTP\",\n    protocolPort: 8080,\n    loadbalancerId: loadbalancerId,\n    tags: {\n        muh: \"kuh\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nlistener1 = opentelekomcloud.LbListenerV3(\"listener_1\",\n    protocol=\"HTTP\",\n    protocol_port=8080,\n    loadbalancer_id=loadbalancer_id,\n    tags={\n        \"muh\": \"kuh\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var listener1 = new Opentelekomcloud.LbListenerV3(\"listener_1\", new()\n    {\n        Protocol = \"HTTP\",\n        ProtocolPort = 8080,\n        LoadbalancerId = loadbalancerId,\n        Tags = \n        {\n            { \"muh\", \"kuh\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewLbListenerV3(ctx, \"listener_1\", &opentelekomcloud.LbListenerV3Args{\n\t\t\tProtocol:       pulumi.String(\"HTTP\"),\n\t\t\tProtocolPort:   pulumi.Float64(8080),\n\t\t\tLoadbalancerId: pulumi.Any(loadbalancerId),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"muh\": pulumi.String(\"kuh\"),\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.opentelekomcloud.LbListenerV3;\nimport com.pulumi.opentelekomcloud.LbListenerV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var listener1 = new LbListenerV3(\"listener1\", LbListenerV3Args.builder()\n            .protocol(\"HTTP\")\n            .protocolPort(8080.0)\n            .loadbalancerId(loadbalancerId)\n            .tags(Map.of(\"muh\", \"kuh\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  listener1:\n    type: opentelekomcloud:LbListenerV3\n    name: listener_1\n    properties:\n      protocol: HTTP\n      protocolPort: 8080\n      loadbalancerId: ${loadbalancerId}\n      tags:\n        muh: kuh\n```\n<!--End PulumiCodeChooser -->\n\n## Example Ip Address Group\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst group1 = new opentelekomcloud.LbIpgroupV3(\"group_1\", {\n    name: \"group_2\",\n    description: \"some interesting description 2\",\n    ipLists: [{\n        ip: \"192.168.10.11\",\n        description: \"one\",\n    }],\n});\nconst listener1 = new opentelekomcloud.LbListenerV3(\"listener_1\", {\n    name: \"listener_1\",\n    description: \"some interesting description\",\n    loadbalancerId: loadbalancer1.id,\n    protocol: \"HTTP\",\n    protocolPort: 8080,\n    advancedForwarding: true,\n    sniMatchAlgo: \"wildcard\",\n    insertHeaders: {\n        forwardedHost: true,\n    },\n    ipGroup: {\n        id: group1.lbIpgroupV3Id,\n        enable: true,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ngroup1 = opentelekomcloud.LbIpgroupV3(\"group_1\",\n    name=\"group_2\",\n    description=\"some interesting description 2\",\n    ip_lists=[{\n        \"ip\": \"192.168.10.11\",\n        \"description\": \"one\",\n    }])\nlistener1 = opentelekomcloud.LbListenerV3(\"listener_1\",\n    name=\"listener_1\",\n    description=\"some interesting description\",\n    loadbalancer_id=loadbalancer1[\"id\"],\n    protocol=\"HTTP\",\n    protocol_port=8080,\n    advanced_forwarding=True,\n    sni_match_algo=\"wildcard\",\n    insert_headers={\n        \"forwarded_host\": True,\n    },\n    ip_group={\n        \"id\": group1.lb_ipgroup_v3_id,\n        \"enable\": True,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var group1 = new Opentelekomcloud.LbIpgroupV3(\"group_1\", new()\n    {\n        Name = \"group_2\",\n        Description = \"some interesting description 2\",\n        IpLists = new[]\n        {\n            new Opentelekomcloud.Inputs.LbIpgroupV3IpListArgs\n            {\n                Ip = \"192.168.10.11\",\n                Description = \"one\",\n            },\n        },\n    });\n\n    var listener1 = new Opentelekomcloud.LbListenerV3(\"listener_1\", new()\n    {\n        Name = \"listener_1\",\n        Description = \"some interesting description\",\n        LoadbalancerId = loadbalancer1.Id,\n        Protocol = \"HTTP\",\n        ProtocolPort = 8080,\n        AdvancedForwarding = true,\n        SniMatchAlgo = \"wildcard\",\n        InsertHeaders = new Opentelekomcloud.Inputs.LbListenerV3InsertHeadersArgs\n        {\n            ForwardedHost = true,\n        },\n        IpGroup = new Opentelekomcloud.Inputs.LbListenerV3IpGroupArgs\n        {\n            Id = group1.LbIpgroupV3Id,\n            Enable = true,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tgroup1, err := opentelekomcloud.NewLbIpgroupV3(ctx, \"group_1\", &opentelekomcloud.LbIpgroupV3Args{\n\t\t\tName:        pulumi.String(\"group_2\"),\n\t\t\tDescription: pulumi.String(\"some interesting description 2\"),\n\t\t\tIpLists: opentelekomcloud.LbIpgroupV3IpListArray{\n\t\t\t\t&opentelekomcloud.LbIpgroupV3IpListArgs{\n\t\t\t\t\tIp:          pulumi.String(\"192.168.10.11\"),\n\t\t\t\t\tDescription: pulumi.String(\"one\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewLbListenerV3(ctx, \"listener_1\", &opentelekomcloud.LbListenerV3Args{\n\t\t\tName:               pulumi.String(\"listener_1\"),\n\t\t\tDescription:        pulumi.String(\"some interesting description\"),\n\t\t\tLoadbalancerId:     pulumi.Any(loadbalancer1.Id),\n\t\t\tProtocol:           pulumi.String(\"HTTP\"),\n\t\t\tProtocolPort:       pulumi.Float64(8080),\n\t\t\tAdvancedForwarding: pulumi.Bool(true),\n\t\t\tSniMatchAlgo:       pulumi.String(\"wildcard\"),\n\t\t\tInsertHeaders: &opentelekomcloud.LbListenerV3InsertHeadersArgs{\n\t\t\t\tForwardedHost: pulumi.Bool(true),\n\t\t\t},\n\t\t\tIpGroup: &opentelekomcloud.LbListenerV3IpGroupArgs{\n\t\t\t\tId:     group1.LbIpgroupV3Id,\n\t\t\t\tEnable: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.LbIpgroupV3;\nimport com.pulumi.opentelekomcloud.LbIpgroupV3Args;\nimport com.pulumi.opentelekomcloud.inputs.LbIpgroupV3IpListArgs;\nimport com.pulumi.opentelekomcloud.LbListenerV3;\nimport com.pulumi.opentelekomcloud.LbListenerV3Args;\nimport com.pulumi.opentelekomcloud.inputs.LbListenerV3InsertHeadersArgs;\nimport com.pulumi.opentelekomcloud.inputs.LbListenerV3IpGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var group1 = new LbIpgroupV3(\"group1\", LbIpgroupV3Args.builder()\n            .name(\"group_2\")\n            .description(\"some interesting description 2\")\n            .ipLists(LbIpgroupV3IpListArgs.builder()\n                .ip(\"192.168.10.11\")\n                .description(\"one\")\n                .build())\n            .build());\n\n        var listener1 = new LbListenerV3(\"listener1\", LbListenerV3Args.builder()\n            .name(\"listener_1\")\n            .description(\"some interesting description\")\n            .loadbalancerId(loadbalancer1.id())\n            .protocol(\"HTTP\")\n            .protocolPort(8080.0)\n            .advancedForwarding(true)\n            .sniMatchAlgo(\"wildcard\")\n            .insertHeaders(LbListenerV3InsertHeadersArgs.builder()\n                .forwardedHost(true)\n                .build())\n            .ipGroup(LbListenerV3IpGroupArgs.builder()\n                .id(group1.lbIpgroupV3Id())\n                .enable(true)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  group1:\n    type: opentelekomcloud:LbIpgroupV3\n    name: group_1\n    properties:\n      name: group_2\n      description: some interesting description 2\n      ipLists:\n        - ip: 192.168.10.11\n          description: one\n  listener1:\n    type: opentelekomcloud:LbListenerV3\n    name: listener_1\n    properties:\n      name: listener_1\n      description: some interesting description\n      loadbalancerId: ${loadbalancer1.id}\n      protocol: HTTP\n      protocolPort: 8080\n      advancedForwarding: true\n      sniMatchAlgo: wildcard\n      insertHeaders:\n        forwardedHost: true\n      ipGroup:\n        id: ${group1.lbIpgroupV3Id}\n        enable: true\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nListeners can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/lbListenerV3:LbListenerV3 listener_1 7117d38e-4c8f-4624-a505-bd96b97d024c\n```\n\n","inputProperties":{"adminStateUp":{"type":"boolean"},"advancedForwarding":{"description":"Specifies whether to enable advanced forwarding.\nIf advanced forwarding is enabled, more flexible forwarding policies and rules are supported.\nThe value can be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> (enable advanced forwarding) or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> (disable advanced forwarding),\nand the default value is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Changing this creates a new Listener.\n","type":"boolean"},"clientCaTlsContainerRef":{"description":"Specifies the ID of the CA certificate used by the listener.\n","type":"string"},"clientTimeout":{"description":"Specifies the timeout duration for waiting for a request from a client, in seconds.\nThis parameter is available only for `HTTP` and `HTTPS` listeners. The value ranges from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span>, and\nthe default value is <span pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\">`60`</span>. An error will be returned if you configure this parameter for `TCP` and `UDP` listeners.\n","type":"number"},"defaultPoolId":{"description":"Specifies the ID of the default backend server group. If there is no\nmatched forwarding policy, requests are forwarded to the default backend server for processing.\n","type":"string"},"defaultTlsContainerRef":{"description":"Specifies the ID of the server certificate used by the listener.\n","type":"string"},"description":{"description":"Provides supplementary information about the listener.\n","type":"string"},"http2Enable":{"description":"Specifies whether to use HTTP/2. This parameter is available only for `HTTPS`\nlisteners. If you configure this parameter for other types of listeners, it will not take effect. Enable\nHTTP/2 if you want the clients to use HTTP/2 to communicate with the load balancer.\nHowever, connections between the load balancer and backend servers use HTTP/1.x by default.\n","type":"boolean"},"insertHeaders":{"$ref":"#/types/opentelekomcloud:index%2FLbListenerV3InsertHeaders:LbListenerV3InsertHeaders","description":"Specifies the HTTP header fields.\n"},"ipGroup":{"$ref":"#/types/opentelekomcloud:index%2FLbListenerV3IpGroup:LbListenerV3IpGroup","description":"Specifies the IP address group associated with the listener.\n"},"keepAliveTimeout":{"description":"Specifies the idle timeout duration, in seconds.\n* For `TCP` listeners, the value ranges from <span pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\">`10`</span> to <span pulumi-lang-nodejs=\"`4000`\" pulumi-lang-dotnet=\"`4000`\" pulumi-lang-go=\"`4000`\" pulumi-lang-python=\"`4000`\" pulumi-lang-yaml=\"`4000`\" pulumi-lang-java=\"`4000`\">`4000`</span>, and the default value is <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span>.\n* For `HTTP` and `HTTPS` listeners, the value ranges from <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> to <span pulumi-lang-nodejs=\"`4000`\" pulumi-lang-dotnet=\"`4000`\" pulumi-lang-go=\"`4000`\" pulumi-lang-python=\"`4000`\" pulumi-lang-yaml=\"`4000`\" pulumi-lang-java=\"`4000`\">`4000`</span>, and the default value is <span pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\">`60`</span>.\n* For `UDP` listeners, this parameter is not available. An error will be returned if you\nconfigure this parameter for `UDP` listeners.\n","type":"number"},"lbListenerV3Id":{"type":"string"},"loadbalancerId":{"description":"Specifies the ID of the load balancer that the listener is added to.\n","type":"string"},"memberRetryEnable":{"description":"Specifies whether to enable health check retries for backend servers.\nThis parameter is available only for `HTTP` and `HTTPS` listeners. An error will be returned if you configure\nthis parameter for `TCP` and `UDP` listeners.\n","type":"boolean"},"memberTimeout":{"description":"Specifies the timeout duration for waiting for a request from a\nbackend server, in seconds. This parameter is available only for `HTTP` and `HTTPS` listeners.\nThe value ranges from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span>, and the default value is <span pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\">`60`</span>. An error will be returned if\nyou configure this parameter for `TCP` and `UDP` listeners.\n","type":"number"},"name":{"description":"Specifies the listener name.\n","type":"string"},"protocol":{"description":"The protocol - can either be `TCP`, `HTTP`, `HTTPS` or `UDP`.\nChanging this creates a new Listener.\n","type":"string"},"protocolPort":{"description":"Specifies the port used by the listener. Changing this creates a new Listener.\n","type":"number"},"securityPolicyId":{"description":"Specifies the ID of the custom security policy.\n","type":"string"},"sniContainerRefs":{"description":"Lists the IDs of SNI certificates (server certificates with domain names) used by the listener.\nEach SNI certificate can have up to 30 domain names, and each domain name in the SNI certificate must be unique.\nThis parameter will be ignored and an empty array will be returned if the listener's protocol is not `HTTPS`.\n","items":{"type":"string"},"type":"array"},"sniMatchAlgo":{"description":"Specifies how wildcard domain name matches with the SNI certificates\nused by the listener.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the loadbalancer listener.\n","type":"object"},"tlsCiphersPolicy":{"description":"Specifies the security policy that will be used by the listener.\nThis parameter is available only for `HTTPS` listeners. An error will be returned if the protocol\nof the listener is not `HTTPS`. Possible values are: `tls-1-0`, `tls-1-1`, `tls-1-0-inherit`, `tls-1-2`,\n`tls-1-2-strict`, `tls-1-2-fs`, `tls-1-0-with-1-3`, `tls-1-2-fs-with-1-3`, `hybrid-policy-1-0`, `tls-1-2-strict-no-cbc`.\n","type":"string"}},"properties":{"adminStateUp":{"type":"boolean"},"advancedForwarding":{"description":"Specifies whether to enable advanced forwarding.\nIf advanced forwarding is enabled, more flexible forwarding policies and rules are supported.\nThe value can be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> (enable advanced forwarding) or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> (disable advanced forwarding),\nand the default value is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Changing this creates a new Listener.\n","type":"boolean"},"clientCaTlsContainerRef":{"description":"Specifies the ID of the CA certificate used by the listener.\n","type":"string"},"clientTimeout":{"description":"Specifies the timeout duration for waiting for a request from a client, in seconds.\nThis parameter is available only for `HTTP` and `HTTPS` listeners. The value ranges from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span>, and\nthe default value is <span pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\">`60`</span>. An error will be returned if you configure this parameter for `TCP` and `UDP` listeners.\n","type":"number"},"createdAt":{"description":"Indicates the creation time.\n","type":"string"},"defaultPoolId":{"description":"Specifies the ID of the default backend server group. If there is no\nmatched forwarding policy, requests are forwarded to the default backend server for processing.\n","type":"string"},"defaultTlsContainerRef":{"description":"Specifies the ID of the server certificate used by the listener.\n","type":"string"},"description":{"description":"Provides supplementary information about the listener.\n","type":"string"},"http2Enable":{"description":"Specifies whether to use HTTP/2. This parameter is available only for `HTTPS`\nlisteners. If you configure this parameter for other types of listeners, it will not take effect. Enable\nHTTP/2 if you want the clients to use HTTP/2 to communicate with the load balancer.\nHowever, connections between the load balancer and backend servers use HTTP/1.x by default.\n","type":"boolean"},"insertHeaders":{"$ref":"#/types/opentelekomcloud:index%2FLbListenerV3InsertHeaders:LbListenerV3InsertHeaders","description":"Specifies the HTTP header fields.\n"},"ipGroup":{"$ref":"#/types/opentelekomcloud:index%2FLbListenerV3IpGroup:LbListenerV3IpGroup","description":"Specifies the IP address group associated with the listener.\n"},"keepAliveTimeout":{"description":"Specifies the idle timeout duration, in seconds.\n* For `TCP` listeners, the value ranges from <span pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\">`10`</span> to <span pulumi-lang-nodejs=\"`4000`\" pulumi-lang-dotnet=\"`4000`\" pulumi-lang-go=\"`4000`\" pulumi-lang-python=\"`4000`\" pulumi-lang-yaml=\"`4000`\" pulumi-lang-java=\"`4000`\">`4000`</span>, and the default value is <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span>.\n* For `HTTP` and `HTTPS` listeners, the value ranges from <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> to <span pulumi-lang-nodejs=\"`4000`\" pulumi-lang-dotnet=\"`4000`\" pulumi-lang-go=\"`4000`\" pulumi-lang-python=\"`4000`\" pulumi-lang-yaml=\"`4000`\" pulumi-lang-java=\"`4000`\">`4000`</span>, and the default value is <span pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\">`60`</span>.\n* For `UDP` listeners, this parameter is not available. An error will be returned if you\nconfigure this parameter for `UDP` listeners.\n","type":"number"},"lbListenerV3Id":{"type":"string"},"loadbalancerId":{"description":"Specifies the ID of the load balancer that the listener is added to.\n","type":"string"},"memberRetryEnable":{"description":"Specifies whether to enable health check retries for backend servers.\nThis parameter is available only for `HTTP` and `HTTPS` listeners. An error will be returned if you configure\nthis parameter for `TCP` and `UDP` listeners.\n","type":"boolean"},"memberTimeout":{"description":"Specifies the timeout duration for waiting for a request from a\nbackend server, in seconds. This parameter is available only for `HTTP` and `HTTPS` listeners.\nThe value ranges from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span>, and the default value is <span pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\">`60`</span>. An error will be returned if\nyou configure this parameter for `TCP` and `UDP` listeners.\n","type":"number"},"name":{"description":"Specifies the listener name.\n","type":"string"},"protocol":{"description":"The protocol - can either be `TCP`, `HTTP`, `HTTPS` or `UDP`.\nChanging this creates a new Listener.\n","type":"string"},"protocolPort":{"description":"Specifies the port used by the listener. Changing this creates a new Listener.\n","type":"number"},"securityPolicyId":{"description":"Specifies the ID of the custom security policy.\n","type":"string"},"sniContainerRefs":{"description":"Lists the IDs of SNI certificates (server certificates with domain names) used by the listener.\nEach SNI certificate can have up to 30 domain names, and each domain name in the SNI certificate must be unique.\nThis parameter will be ignored and an empty array will be returned if the listener's protocol is not `HTTPS`.\n","items":{"type":"string"},"type":"array"},"sniMatchAlgo":{"description":"Specifies how wildcard domain name matches with the SNI certificates\nused by the listener.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the loadbalancer listener.\n","type":"object"},"tlsCiphersPolicy":{"description":"Specifies the security policy that will be used by the listener.\nThis parameter is available only for `HTTPS` listeners. An error will be returned if the protocol\nof the listener is not `HTTPS`. Possible values are: `tls-1-0`, `tls-1-1`, `tls-1-0-inherit`, `tls-1-2`,\n`tls-1-2-strict`, `tls-1-2-fs`, `tls-1-0-with-1-3`, `tls-1-2-fs-with-1-3`, `hybrid-policy-1-0`, `tls-1-2-strict-no-cbc`.\n","type":"string"},"updatedAt":{"description":"Indicates the update time.\n","type":"string"}},"required":["advancedForwarding","clientTimeout","createdAt","defaultPoolId","keepAliveTimeout","lbListenerV3Id","loadbalancerId","memberTimeout","name","protocol","protocolPort","securityPolicyId","sniMatchAlgo","tlsCiphersPolicy","updatedAt"],"requiredInputs":["loadbalancerId","protocol","protocolPort"],"stateInputs":{"description":"Input properties used for looking up and filtering LbListenerV3 resources.\n","properties":{"adminStateUp":{"type":"boolean"},"advancedForwarding":{"description":"Specifies whether to enable advanced forwarding.\nIf advanced forwarding is enabled, more flexible forwarding policies and rules are supported.\nThe value can be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> (enable advanced forwarding) or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> (disable advanced forwarding),\nand the default value is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. Changing this creates a new Listener.\n","type":"boolean"},"clientCaTlsContainerRef":{"description":"Specifies the ID of the CA certificate used by the listener.\n","type":"string"},"clientTimeout":{"description":"Specifies the timeout duration for waiting for a request from a client, in seconds.\nThis parameter is available only for `HTTP` and `HTTPS` listeners. The value ranges from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span>, and\nthe default value is <span pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\">`60`</span>. An error will be returned if you configure this parameter for `TCP` and `UDP` listeners.\n","type":"number"},"createdAt":{"description":"Indicates the creation time.\n","type":"string"},"defaultPoolId":{"description":"Specifies the ID of the default backend server group. If there is no\nmatched forwarding policy, requests are forwarded to the default backend server for processing.\n","type":"string"},"defaultTlsContainerRef":{"description":"Specifies the ID of the server certificate used by the listener.\n","type":"string"},"description":{"description":"Provides supplementary information about the listener.\n","type":"string"},"http2Enable":{"description":"Specifies whether to use HTTP/2. This parameter is available only for `HTTPS`\nlisteners. If you configure this parameter for other types of listeners, it will not take effect. Enable\nHTTP/2 if you want the clients to use HTTP/2 to communicate with the load balancer.\nHowever, connections between the load balancer and backend servers use HTTP/1.x by default.\n","type":"boolean"},"insertHeaders":{"$ref":"#/types/opentelekomcloud:index%2FLbListenerV3InsertHeaders:LbListenerV3InsertHeaders","description":"Specifies the HTTP header fields.\n"},"ipGroup":{"$ref":"#/types/opentelekomcloud:index%2FLbListenerV3IpGroup:LbListenerV3IpGroup","description":"Specifies the IP address group associated with the listener.\n"},"keepAliveTimeout":{"description":"Specifies the idle timeout duration, in seconds.\n* For `TCP` listeners, the value ranges from <span pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\">`10`</span> to <span pulumi-lang-nodejs=\"`4000`\" pulumi-lang-dotnet=\"`4000`\" pulumi-lang-go=\"`4000`\" pulumi-lang-python=\"`4000`\" pulumi-lang-yaml=\"`4000`\" pulumi-lang-java=\"`4000`\">`4000`</span>, and the default value is <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span>.\n* For `HTTP` and `HTTPS` listeners, the value ranges from <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span> to <span pulumi-lang-nodejs=\"`4000`\" pulumi-lang-dotnet=\"`4000`\" pulumi-lang-go=\"`4000`\" pulumi-lang-python=\"`4000`\" pulumi-lang-yaml=\"`4000`\" pulumi-lang-java=\"`4000`\">`4000`</span>, and the default value is <span pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\">`60`</span>.\n* For `UDP` listeners, this parameter is not available. An error will be returned if you\nconfigure this parameter for `UDP` listeners.\n","type":"number"},"lbListenerV3Id":{"type":"string"},"loadbalancerId":{"description":"Specifies the ID of the load balancer that the listener is added to.\n","type":"string"},"memberRetryEnable":{"description":"Specifies whether to enable health check retries for backend servers.\nThis parameter is available only for `HTTP` and `HTTPS` listeners. An error will be returned if you configure\nthis parameter for `TCP` and `UDP` listeners.\n","type":"boolean"},"memberTimeout":{"description":"Specifies the timeout duration for waiting for a request from a\nbackend server, in seconds. This parameter is available only for `HTTP` and `HTTPS` listeners.\nThe value ranges from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\">`300`</span>, and the default value is <span pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\">`60`</span>. An error will be returned if\nyou configure this parameter for `TCP` and `UDP` listeners.\n","type":"number"},"name":{"description":"Specifies the listener name.\n","type":"string"},"protocol":{"description":"The protocol - can either be `TCP`, `HTTP`, `HTTPS` or `UDP`.\nChanging this creates a new Listener.\n","type":"string"},"protocolPort":{"description":"Specifies the port used by the listener. Changing this creates a new Listener.\n","type":"number"},"securityPolicyId":{"description":"Specifies the ID of the custom security policy.\n","type":"string"},"sniContainerRefs":{"description":"Lists the IDs of SNI certificates (server certificates with domain names) used by the listener.\nEach SNI certificate can have up to 30 domain names, and each domain name in the SNI certificate must be unique.\nThis parameter will be ignored and an empty array will be returned if the listener's protocol is not `HTTPS`.\n","items":{"type":"string"},"type":"array"},"sniMatchAlgo":{"description":"Specifies how wildcard domain name matches with the SNI certificates\nused by the listener.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the loadbalancer listener.\n","type":"object"},"tlsCiphersPolicy":{"description":"Specifies the security policy that will be used by the listener.\nThis parameter is available only for `HTTPS` listeners. An error will be returned if the protocol\nof the listener is not `HTTPS`. Possible values are: `tls-1-0`, `tls-1-1`, `tls-1-0-inherit`, `tls-1-2`,\n`tls-1-2-strict`, `tls-1-2-fs`, `tls-1-0-with-1-3`, `tls-1-2-fs-with-1-3`, `hybrid-policy-1-0`, `tls-1-2-strict-no-cbc`.\n","type":"string"},"updatedAt":{"description":"Indicates the update time.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/lbLoadbalancerV2:LbLoadbalancerV2":{"description":"Up-to-date reference of API arguments for ELB load balancer you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-load-balancing/api-ref/apis_v2.0/load_balancer)\n\nManages an Enhanced loadbalancer resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Basic usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst lb1 = new opentelekomcloud.LbLoadbalancerV2(\"lb_1\", {\n    vipSubnetId: \"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n    tags: {\n        muh: \"kuh\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nlb1 = opentelekomcloud.LbLoadbalancerV2(\"lb_1\",\n    vip_subnet_id=\"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n    tags={\n        \"muh\": \"kuh\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var lb1 = new Opentelekomcloud.LbLoadbalancerV2(\"lb_1\", new()\n    {\n        VipSubnetId = \"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n        Tags = \n        {\n            { \"muh\", \"kuh\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewLbLoadbalancerV2(ctx, \"lb_1\", &opentelekomcloud.LbLoadbalancerV2Args{\n\t\t\tVipSubnetId: pulumi.String(\"d9415786-5f1a-428b-b35f-2f1523e146d2\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"muh\": pulumi.String(\"kuh\"),\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.opentelekomcloud.LbLoadbalancerV2;\nimport com.pulumi.opentelekomcloud.LbLoadbalancerV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var lb1 = new LbLoadbalancerV2(\"lb1\", LbLoadbalancerV2Args.builder()\n            .vipSubnetId(\"d9415786-5f1a-428b-b35f-2f1523e146d2\")\n            .tags(Map.of(\"muh\", \"kuh\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  lb1:\n    type: opentelekomcloud:LbLoadbalancerV2\n    name: lb_1\n    properties:\n      vipSubnetId: d9415786-5f1a-428b-b35f-2f1523e146d2\n      tags:\n        muh: kuh\n```\n<!--End PulumiCodeChooser -->\n\n### Public load balancer (with floating IP)\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst lb1 = new opentelekomcloud.LbLoadbalancerV2(\"lb_1\", {\n    name: \"example-loadbalancer\",\n    vipSubnetId: \"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n});\nconst associate = new opentelekomcloud.NetworkingFloatingipAssociateV2(\"associate\", {\n    floatingIp: floatingIpAddress,\n    portId: lb1.vipPortId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nlb1 = opentelekomcloud.LbLoadbalancerV2(\"lb_1\",\n    name=\"example-loadbalancer\",\n    vip_subnet_id=\"d9415786-5f1a-428b-b35f-2f1523e146d2\")\nassociate = opentelekomcloud.NetworkingFloatingipAssociateV2(\"associate\",\n    floating_ip=floating_ip_address,\n    port_id=lb1.vip_port_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var lb1 = new Opentelekomcloud.LbLoadbalancerV2(\"lb_1\", new()\n    {\n        Name = \"example-loadbalancer\",\n        VipSubnetId = \"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n    });\n\n    var associate = new Opentelekomcloud.NetworkingFloatingipAssociateV2(\"associate\", new()\n    {\n        FloatingIp = floatingIpAddress,\n        PortId = lb1.VipPortId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tlb1, err := opentelekomcloud.NewLbLoadbalancerV2(ctx, \"lb_1\", &opentelekomcloud.LbLoadbalancerV2Args{\n\t\t\tName:        pulumi.String(\"example-loadbalancer\"),\n\t\t\tVipSubnetId: pulumi.String(\"d9415786-5f1a-428b-b35f-2f1523e146d2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewNetworkingFloatingipAssociateV2(ctx, \"associate\", &opentelekomcloud.NetworkingFloatingipAssociateV2Args{\n\t\t\tFloatingIp: pulumi.Any(floatingIpAddress),\n\t\t\tPortId:     lb1.VipPortId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.LbLoadbalancerV2;\nimport com.pulumi.opentelekomcloud.LbLoadbalancerV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingFloatingipAssociateV2;\nimport com.pulumi.opentelekomcloud.NetworkingFloatingipAssociateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var lb1 = new LbLoadbalancerV2(\"lb1\", LbLoadbalancerV2Args.builder()\n            .name(\"example-loadbalancer\")\n            .vipSubnetId(\"d9415786-5f1a-428b-b35f-2f1523e146d2\")\n            .build());\n\n        var associate = new NetworkingFloatingipAssociateV2(\"associate\", NetworkingFloatingipAssociateV2Args.builder()\n            .floatingIp(floatingIpAddress)\n            .portId(lb1.vipPortId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  lb1:\n    type: opentelekomcloud:LbLoadbalancerV2\n    name: lb_1\n    properties:\n      name: example-loadbalancer\n      vipSubnetId: d9415786-5f1a-428b-b35f-2f1523e146d2\n  associate:\n    type: opentelekomcloud:NetworkingFloatingipAssociateV2\n    properties:\n      floatingIp: ${floatingIpAddress}\n      portId: ${lb1.vipPortId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nLoad balancers can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/lbLoadbalancerV2:LbLoadbalancerV2 lb_1 ec2e6489-8415-4ec0-9934-540f98b0d594\n```\n\n","inputProperties":{"adminStateUp":{"description":"The administrative state of the loadbalancer.\nA valid value is only true (UP).\n","type":"boolean"},"description":{"description":"Human-readable description for the loadbalancer.\n","type":"string"},"lbLoadbalancerV2Id":{"type":"string"},"loadbalancerProvider":{"description":"The name of the provider. Changing this\ncreates a new loadbalancer.\n","type":"string"},"name":{"description":"Human-readable name for the loadbalancer. Does not have\nto be unique.\n","type":"string"},"region":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the loadbalancer.\n","type":"object"},"tenantId":{"description":"Required for admins. The UUID of the tenant who owns\nthe Loadbalancer.  Only administrative users can specify a tenant UUID\nother than their own. Changing this creates a new loadbalancer.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FLbLoadbalancerV2Timeouts:LbLoadbalancerV2Timeouts"},"vipAddress":{"description":"The ip address of the load balancer.\nChanging this creates a new loadbalancer.\n","type":"string"},"vipSubnetId":{"description":"The network on which to allocate the\nloadbalancer's address. A tenant can only create loadalancers on networks\nauthorized by policy (e.g. networks that belong to them or networks that\nare shared). Changing this creates a new loadbalancer.\n\n> When used with <span pulumi-lang-nodejs=\"`opentelekomcloud.VpcSubnetV1`\" pulumi-lang-dotnet=\"`opentelekomcloud.VpcSubnetV1`\" pulumi-lang-go=\"`VpcSubnetV1`\" pulumi-lang-python=\"`VpcSubnetV1`\" pulumi-lang-yaml=\"`opentelekomcloud.VpcSubnetV1`\" pulumi-lang-java=\"`opentelekomcloud.VpcSubnetV1`\">`opentelekomcloud.VpcSubnetV1`</span>, not <span pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\">`id`</span> but\n<span pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\">`subnet_id`</span>needs to be used\n","type":"string"}},"properties":{"adminStateUp":{"description":"The administrative state of the loadbalancer.\nA valid value is only true (UP).\n","type":"boolean"},"description":{"description":"Human-readable description for the loadbalancer.\n","type":"string"},"lbLoadbalancerV2Id":{"type":"string"},"loadbalancerProvider":{"description":"The name of the provider. Changing this\ncreates a new loadbalancer.\n","type":"string"},"name":{"description":"Human-readable name for the loadbalancer. Does not have\nto be unique.\n","type":"string"},"region":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the loadbalancer.\n","type":"object"},"tenantId":{"description":"Required for admins. The UUID of the tenant who owns\nthe Loadbalancer.  Only administrative users can specify a tenant UUID\nother than their own. Changing this creates a new loadbalancer.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FLbLoadbalancerV2Timeouts:LbLoadbalancerV2Timeouts"},"vipAddress":{"description":"The ip address of the load balancer.\nChanging this creates a new loadbalancer.\n","type":"string"},"vipPortId":{"description":"The Port ID of the Load Balancer IP.\n","type":"string"},"vipSubnetId":{"description":"The network on which to allocate the\nloadbalancer's address. A tenant can only create loadalancers on networks\nauthorized by policy (e.g. networks that belong to them or networks that\nare shared). Changing this creates a new loadbalancer.\n\n> When used with <span pulumi-lang-nodejs=\"`opentelekomcloud.VpcSubnetV1`\" pulumi-lang-dotnet=\"`opentelekomcloud.VpcSubnetV1`\" pulumi-lang-go=\"`VpcSubnetV1`\" pulumi-lang-python=\"`VpcSubnetV1`\" pulumi-lang-yaml=\"`opentelekomcloud.VpcSubnetV1`\" pulumi-lang-java=\"`opentelekomcloud.VpcSubnetV1`\">`opentelekomcloud.VpcSubnetV1`</span>, not <span pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\">`id`</span> but\n<span pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\">`subnet_id`</span>needs to be used\n","type":"string"}},"required":["lbLoadbalancerV2Id","loadbalancerProvider","name","region","tenantId","vipAddress","vipPortId","vipSubnetId"],"requiredInputs":["vipSubnetId"],"stateInputs":{"description":"Input properties used for looking up and filtering LbLoadbalancerV2 resources.\n","properties":{"adminStateUp":{"description":"The administrative state of the loadbalancer.\nA valid value is only true (UP).\n","type":"boolean"},"description":{"description":"Human-readable description for the loadbalancer.\n","type":"string"},"lbLoadbalancerV2Id":{"type":"string"},"loadbalancerProvider":{"description":"The name of the provider. Changing this\ncreates a new loadbalancer.\n","type":"string"},"name":{"description":"Human-readable name for the loadbalancer. Does not have\nto be unique.\n","type":"string"},"region":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the loadbalancer.\n","type":"object"},"tenantId":{"description":"Required for admins. The UUID of the tenant who owns\nthe Loadbalancer.  Only administrative users can specify a tenant UUID\nother than their own. Changing this creates a new loadbalancer.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FLbLoadbalancerV2Timeouts:LbLoadbalancerV2Timeouts"},"vipAddress":{"description":"The ip address of the load balancer.\nChanging this creates a new loadbalancer.\n","type":"string"},"vipPortId":{"description":"The Port ID of the Load Balancer IP.\n","type":"string"},"vipSubnetId":{"description":"The network on which to allocate the\nloadbalancer's address. A tenant can only create loadalancers on networks\nauthorized by policy (e.g. networks that belong to them or networks that\nare shared). Changing this creates a new loadbalancer.\n\n> When used with <span pulumi-lang-nodejs=\"`opentelekomcloud.VpcSubnetV1`\" pulumi-lang-dotnet=\"`opentelekomcloud.VpcSubnetV1`\" pulumi-lang-go=\"`VpcSubnetV1`\" pulumi-lang-python=\"`VpcSubnetV1`\" pulumi-lang-yaml=\"`opentelekomcloud.VpcSubnetV1`\" pulumi-lang-java=\"`opentelekomcloud.VpcSubnetV1`\">`opentelekomcloud.VpcSubnetV1`</span>, not <span pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\">`id`</span> but\n<span pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\">`subnet_id`</span>needs to be used\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/lbLoadbalancerV3:LbLoadbalancerV3":{"description":"Up-to-date reference of API arguments for DLB load balancer you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-load-balancing/api-ref/apis_v3/load_balancer)\n\nManages a Dedicated loadbalancer resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Basic usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst lb1 = new opentelekomcloud.LbLoadbalancerV3(\"lb_1\", {\n    routerId: routerId,\n    networkIds: [networkId],\n    availabilityZones: [az],\n    tags: {\n        muh: \"kuh\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nlb1 = opentelekomcloud.LbLoadbalancerV3(\"lb_1\",\n    router_id=router_id,\n    network_ids=[network_id],\n    availability_zones=[az],\n    tags={\n        \"muh\": \"kuh\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var lb1 = new Opentelekomcloud.LbLoadbalancerV3(\"lb_1\", new()\n    {\n        RouterId = routerId,\n        NetworkIds = new[]\n        {\n            networkId,\n        },\n        AvailabilityZones = new[]\n        {\n            az,\n        },\n        Tags = \n        {\n            { \"muh\", \"kuh\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewLbLoadbalancerV3(ctx, \"lb_1\", &opentelekomcloud.LbLoadbalancerV3Args{\n\t\t\tRouterId: pulumi.Any(routerId),\n\t\t\tNetworkIds: pulumi.StringArray{\n\t\t\t\tnetworkId,\n\t\t\t},\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\taz,\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"muh\": pulumi.String(\"kuh\"),\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.opentelekomcloud.LbLoadbalancerV3;\nimport com.pulumi.opentelekomcloud.LbLoadbalancerV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var lb1 = new LbLoadbalancerV3(\"lb1\", LbLoadbalancerV3Args.builder()\n            .routerId(routerId)\n            .networkIds(networkId)\n            .availabilityZones(az)\n            .tags(Map.of(\"muh\", \"kuh\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  lb1:\n    type: opentelekomcloud:LbLoadbalancerV3\n    name: lb_1\n    properties:\n      routerId: ${routerId}\n      networkIds:\n        - ${networkId}\n      availabilityZones:\n        - ${az}\n      tags:\n        muh: kuh\n```\n<!--End PulumiCodeChooser -->\n\n### Newly created\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst lb1 = new opentelekomcloud.LbLoadbalancerV3(\"lb_1\", {\n    name: \"example-loadbalancer\",\n    subnetId: subnetId,\n    networkIds: [networkId],\n    availabilityZones: [az],\n    publicIp: {\n        bandwidthName: \"lb-bandwidth\",\n        ipType: \"5_bgp\",\n        bandwidthSize: 10,\n        bandwidthShareType: \"PER\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nlb1 = opentelekomcloud.LbLoadbalancerV3(\"lb_1\",\n    name=\"example-loadbalancer\",\n    subnet_id=subnet_id,\n    network_ids=[network_id],\n    availability_zones=[az],\n    public_ip={\n        \"bandwidth_name\": \"lb-bandwidth\",\n        \"ip_type\": \"5_bgp\",\n        \"bandwidth_size\": 10,\n        \"bandwidth_share_type\": \"PER\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var lb1 = new Opentelekomcloud.LbLoadbalancerV3(\"lb_1\", new()\n    {\n        Name = \"example-loadbalancer\",\n        SubnetId = subnetId,\n        NetworkIds = new[]\n        {\n            networkId,\n        },\n        AvailabilityZones = new[]\n        {\n            az,\n        },\n        PublicIp = new Opentelekomcloud.Inputs.LbLoadbalancerV3PublicIpArgs\n        {\n            BandwidthName = \"lb-bandwidth\",\n            IpType = \"5_bgp\",\n            BandwidthSize = 10,\n            BandwidthShareType = \"PER\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewLbLoadbalancerV3(ctx, \"lb_1\", &opentelekomcloud.LbLoadbalancerV3Args{\n\t\t\tName:     pulumi.String(\"example-loadbalancer\"),\n\t\t\tSubnetId: pulumi.Any(subnetId),\n\t\t\tNetworkIds: pulumi.StringArray{\n\t\t\t\tnetworkId,\n\t\t\t},\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\taz,\n\t\t\t},\n\t\t\tPublicIp: &opentelekomcloud.LbLoadbalancerV3PublicIpArgs{\n\t\t\t\tBandwidthName:      pulumi.String(\"lb-bandwidth\"),\n\t\t\t\tIpType:             pulumi.String(\"5_bgp\"),\n\t\t\t\tBandwidthSize:      pulumi.Float64(10),\n\t\t\t\tBandwidthShareType: pulumi.String(\"PER\"),\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.opentelekomcloud.LbLoadbalancerV3;\nimport com.pulumi.opentelekomcloud.LbLoadbalancerV3Args;\nimport com.pulumi.opentelekomcloud.inputs.LbLoadbalancerV3PublicIpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var lb1 = new LbLoadbalancerV3(\"lb1\", LbLoadbalancerV3Args.builder()\n            .name(\"example-loadbalancer\")\n            .subnetId(subnetId)\n            .networkIds(networkId)\n            .availabilityZones(az)\n            .publicIp(LbLoadbalancerV3PublicIpArgs.builder()\n                .bandwidthName(\"lb-bandwidth\")\n                .ipType(\"5_bgp\")\n                .bandwidthSize(10.0)\n                .bandwidthShareType(\"PER\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  lb1:\n    type: opentelekomcloud:LbLoadbalancerV3\n    name: lb_1\n    properties:\n      name: example-loadbalancer\n      subnetId: ${subnetId}\n      networkIds:\n        - ${networkId}\n      availabilityZones:\n        - ${az}\n      publicIp:\n        bandwidthName: lb-bandwidth\n        ipType: 5_bgp\n        bandwidthSize: 10\n        bandwidthShareType: PER\n```\n<!--End PulumiCodeChooser -->\n\n### Already existing<span pulumi-lang-nodejs=\" opentelekomcloud.NetworkingFloatingipV2\n\" pulumi-lang-dotnet=\" opentelekomcloud.NetworkingFloatingipV2\n\" pulumi-lang-go=\" NetworkingFloatingipV2\n\" pulumi-lang-python=\" NetworkingFloatingipV2\n\" pulumi-lang-yaml=\" opentelekomcloud.NetworkingFloatingipV2\n\" pulumi-lang-java=\" opentelekomcloud.NetworkingFloatingipV2\n\"> opentelekomcloud.NetworkingFloatingipV2\n</span>\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst fip1 = new opentelekomcloud.NetworkingFloatingipV2(\"fip_1\", {});\nconst loadbalancer1 = new opentelekomcloud.LbLoadbalancerV3(\"loadbalancer_1\", {\n    name: \"loadbalancer_1\",\n    routerId: sharedSubnet.vpcId,\n    networkIds: [sharedSubnet.networkId],\n    availabilityZones: [\"eu-de-01\"],\n    publicIp: {\n        id: fip1.networkingFloatingipV2Id,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nfip1 = opentelekomcloud.NetworkingFloatingipV2(\"fip_1\")\nloadbalancer1 = opentelekomcloud.LbLoadbalancerV3(\"loadbalancer_1\",\n    name=\"loadbalancer_1\",\n    router_id=shared_subnet[\"vpcId\"],\n    network_ids=[shared_subnet[\"networkId\"]],\n    availability_zones=[\"eu-de-01\"],\n    public_ip={\n        \"id\": fip1.networking_floatingip_v2_id,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var fip1 = new Opentelekomcloud.NetworkingFloatingipV2(\"fip_1\");\n\n    var loadbalancer1 = new Opentelekomcloud.LbLoadbalancerV3(\"loadbalancer_1\", new()\n    {\n        Name = \"loadbalancer_1\",\n        RouterId = sharedSubnet.VpcId,\n        NetworkIds = new[]\n        {\n            sharedSubnet.NetworkId,\n        },\n        AvailabilityZones = new[]\n        {\n            \"eu-de-01\",\n        },\n        PublicIp = new Opentelekomcloud.Inputs.LbLoadbalancerV3PublicIpArgs\n        {\n            Id = fip1.NetworkingFloatingipV2Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfip1, err := opentelekomcloud.NewNetworkingFloatingipV2(ctx, \"fip_1\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewLbLoadbalancerV3(ctx, \"loadbalancer_1\", &opentelekomcloud.LbLoadbalancerV3Args{\n\t\t\tName:     pulumi.String(\"loadbalancer_1\"),\n\t\t\tRouterId: pulumi.Any(sharedSubnet.VpcId),\n\t\t\tNetworkIds: pulumi.StringArray{\n\t\t\t\tsharedSubnet.NetworkId,\n\t\t\t},\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"eu-de-01\"),\n\t\t\t},\n\t\t\tPublicIp: &opentelekomcloud.LbLoadbalancerV3PublicIpArgs{\n\t\t\t\tId: fip1.NetworkingFloatingipV2Id,\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.opentelekomcloud.NetworkingFloatingipV2;\nimport com.pulumi.opentelekomcloud.LbLoadbalancerV3;\nimport com.pulumi.opentelekomcloud.LbLoadbalancerV3Args;\nimport com.pulumi.opentelekomcloud.inputs.LbLoadbalancerV3PublicIpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var fip1 = new NetworkingFloatingipV2(\"fip1\");\n\n        var loadbalancer1 = new LbLoadbalancerV3(\"loadbalancer1\", LbLoadbalancerV3Args.builder()\n            .name(\"loadbalancer_1\")\n            .routerId(sharedSubnet.vpcId())\n            .networkIds(sharedSubnet.networkId())\n            .availabilityZones(\"eu-de-01\")\n            .publicIp(LbLoadbalancerV3PublicIpArgs.builder()\n                .id(fip1.networkingFloatingipV2Id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  loadbalancer1:\n    type: opentelekomcloud:LbLoadbalancerV3\n    name: loadbalancer_1\n    properties:\n      name: loadbalancer_1\n      routerId: ${sharedSubnet.vpcId}\n      networkIds:\n        - ${sharedSubnet.networkId}\n      availabilityZones:\n        - eu-de-01\n      publicIp:\n        id: ${fip1.networkingFloatingipV2Id}\n  fip1:\n    type: opentelekomcloud:NetworkingFloatingipV2\n    name: fip_1\n```\n<!--End PulumiCodeChooser -->\n\n### Or<span pulumi-lang-nodejs=\" opentelekomcloud.VpcEipV1\n\" pulumi-lang-dotnet=\" opentelekomcloud.VpcEipV1\n\" pulumi-lang-go=\" VpcEipV1\n\" pulumi-lang-python=\" VpcEipV1\n\" pulumi-lang-yaml=\" opentelekomcloud.VpcEipV1\n\" pulumi-lang-java=\" opentelekomcloud.VpcEipV1\n\"> opentelekomcloud.VpcEipV1\n</span>\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst fip1 = new opentelekomcloud.VpcEipV1(\"fip_1\", {\n    bandwidth: {\n        chargeMode: \"traffic\",\n        name: \"eip\",\n        shareType: \"PER\",\n        size: 100,\n    },\n    publicip: {\n        type: \"5_bgp\",\n    },\n});\nconst loadbalancer1 = new opentelekomcloud.LbLoadbalancerV3(\"loadbalancer_1\", {\n    name: \"loadbalancer_1\",\n    routerId: _this.vpcId,\n    networkIds: [_this.networkId],\n    availabilityZones: [\"eu-de-01\"],\n    publicIp: {\n        id: fip1.vpcEipV1Id,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nfip1 = opentelekomcloud.VpcEipV1(\"fip_1\",\n    bandwidth={\n        \"charge_mode\": \"traffic\",\n        \"name\": \"eip\",\n        \"share_type\": \"PER\",\n        \"size\": 100,\n    },\n    publicip={\n        \"type\": \"5_bgp\",\n    })\nloadbalancer1 = opentelekomcloud.LbLoadbalancerV3(\"loadbalancer_1\",\n    name=\"loadbalancer_1\",\n    router_id=this[\"vpcId\"],\n    network_ids=[this[\"networkId\"]],\n    availability_zones=[\"eu-de-01\"],\n    public_ip={\n        \"id\": fip1.vpc_eip_v1_id,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var fip1 = new Opentelekomcloud.VpcEipV1(\"fip_1\", new()\n    {\n        Bandwidth = new Opentelekomcloud.Inputs.VpcEipV1BandwidthArgs\n        {\n            ChargeMode = \"traffic\",\n            Name = \"eip\",\n            ShareType = \"PER\",\n            Size = 100,\n        },\n        Publicip = new Opentelekomcloud.Inputs.VpcEipV1PublicipArgs\n        {\n            Type = \"5_bgp\",\n        },\n    });\n\n    var loadbalancer1 = new Opentelekomcloud.LbLoadbalancerV3(\"loadbalancer_1\", new()\n    {\n        Name = \"loadbalancer_1\",\n        RouterId = @this.VpcId,\n        NetworkIds = new[]\n        {\n            @this.NetworkId,\n        },\n        AvailabilityZones = new[]\n        {\n            \"eu-de-01\",\n        },\n        PublicIp = new Opentelekomcloud.Inputs.LbLoadbalancerV3PublicIpArgs\n        {\n            Id = fip1.VpcEipV1Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfip1, err := opentelekomcloud.NewVpcEipV1(ctx, \"fip_1\", &opentelekomcloud.VpcEipV1Args{\n\t\t\tBandwidth: &opentelekomcloud.VpcEipV1BandwidthArgs{\n\t\t\t\tChargeMode: pulumi.String(\"traffic\"),\n\t\t\t\tName:       pulumi.String(\"eip\"),\n\t\t\t\tShareType:  pulumi.String(\"PER\"),\n\t\t\t\tSize:       pulumi.Float64(100),\n\t\t\t},\n\t\t\tPublicip: &opentelekomcloud.VpcEipV1PublicipArgs{\n\t\t\t\tType: pulumi.String(\"5_bgp\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewLbLoadbalancerV3(ctx, \"loadbalancer_1\", &opentelekomcloud.LbLoadbalancerV3Args{\n\t\t\tName:     pulumi.String(\"loadbalancer_1\"),\n\t\t\tRouterId: pulumi.Any(this.VpcId),\n\t\t\tNetworkIds: pulumi.StringArray{\n\t\t\t\tthis.NetworkId,\n\t\t\t},\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"eu-de-01\"),\n\t\t\t},\n\t\t\tPublicIp: &opentelekomcloud.LbLoadbalancerV3PublicIpArgs{\n\t\t\t\tId: fip1.VpcEipV1Id,\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.opentelekomcloud.VpcEipV1;\nimport com.pulumi.opentelekomcloud.VpcEipV1Args;\nimport com.pulumi.opentelekomcloud.inputs.VpcEipV1BandwidthArgs;\nimport com.pulumi.opentelekomcloud.inputs.VpcEipV1PublicipArgs;\nimport com.pulumi.opentelekomcloud.LbLoadbalancerV3;\nimport com.pulumi.opentelekomcloud.LbLoadbalancerV3Args;\nimport com.pulumi.opentelekomcloud.inputs.LbLoadbalancerV3PublicIpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var fip1 = new VpcEipV1(\"fip1\", VpcEipV1Args.builder()\n            .bandwidth(VpcEipV1BandwidthArgs.builder()\n                .chargeMode(\"traffic\")\n                .name(\"eip\")\n                .shareType(\"PER\")\n                .size(100.0)\n                .build())\n            .publicip(VpcEipV1PublicipArgs.builder()\n                .type(\"5_bgp\")\n                .build())\n            .build());\n\n        var loadbalancer1 = new LbLoadbalancerV3(\"loadbalancer1\", LbLoadbalancerV3Args.builder()\n            .name(\"loadbalancer_1\")\n            .routerId(this_.vpcId())\n            .networkIds(this_.networkId())\n            .availabilityZones(\"eu-de-01\")\n            .publicIp(LbLoadbalancerV3PublicIpArgs.builder()\n                .id(fip1.vpcEipV1Id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  loadbalancer1:\n    type: opentelekomcloud:LbLoadbalancerV3\n    name: loadbalancer_1\n    properties:\n      name: loadbalancer_1\n      routerId: ${this.vpcId}\n      networkIds:\n        - ${this.networkId}\n      availabilityZones:\n        - eu-de-01\n      publicIp:\n        id: ${fip1.vpcEipV1Id}\n  fip1:\n    type: opentelekomcloud:VpcEipV1\n    name: fip_1\n    properties:\n      bandwidth:\n        chargeMode: traffic\n        name: eip\n        shareType: PER\n        size: 100\n      publicip:\n        type: 5_bgp\n```\n<!--End PulumiCodeChooser -->\n\n### Assign new bandwidth to EIP without recreating\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst loadbalancer1 = new opentelekomcloud.LbLoadbalancerV3(\"loadbalancer_1\", {\n    name: \"loadbalancer_1\",\n    routerId: sharedSubnet.vpcId,\n    networkIds: [sharedSubnet.networkId],\n    availabilityZones: [\"eu-de-01\"],\n    publicIp: {\n        ipType: \"5_bgp\",\n        bandwidthName: \"lb_band\",\n        bandwidthSize: 10,\n        bandwidthShareType: \"PER\",\n    },\n    tags: {\n        muh: \"value-create\",\n        kuh: \"value-create\",\n    },\n});\nconst bw = new opentelekomcloud.VpcBandwidthV2(\"bw\", {\n    name: \"lb_band\",\n    size: 20,\n});\nconst associate = new opentelekomcloud.VpcBandwidthAssociateV2(\"associate\", {\n    bandwidth: bw.vpcBandwidthV2Id,\n    floatingIps: [loadbalancer1.publicIp.apply(publicIp => publicIp?.id)],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nloadbalancer1 = opentelekomcloud.LbLoadbalancerV3(\"loadbalancer_1\",\n    name=\"loadbalancer_1\",\n    router_id=shared_subnet[\"vpcId\"],\n    network_ids=[shared_subnet[\"networkId\"]],\n    availability_zones=[\"eu-de-01\"],\n    public_ip={\n        \"ip_type\": \"5_bgp\",\n        \"bandwidth_name\": \"lb_band\",\n        \"bandwidth_size\": 10,\n        \"bandwidth_share_type\": \"PER\",\n    },\n    tags={\n        \"muh\": \"value-create\",\n        \"kuh\": \"value-create\",\n    })\nbw = opentelekomcloud.VpcBandwidthV2(\"bw\",\n    name=\"lb_band\",\n    size=20)\nassociate = opentelekomcloud.VpcBandwidthAssociateV2(\"associate\",\n    bandwidth=bw.vpc_bandwidth_v2_id,\n    floating_ips=[loadbalancer1.public_ip.id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var loadbalancer1 = new Opentelekomcloud.LbLoadbalancerV3(\"loadbalancer_1\", new()\n    {\n        Name = \"loadbalancer_1\",\n        RouterId = sharedSubnet.VpcId,\n        NetworkIds = new[]\n        {\n            sharedSubnet.NetworkId,\n        },\n        AvailabilityZones = new[]\n        {\n            \"eu-de-01\",\n        },\n        PublicIp = new Opentelekomcloud.Inputs.LbLoadbalancerV3PublicIpArgs\n        {\n            IpType = \"5_bgp\",\n            BandwidthName = \"lb_band\",\n            BandwidthSize = 10,\n            BandwidthShareType = \"PER\",\n        },\n        Tags = \n        {\n            { \"muh\", \"value-create\" },\n            { \"kuh\", \"value-create\" },\n        },\n    });\n\n    var bw = new Opentelekomcloud.VpcBandwidthV2(\"bw\", new()\n    {\n        Name = \"lb_band\",\n        Size = 20,\n    });\n\n    var associate = new Opentelekomcloud.VpcBandwidthAssociateV2(\"associate\", new()\n    {\n        Bandwidth = bw.VpcBandwidthV2Id,\n        FloatingIps = new[]\n        {\n            loadbalancer1.PublicIp.Apply(publicIp => publicIp?.Id),\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tloadbalancer1, err := opentelekomcloud.NewLbLoadbalancerV3(ctx, \"loadbalancer_1\", &opentelekomcloud.LbLoadbalancerV3Args{\n\t\t\tName:     pulumi.String(\"loadbalancer_1\"),\n\t\t\tRouterId: pulumi.Any(sharedSubnet.VpcId),\n\t\t\tNetworkIds: pulumi.StringArray{\n\t\t\t\tsharedSubnet.NetworkId,\n\t\t\t},\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"eu-de-01\"),\n\t\t\t},\n\t\t\tPublicIp: &opentelekomcloud.LbLoadbalancerV3PublicIpArgs{\n\t\t\t\tIpType:             pulumi.String(\"5_bgp\"),\n\t\t\t\tBandwidthName:      pulumi.String(\"lb_band\"),\n\t\t\t\tBandwidthSize:      pulumi.Float64(10),\n\t\t\t\tBandwidthShareType: pulumi.String(\"PER\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"muh\": pulumi.String(\"value-create\"),\n\t\t\t\t\"kuh\": pulumi.String(\"value-create\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbw, err := opentelekomcloud.NewVpcBandwidthV2(ctx, \"bw\", &opentelekomcloud.VpcBandwidthV2Args{\n\t\t\tName: pulumi.String(\"lb_band\"),\n\t\t\tSize: pulumi.Float64(20),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewVpcBandwidthAssociateV2(ctx, \"associate\", &opentelekomcloud.VpcBandwidthAssociateV2Args{\n\t\t\tBandwidth: bw.VpcBandwidthV2Id,\n\t\t\tFloatingIps: pulumi.StringArray{\n\t\t\t\tpulumi.String(loadbalancer1.PublicIp.ApplyT(func(publicIp opentelekomcloud.LbLoadbalancerV3PublicIp) (*string, error) {\n\t\t\t\t\treturn &publicIp.Id, nil\n\t\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.LbLoadbalancerV3;\nimport com.pulumi.opentelekomcloud.LbLoadbalancerV3Args;\nimport com.pulumi.opentelekomcloud.inputs.LbLoadbalancerV3PublicIpArgs;\nimport com.pulumi.opentelekomcloud.VpcBandwidthV2;\nimport com.pulumi.opentelekomcloud.VpcBandwidthV2Args;\nimport com.pulumi.opentelekomcloud.VpcBandwidthAssociateV2;\nimport com.pulumi.opentelekomcloud.VpcBandwidthAssociateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var loadbalancer1 = new LbLoadbalancerV3(\"loadbalancer1\", LbLoadbalancerV3Args.builder()\n            .name(\"loadbalancer_1\")\n            .routerId(sharedSubnet.vpcId())\n            .networkIds(sharedSubnet.networkId())\n            .availabilityZones(\"eu-de-01\")\n            .publicIp(LbLoadbalancerV3PublicIpArgs.builder()\n                .ipType(\"5_bgp\")\n                .bandwidthName(\"lb_band\")\n                .bandwidthSize(10.0)\n                .bandwidthShareType(\"PER\")\n                .build())\n            .tags(Map.ofEntries(\n                Map.entry(\"muh\", \"value-create\"),\n                Map.entry(\"kuh\", \"value-create\")\n            ))\n            .build());\n\n        var bw = new VpcBandwidthV2(\"bw\", VpcBandwidthV2Args.builder()\n            .name(\"lb_band\")\n            .size(20.0)\n            .build());\n\n        var associate = new VpcBandwidthAssociateV2(\"associate\", VpcBandwidthAssociateV2Args.builder()\n            .bandwidth(bw.vpcBandwidthV2Id())\n            .floatingIps(loadbalancer1.publicIp().applyValue(_publicIp -> _publicIp.id()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  loadbalancer1:\n    type: opentelekomcloud:LbLoadbalancerV3\n    name: loadbalancer_1\n    properties:\n      name: loadbalancer_1\n      routerId: ${sharedSubnet.vpcId}\n      networkIds:\n        - ${sharedSubnet.networkId}\n      availabilityZones:\n        - eu-de-01\n      publicIp:\n        ipType: 5_bgp\n        bandwidthName: lb_band\n        bandwidthSize: 10\n        bandwidthShareType: PER\n      tags:\n        muh: value-create\n        kuh: value-create\n  bw:\n    type: opentelekomcloud:VpcBandwidthV2\n    properties:\n      name: lb_band\n      size: 20\n  associate:\n    type: opentelekomcloud:VpcBandwidthAssociateV2\n    properties:\n      bandwidth: ${bw.vpcBandwidthV2Id}\n      floatingIps:\n        - ${loadbalancer1.publicIp.id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nLoadbalancers can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/lbLoadbalancerV3:LbLoadbalancerV3 lb_1 7b80e108-1636-44e5-aece-986b0052b7dd\n```\n\n","inputProperties":{"adminStateUp":{"description":"The administrative state of the LoadBalancer. A valid value is only <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> (UP).\n","type":"boolean"},"availabilityZones":{"description":"Specifies the availability zones where the LoadBalancer will be located.\nChanging this creates a new LoadBalancer.\n","items":{"type":"string"},"type":"array"},"deletionProtection":{"type":"boolean"},"description":{"description":"Provides supplementary information about the load balancer.\n","type":"string"},"ipTargetEnable":{"description":"The value can be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> (enabled) or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> (disabled).\n\n> If both <span pulumi-lang-nodejs=\"`l4Flavor`\" pulumi-lang-dotnet=\"`L4Flavor`\" pulumi-lang-go=\"`l4Flavor`\" pulumi-lang-python=\"`l4_flavor`\" pulumi-lang-yaml=\"`l4Flavor`\" pulumi-lang-java=\"`l4Flavor`\">`l4_flavor`</span> and <span pulumi-lang-nodejs=\"`l7Flavor`\" pulumi-lang-dotnet=\"`L7Flavor`\" pulumi-lang-go=\"`l7Flavor`\" pulumi-lang-python=\"`l7_flavor`\" pulumi-lang-yaml=\"`l7Flavor`\" pulumi-lang-java=\"`l7Flavor`\">`l7_flavor`</span> is empty, both ALB and NLB will be attached to the load balancer with the default flavor. It is advisable to specify one of them, unless your intention is to associate both flavors with the default setting.\n","type":"boolean"},"l4Flavor":{"description":"The ID of the Layer-4 flavor.\n","type":"string"},"l7Flavor":{"description":"The ID of the Layer-7 flavor.\n","type":"string"},"lbLoadbalancerV3Id":{"type":"string"},"name":{"description":"The LoadBalancer name.\n","type":"string"},"networkIds":{"description":"Specifies the subnet Network ID.\n","items":{"type":"string"},"type":"array"},"publicIp":{"$ref":"#/types/opentelekomcloud:index%2FLbLoadbalancerV3PublicIp:LbLoadbalancerV3PublicIp","description":"The elastic IP address of the instance. The <span pulumi-lang-nodejs=\"`publicIp`\" pulumi-lang-dotnet=\"`PublicIp`\" pulumi-lang-go=\"`publicIp`\" pulumi-lang-python=\"`public_ip`\" pulumi-lang-yaml=\"`publicIp`\" pulumi-lang-java=\"`publicIp`\">`public_ip`</span> structure\nis described below. Changing this creates a new LoadBalancer.\n\n> Specify <span pulumi-lang-nodejs=\"`publicIp`\" pulumi-lang-dotnet=\"`PublicIp`\" pulumi-lang-go=\"`publicIp`\" pulumi-lang-python=\"`public_ip`\" pulumi-lang-yaml=\"`publicIp`\" pulumi-lang-java=\"`publicIp`\">`public_ip`</span> and either <span pulumi-lang-nodejs=\"`routerId`\" pulumi-lang-dotnet=\"`RouterId`\" pulumi-lang-go=\"`routerId`\" pulumi-lang-python=\"`router_id`\" pulumi-lang-yaml=\"`routerId`\" pulumi-lang-java=\"`routerId`\">`router_id`</span> or <span pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\">`subnet_id`</span> if you want to bind a new IPv4 EIP to the load balancer.\n"},"routerId":{"description":"ID of the router (or VPC) this LoadBalancer belongs to. Changing\nthis creates a new LoadBalancer.\n","type":"string"},"subnetId":{"description":"The ID of the subnet to which the LoadBalancer belongs. Required when using <span pulumi-lang-nodejs=\"`vipAddress`\" pulumi-lang-dotnet=\"`VipAddress`\" pulumi-lang-go=\"`vipAddress`\" pulumi-lang-python=\"`vip_address`\" pulumi-lang-yaml=\"`vipAddress`\" pulumi-lang-java=\"`vipAddress`\">`vip_address`</span>.\n\n> <span pulumi-lang-nodejs=\"`routerId`\" pulumi-lang-dotnet=\"`RouterId`\" pulumi-lang-go=\"`routerId`\" pulumi-lang-python=\"`router_id`\" pulumi-lang-yaml=\"`routerId`\" pulumi-lang-java=\"`routerId`\">`router_id`</span> and <span pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\">`subnet_id`</span> cannot be left blank at the same time.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"vipAddress":{"description":"The ip address of the LoadBalancer. Changing this creates a new LoadBalancer.\n\n> Specify both <span pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\">`subnet_id`</span> and <span pulumi-lang-nodejs=\"`vipAddress`\" pulumi-lang-dotnet=\"`VipAddress`\" pulumi-lang-go=\"`vipAddress`\" pulumi-lang-python=\"`vip_address`\" pulumi-lang-yaml=\"`vipAddress`\" pulumi-lang-java=\"`vipAddress`\">`vip_address`</span> if you want to bind a private IPv4 address to the load balancer.\n","type":"string"}},"properties":{"adminStateUp":{"description":"The administrative state of the LoadBalancer. A valid value is only <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> (UP).\n","type":"boolean"},"availabilityZones":{"description":"Specifies the availability zones where the LoadBalancer will be located.\nChanging this creates a new LoadBalancer.\n","items":{"type":"string"},"type":"array"},"createdAt":{"description":"The time the LoadBalancer was created.\n","type":"string"},"deletionProtection":{"type":"boolean"},"description":{"description":"Provides supplementary information about the load balancer.\n","type":"string"},"ipTargetEnable":{"description":"The value can be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> (enabled) or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> (disabled).\n\n> If both <span pulumi-lang-nodejs=\"`l4Flavor`\" pulumi-lang-dotnet=\"`L4Flavor`\" pulumi-lang-go=\"`l4Flavor`\" pulumi-lang-python=\"`l4_flavor`\" pulumi-lang-yaml=\"`l4Flavor`\" pulumi-lang-java=\"`l4Flavor`\">`l4_flavor`</span> and <span pulumi-lang-nodejs=\"`l7Flavor`\" pulumi-lang-dotnet=\"`L7Flavor`\" pulumi-lang-go=\"`l7Flavor`\" pulumi-lang-python=\"`l7_flavor`\" pulumi-lang-yaml=\"`l7Flavor`\" pulumi-lang-java=\"`l7Flavor`\">`l7_flavor`</span> is empty, both ALB and NLB will be attached to the load balancer with the default flavor. It is advisable to specify one of them, unless your intention is to associate both flavors with the default setting.\n","type":"boolean"},"l4Flavor":{"description":"The ID of the Layer-4 flavor.\n","type":"string"},"l7Flavor":{"description":"The ID of the Layer-7 flavor.\n","type":"string"},"lbLoadbalancerV3Id":{"type":"string"},"name":{"description":"The LoadBalancer name.\n","type":"string"},"networkIds":{"description":"Specifies the subnet Network ID.\n","items":{"type":"string"},"type":"array"},"publicIp":{"$ref":"#/types/opentelekomcloud:index%2FLbLoadbalancerV3PublicIp:LbLoadbalancerV3PublicIp","description":"The elastic IP address of the instance. The <span pulumi-lang-nodejs=\"`publicIp`\" pulumi-lang-dotnet=\"`PublicIp`\" pulumi-lang-go=\"`publicIp`\" pulumi-lang-python=\"`public_ip`\" pulumi-lang-yaml=\"`publicIp`\" pulumi-lang-java=\"`publicIp`\">`public_ip`</span> structure\nis described below. Changing this creates a new LoadBalancer.\n\n> Specify <span pulumi-lang-nodejs=\"`publicIp`\" pulumi-lang-dotnet=\"`PublicIp`\" pulumi-lang-go=\"`publicIp`\" pulumi-lang-python=\"`public_ip`\" pulumi-lang-yaml=\"`publicIp`\" pulumi-lang-java=\"`publicIp`\">`public_ip`</span> and either <span pulumi-lang-nodejs=\"`routerId`\" pulumi-lang-dotnet=\"`RouterId`\" pulumi-lang-go=\"`routerId`\" pulumi-lang-python=\"`router_id`\" pulumi-lang-yaml=\"`routerId`\" pulumi-lang-java=\"`routerId`\">`router_id`</span> or <span pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\">`subnet_id`</span> if you want to bind a new IPv4 EIP to the load balancer.\n"},"routerId":{"description":"ID of the router (or VPC) this LoadBalancer belongs to. Changing\nthis creates a new LoadBalancer.\n","type":"string"},"subnetId":{"description":"The ID of the subnet to which the LoadBalancer belongs. Required when using <span pulumi-lang-nodejs=\"`vipAddress`\" pulumi-lang-dotnet=\"`VipAddress`\" pulumi-lang-go=\"`vipAddress`\" pulumi-lang-python=\"`vip_address`\" pulumi-lang-yaml=\"`vipAddress`\" pulumi-lang-java=\"`vipAddress`\">`vip_address`</span>.\n\n> <span pulumi-lang-nodejs=\"`routerId`\" pulumi-lang-dotnet=\"`RouterId`\" pulumi-lang-go=\"`routerId`\" pulumi-lang-python=\"`router_id`\" pulumi-lang-yaml=\"`routerId`\" pulumi-lang-java=\"`routerId`\">`router_id`</span> and <span pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\">`subnet_id`</span> cannot be left blank at the same time.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"updatedAt":{"description":"The time the LoadBalancer was last updated.\n","type":"string"},"vipAddress":{"description":"The ip address of the LoadBalancer. Changing this creates a new LoadBalancer.\n\n> Specify both <span pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\">`subnet_id`</span> and <span pulumi-lang-nodejs=\"`vipAddress`\" pulumi-lang-dotnet=\"`VipAddress`\" pulumi-lang-go=\"`vipAddress`\" pulumi-lang-python=\"`vip_address`\" pulumi-lang-yaml=\"`vipAddress`\" pulumi-lang-java=\"`vipAddress`\">`vip_address`</span> if you want to bind a private IPv4 address to the load balancer.\n","type":"string"},"vipPortId":{"description":"The Port ID of the Load Balancer IP.\n","type":"string"}},"required":["availabilityZones","createdAt","deletionProtection","ipTargetEnable","l4Flavor","l7Flavor","lbLoadbalancerV3Id","name","networkIds","updatedAt","vipAddress","vipPortId"],"requiredInputs":["availabilityZones","networkIds"],"stateInputs":{"description":"Input properties used for looking up and filtering LbLoadbalancerV3 resources.\n","properties":{"adminStateUp":{"description":"The administrative state of the LoadBalancer. A valid value is only <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> (UP).\n","type":"boolean"},"availabilityZones":{"description":"Specifies the availability zones where the LoadBalancer will be located.\nChanging this creates a new LoadBalancer.\n","items":{"type":"string"},"type":"array"},"createdAt":{"description":"The time the LoadBalancer was created.\n","type":"string"},"deletionProtection":{"type":"boolean"},"description":{"description":"Provides supplementary information about the load balancer.\n","type":"string"},"ipTargetEnable":{"description":"The value can be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> (enabled) or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> (disabled).\n\n> If both <span pulumi-lang-nodejs=\"`l4Flavor`\" pulumi-lang-dotnet=\"`L4Flavor`\" pulumi-lang-go=\"`l4Flavor`\" pulumi-lang-python=\"`l4_flavor`\" pulumi-lang-yaml=\"`l4Flavor`\" pulumi-lang-java=\"`l4Flavor`\">`l4_flavor`</span> and <span pulumi-lang-nodejs=\"`l7Flavor`\" pulumi-lang-dotnet=\"`L7Flavor`\" pulumi-lang-go=\"`l7Flavor`\" pulumi-lang-python=\"`l7_flavor`\" pulumi-lang-yaml=\"`l7Flavor`\" pulumi-lang-java=\"`l7Flavor`\">`l7_flavor`</span> is empty, both ALB and NLB will be attached to the load balancer with the default flavor. It is advisable to specify one of them, unless your intention is to associate both flavors with the default setting.\n","type":"boolean"},"l4Flavor":{"description":"The ID of the Layer-4 flavor.\n","type":"string"},"l7Flavor":{"description":"The ID of the Layer-7 flavor.\n","type":"string"},"lbLoadbalancerV3Id":{"type":"string"},"name":{"description":"The LoadBalancer name.\n","type":"string"},"networkIds":{"description":"Specifies the subnet Network ID.\n","items":{"type":"string"},"type":"array"},"publicIp":{"$ref":"#/types/opentelekomcloud:index%2FLbLoadbalancerV3PublicIp:LbLoadbalancerV3PublicIp","description":"The elastic IP address of the instance. The <span pulumi-lang-nodejs=\"`publicIp`\" pulumi-lang-dotnet=\"`PublicIp`\" pulumi-lang-go=\"`publicIp`\" pulumi-lang-python=\"`public_ip`\" pulumi-lang-yaml=\"`publicIp`\" pulumi-lang-java=\"`publicIp`\">`public_ip`</span> structure\nis described below. Changing this creates a new LoadBalancer.\n\n> Specify <span pulumi-lang-nodejs=\"`publicIp`\" pulumi-lang-dotnet=\"`PublicIp`\" pulumi-lang-go=\"`publicIp`\" pulumi-lang-python=\"`public_ip`\" pulumi-lang-yaml=\"`publicIp`\" pulumi-lang-java=\"`publicIp`\">`public_ip`</span> and either <span pulumi-lang-nodejs=\"`routerId`\" pulumi-lang-dotnet=\"`RouterId`\" pulumi-lang-go=\"`routerId`\" pulumi-lang-python=\"`router_id`\" pulumi-lang-yaml=\"`routerId`\" pulumi-lang-java=\"`routerId`\">`router_id`</span> or <span pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\">`subnet_id`</span> if you want to bind a new IPv4 EIP to the load balancer.\n"},"routerId":{"description":"ID of the router (or VPC) this LoadBalancer belongs to. Changing\nthis creates a new LoadBalancer.\n","type":"string"},"subnetId":{"description":"The ID of the subnet to which the LoadBalancer belongs. Required when using <span pulumi-lang-nodejs=\"`vipAddress`\" pulumi-lang-dotnet=\"`VipAddress`\" pulumi-lang-go=\"`vipAddress`\" pulumi-lang-python=\"`vip_address`\" pulumi-lang-yaml=\"`vipAddress`\" pulumi-lang-java=\"`vipAddress`\">`vip_address`</span>.\n\n> <span pulumi-lang-nodejs=\"`routerId`\" pulumi-lang-dotnet=\"`RouterId`\" pulumi-lang-go=\"`routerId`\" pulumi-lang-python=\"`router_id`\" pulumi-lang-yaml=\"`routerId`\" pulumi-lang-java=\"`routerId`\">`router_id`</span> and <span pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\">`subnet_id`</span> cannot be left blank at the same time.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"updatedAt":{"description":"The time the LoadBalancer was last updated.\n","type":"string"},"vipAddress":{"description":"The ip address of the LoadBalancer. Changing this creates a new LoadBalancer.\n\n> Specify both <span pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\">`subnet_id`</span> and <span pulumi-lang-nodejs=\"`vipAddress`\" pulumi-lang-dotnet=\"`VipAddress`\" pulumi-lang-go=\"`vipAddress`\" pulumi-lang-python=\"`vip_address`\" pulumi-lang-yaml=\"`vipAddress`\" pulumi-lang-java=\"`vipAddress`\">`vip_address`</span> if you want to bind a private IPv4 address to the load balancer.\n","type":"string"},"vipPortId":{"description":"The Port ID of the Load Balancer IP.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/lbLtsLogV3:LbLtsLogV3":{"description":"Manage a LB Access Log resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst loadbalancerId = config.requireObject<any>(\"loadbalancerId\");\nconst groupId = config.requireObject<any>(\"groupId\");\nconst streamId = config.requireObject<any>(\"streamId\");\nconst test = new opentelekomcloud.LbLtsLogV3(\"test\", {\n    loadbalancerId: loadbalancerId,\n    logGroupId: groupId,\n    logStreamId: streamId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nloadbalancer_id = config.require_object(\"loadbalancerId\")\ngroup_id = config.require_object(\"groupId\")\nstream_id = config.require_object(\"streamId\")\ntest = opentelekomcloud.LbLtsLogV3(\"test\",\n    loadbalancer_id=loadbalancer_id,\n    log_group_id=group_id,\n    log_stream_id=stream_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var loadbalancerId = config.RequireObject<dynamic>(\"loadbalancerId\");\n    var groupId = config.RequireObject<dynamic>(\"groupId\");\n    var streamId = config.RequireObject<dynamic>(\"streamId\");\n    var test = new Opentelekomcloud.LbLtsLogV3(\"test\", new()\n    {\n        LoadbalancerId = loadbalancerId,\n        LogGroupId = groupId,\n        LogStreamId = streamId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tloadbalancerId := cfg.RequireObject(\"loadbalancerId\")\n\t\tgroupId := cfg.RequireObject(\"groupId\")\n\t\tstreamId := cfg.RequireObject(\"streamId\")\n\t\t_, err := opentelekomcloud.NewLbLtsLogV3(ctx, \"test\", &opentelekomcloud.LbLtsLogV3Args{\n\t\t\tLoadbalancerId: pulumi.Any(loadbalancerId),\n\t\t\tLogGroupId:     pulumi.Any(groupId),\n\t\t\tLogStreamId:    pulumi.Any(streamId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.LbLtsLogV3;\nimport com.pulumi.opentelekomcloud.LbLtsLogV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var loadbalancerId = config.get(\"loadbalancerId\");\n        final var groupId = config.get(\"groupId\");\n        final var streamId = config.get(\"streamId\");\n        var test = new LbLtsLogV3(\"test\", LbLtsLogV3Args.builder()\n            .loadbalancerId(loadbalancerId)\n            .logGroupId(groupId)\n            .logStreamId(streamId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  loadbalancerId:\n    type: dynamic\n  groupId:\n    type: dynamic\n  streamId:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:LbLtsLogV3\n    properties:\n      loadbalancerId: ${loadbalancerId}\n      logGroupId: ${groupId}\n      logStreamId: ${streamId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nELB Access Log resource can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/lbLtsLogV3:LbLtsLogV3 log 7b80e108-1636-44e5-aece-986b0052b7dd\n```\n\n","inputProperties":{"lbLtsLogV3Id":{"description":"The log ID.\n","type":"string"},"loadbalancerId":{"description":"Specifies the ID of a load balancer.\n\nChanging this creates a new resource.\n","type":"string"},"logGroupId":{"description":"Specifies the ID of a log group.\n","type":"string"},"logStreamId":{"description":"Specifies the ID of the subscribe stream.\n","type":"string"}},"properties":{"lbLtsLogV3Id":{"description":"The log ID.\n","type":"string"},"loadbalancerId":{"description":"Specifies the ID of a load balancer.\n\nChanging this creates a new resource.\n","type":"string"},"logGroupId":{"description":"Specifies the ID of a log group.\n","type":"string"},"logStreamId":{"description":"Specifies the ID of the subscribe stream.\n","type":"string"},"region":{"description":"The region where resource created.\n","type":"string"}},"required":["lbLtsLogV3Id","loadbalancerId","logGroupId","logStreamId","region"],"requiredInputs":["loadbalancerId","logGroupId","logStreamId"],"stateInputs":{"description":"Input properties used for looking up and filtering LbLtsLogV3 resources.\n","properties":{"lbLtsLogV3Id":{"description":"The log ID.\n","type":"string"},"loadbalancerId":{"description":"Specifies the ID of a load balancer.\n\nChanging this creates a new resource.\n","type":"string"},"logGroupId":{"description":"Specifies the ID of a log group.\n","type":"string"},"logStreamId":{"description":"Specifies the ID of the subscribe stream.\n","type":"string"},"region":{"description":"The region where resource created.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/lbMemberV2:LbMemberV2":{"description":"Up-to-date reference of API arguments for ELB member you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-load-balancing/api-ref/apis_v2.0/backend_server)\n\nManages an Enhanced Load Balancer member resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst poolId = config.requireObject<any>(\"poolId\");\nconst subnetId = config.requireObject<any>(\"subnetId\");\nconst member1 = new opentelekomcloud.LbMemberV2(\"member1\", {\n    address: \"192.168.199.23\",\n    protocolPort: 8080,\n    poolId: poolId,\n    subnetId: subnetId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\npool_id = config.require_object(\"poolId\")\nsubnet_id = config.require_object(\"subnetId\")\nmember1 = opentelekomcloud.LbMemberV2(\"member1\",\n    address=\"192.168.199.23\",\n    protocol_port=8080,\n    pool_id=pool_id,\n    subnet_id=subnet_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var poolId = config.RequireObject<dynamic>(\"poolId\");\n    var subnetId = config.RequireObject<dynamic>(\"subnetId\");\n    var member1 = new Opentelekomcloud.LbMemberV2(\"member1\", new()\n    {\n        Address = \"192.168.199.23\",\n        ProtocolPort = 8080,\n        PoolId = poolId,\n        SubnetId = subnetId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tpoolId := cfg.RequireObject(\"poolId\")\n\t\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\t_, err := opentelekomcloud.NewLbMemberV2(ctx, \"member1\", &opentelekomcloud.LbMemberV2Args{\n\t\t\tAddress:      pulumi.String(\"192.168.199.23\"),\n\t\t\tProtocolPort: pulumi.Float64(8080),\n\t\t\tPoolId:       pulumi.Any(poolId),\n\t\t\tSubnetId:     pulumi.Any(subnetId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.LbMemberV2;\nimport com.pulumi.opentelekomcloud.LbMemberV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var poolId = config.get(\"poolId\");\n        final var subnetId = config.get(\"subnetId\");\n        var member1 = new LbMemberV2(\"member1\", LbMemberV2Args.builder()\n            .address(\"192.168.199.23\")\n            .protocolPort(8080.0)\n            .poolId(poolId)\n            .subnetId(subnetId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  poolId:\n    type: dynamic\n  subnetId:\n    type: dynamic\nresources:\n  member1:\n    type: opentelekomcloud:LbMemberV2\n    properties:\n      address: 192.168.199.23\n      protocolPort: 8080\n      poolId: ${poolId}\n      subnetId: ${subnetId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nMembers can be imported using the `pool_id/member_id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/lbMemberV2:LbMemberV2 member 7b80e108-1636-44e5-aece-986b0052b7dd/1bb93b8b-37a4-4b50-92cc-daa4c89d4e4c\n```\n\n","inputProperties":{"address":{"description":"The IP address of the member to receive traffic from\nthe load balancer. Changing this creates a new member.\n","type":"string"},"adminStateUp":{"description":"The administrative state of the member.\nA valid value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> (UP) or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> (DOWN).\n","type":"boolean"},"lbMemberV2Id":{"description":"The unique ID for the member.\n","type":"string"},"name":{"description":"Human-readable name for the member.\n","type":"string"},"poolId":{"description":"The id of the pool that this member will be\nassigned to.\n","type":"string"},"protocolPort":{"description":"The port on which to listen for client traffic.\nChanging this creates a new member.\n","type":"number"},"region":{"type":"string"},"subnetId":{"description":"The subnet in which to access the member\n","type":"string"},"tenantId":{"description":"Required for admins. The UUID of the tenant who owns\nthe member.  Only administrative users can specify a tenant UUID\nother than their own. Changing this creates a new member.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FLbMemberV2Timeouts:LbMemberV2Timeouts"},"weight":{"description":"A positive integer value that indicates the relative\nportion of traffic that this member should receive from the pool. For\nexample, a member with a <span pulumi-lang-nodejs=\"`weight`\" pulumi-lang-dotnet=\"`Weight`\" pulumi-lang-go=\"`weight`\" pulumi-lang-python=\"`weight`\" pulumi-lang-yaml=\"`weight`\" pulumi-lang-java=\"`weight`\">`weight`</span> of <span pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\">`10`</span> receives five times as much traffic\nas a member with a <span pulumi-lang-nodejs=\"`weight`\" pulumi-lang-dotnet=\"`Weight`\" pulumi-lang-go=\"`weight`\" pulumi-lang-python=\"`weight`\" pulumi-lang-yaml=\"`weight`\" pulumi-lang-java=\"`weight`\">`weight`</span> of <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span>. If the value is <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>, the backend server will not accept new requests\n","type":"number"}},"properties":{"address":{"description":"The IP address of the member to receive traffic from\nthe load balancer. Changing this creates a new member.\n","type":"string"},"adminStateUp":{"description":"The administrative state of the member.\nA valid value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> (UP) or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> (DOWN).\n","type":"boolean"},"lbMemberV2Id":{"description":"The unique ID for the member.\n","type":"string"},"name":{"description":"Human-readable name for the member.\n","type":"string"},"poolId":{"description":"The id of the pool that this member will be\nassigned to.\n","type":"string"},"protocolPort":{"description":"The port on which to listen for client traffic.\nChanging this creates a new member.\n","type":"number"},"region":{"type":"string"},"subnetId":{"description":"The subnet in which to access the member\n","type":"string"},"tenantId":{"description":"Required for admins. The UUID of the tenant who owns\nthe member.  Only administrative users can specify a tenant UUID\nother than their own. Changing this creates a new member.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FLbMemberV2Timeouts:LbMemberV2Timeouts"},"weight":{"description":"A positive integer value that indicates the relative\nportion of traffic that this member should receive from the pool. For\nexample, a member with a <span pulumi-lang-nodejs=\"`weight`\" pulumi-lang-dotnet=\"`Weight`\" pulumi-lang-go=\"`weight`\" pulumi-lang-python=\"`weight`\" pulumi-lang-yaml=\"`weight`\" pulumi-lang-java=\"`weight`\">`weight`</span> of <span pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\">`10`</span> receives five times as much traffic\nas a member with a <span pulumi-lang-nodejs=\"`weight`\" pulumi-lang-dotnet=\"`Weight`\" pulumi-lang-go=\"`weight`\" pulumi-lang-python=\"`weight`\" pulumi-lang-yaml=\"`weight`\" pulumi-lang-java=\"`weight`\">`weight`</span> of <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span>. If the value is <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>, the backend server will not accept new requests\n","type":"number"}},"required":["address","lbMemberV2Id","name","poolId","protocolPort","region","subnetId","tenantId"],"requiredInputs":["address","poolId","protocolPort","subnetId"],"stateInputs":{"description":"Input properties used for looking up and filtering LbMemberV2 resources.\n","properties":{"address":{"description":"The IP address of the member to receive traffic from\nthe load balancer. Changing this creates a new member.\n","type":"string"},"adminStateUp":{"description":"The administrative state of the member.\nA valid value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> (UP) or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> (DOWN).\n","type":"boolean"},"lbMemberV2Id":{"description":"The unique ID for the member.\n","type":"string"},"name":{"description":"Human-readable name for the member.\n","type":"string"},"poolId":{"description":"The id of the pool that this member will be\nassigned to.\n","type":"string"},"protocolPort":{"description":"The port on which to listen for client traffic.\nChanging this creates a new member.\n","type":"number"},"region":{"type":"string"},"subnetId":{"description":"The subnet in which to access the member\n","type":"string"},"tenantId":{"description":"Required for admins. The UUID of the tenant who owns\nthe member.  Only administrative users can specify a tenant UUID\nother than their own. Changing this creates a new member.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FLbMemberV2Timeouts:LbMemberV2Timeouts"},"weight":{"description":"A positive integer value that indicates the relative\nportion of traffic that this member should receive from the pool. For\nexample, a member with a <span pulumi-lang-nodejs=\"`weight`\" pulumi-lang-dotnet=\"`Weight`\" pulumi-lang-go=\"`weight`\" pulumi-lang-python=\"`weight`\" pulumi-lang-yaml=\"`weight`\" pulumi-lang-java=\"`weight`\">`weight`</span> of <span pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\">`10`</span> receives five times as much traffic\nas a member with a <span pulumi-lang-nodejs=\"`weight`\" pulumi-lang-dotnet=\"`Weight`\" pulumi-lang-go=\"`weight`\" pulumi-lang-python=\"`weight`\" pulumi-lang-yaml=\"`weight`\" pulumi-lang-java=\"`weight`\">`weight`</span> of <span pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\">`2`</span>. If the value is <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>, the backend server will not accept new requests\n","type":"number"}},"type":"object"},"type":"object"},"opentelekomcloud:index/lbMemberV3:LbMemberV3":{"description":"Up-to-date reference of API arguments for DLB member you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-load-balancing/api-ref/apis_v3/backend_server)\n\nManages a Dedicated Load Balancer member resource within OpenTelekomCloud.\n\n## Import\n\nMembers can be imported using the `pool_id/member_id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/lbMemberV3:LbMemberV3 member 7b80e108-1636-44e5-aece-986b0052b7dd/1bb93b8b-37a4-4b50-92cc-daa4c89d4e4c\n```\n\n","inputProperties":{"address":{"description":"Specifies the IP address of the backend server.\n\nThe IP address must be in the subnet specified by <span pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\">`subnet_id`</span>, for example, `192.168.3.11`.\n\nThe IP address can only be the IP address of the primary NIC.\n\nIf <span pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\">`subnet_id`</span> is left blank, cross-VPC backend is enabled. In this case, these servers must use IPv4 addresses.\n","type":"string"},"lbMemberV3Id":{"type":"string"},"name":{"description":"Specifies the backend server name. The value is a string of 0 to 255 characters.\n","type":"string"},"poolId":{"type":"string"},"projectId":{"description":"Specifies the project ID.\n","type":"string"},"protocolPort":{"description":"Specifies the port used by the backend server to receive requests. The value should be a\nvalid port.\n","type":"number"},"subnetId":{"description":"Specifies the ID of the subnet where the backend server works.\n\nThis subnet must be in the same VPC as the subnet of the load balancer with which the backend server is associated.\n\nOnly `IPv4` subnets are supported.\n","type":"string"},"weight":{"description":"Specifies the weight of the backend server.\n\nRequests are routed to backend servers in the same backend server group based on their weights.\n\nIf the weight is <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>, the backend server will not accept new requests.\n\nThis parameter is invalid when <span pulumi-lang-nodejs=\"`lbAlgorithm`\" pulumi-lang-dotnet=\"`LbAlgorithm`\" pulumi-lang-go=\"`lbAlgorithm`\" pulumi-lang-python=\"`lb_algorithm`\" pulumi-lang-yaml=\"`lbAlgorithm`\" pulumi-lang-java=\"`lbAlgorithm`\">`lb_algorithm`</span> is set to `SOURCE_IP` for the backend server group that contains the\nbackend server.\n","type":"number"}},"properties":{"address":{"description":"Specifies the IP address of the backend server.\n\nThe IP address must be in the subnet specified by <span pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\">`subnet_id`</span>, for example, `192.168.3.11`.\n\nThe IP address can only be the IP address of the primary NIC.\n\nIf <span pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\">`subnet_id`</span> is left blank, cross-VPC backend is enabled. In this case, these servers must use IPv4 addresses.\n","type":"string"},"ipVersion":{"description":"Version of IP based on the <span pulumi-lang-nodejs=\"`address`\" pulumi-lang-dotnet=\"`Address`\" pulumi-lang-go=\"`address`\" pulumi-lang-python=\"`address`\" pulumi-lang-yaml=\"`address`\" pulumi-lang-java=\"`address`\">`address`</span> parameter. The value can be <span pulumi-lang-nodejs=\"`v4`\" pulumi-lang-dotnet=\"`V4`\" pulumi-lang-go=\"`v4`\" pulumi-lang-python=\"`v4`\" pulumi-lang-yaml=\"`v4`\" pulumi-lang-java=\"`v4`\">`v4`</span> or <span pulumi-lang-nodejs=\"`v6`\" pulumi-lang-dotnet=\"`V6`\" pulumi-lang-go=\"`v6`\" pulumi-lang-python=\"`v6`\" pulumi-lang-yaml=\"`v6`\" pulumi-lang-java=\"`v6`\">`v6`</span>.\n","type":"string"},"lbMemberV3Id":{"type":"string"},"memberId":{"description":"ID of the pool member.\n","type":"string"},"name":{"description":"Specifies the backend server name. The value is a string of 0 to 255 characters.\n","type":"string"},"operatingStatus":{"description":"Specifies the operating status of the backend server.\n","type":"string"},"poolId":{"type":"string"},"projectId":{"description":"Specifies the project ID.\n","type":"string"},"protocolPort":{"description":"Specifies the port used by the backend server to receive requests. The value should be a\nvalid port.\n","type":"number"},"subnetId":{"description":"Specifies the ID of the subnet where the backend server works.\n\nThis subnet must be in the same VPC as the subnet of the load balancer with which the backend server is associated.\n\nOnly `IPv4` subnets are supported.\n","type":"string"},"weight":{"description":"Specifies the weight of the backend server.\n\nRequests are routed to backend servers in the same backend server group based on their weights.\n\nIf the weight is <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>, the backend server will not accept new requests.\n\nThis parameter is invalid when <span pulumi-lang-nodejs=\"`lbAlgorithm`\" pulumi-lang-dotnet=\"`LbAlgorithm`\" pulumi-lang-go=\"`lbAlgorithm`\" pulumi-lang-python=\"`lb_algorithm`\" pulumi-lang-yaml=\"`lbAlgorithm`\" pulumi-lang-java=\"`lbAlgorithm`\">`lb_algorithm`</span> is set to `SOURCE_IP` for the backend server group that contains the\nbackend server.\n","type":"number"}},"required":["address","ipVersion","lbMemberV3Id","memberId","name","operatingStatus","poolId","projectId","protocolPort","weight"],"requiredInputs":["address","poolId","protocolPort"],"stateInputs":{"description":"Input properties used for looking up and filtering LbMemberV3 resources.\n","properties":{"address":{"description":"Specifies the IP address of the backend server.\n\nThe IP address must be in the subnet specified by <span pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\">`subnet_id`</span>, for example, `192.168.3.11`.\n\nThe IP address can only be the IP address of the primary NIC.\n\nIf <span pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\">`subnet_id`</span> is left blank, cross-VPC backend is enabled. In this case, these servers must use IPv4 addresses.\n","type":"string"},"ipVersion":{"description":"Version of IP based on the <span pulumi-lang-nodejs=\"`address`\" pulumi-lang-dotnet=\"`Address`\" pulumi-lang-go=\"`address`\" pulumi-lang-python=\"`address`\" pulumi-lang-yaml=\"`address`\" pulumi-lang-java=\"`address`\">`address`</span> parameter. The value can be <span pulumi-lang-nodejs=\"`v4`\" pulumi-lang-dotnet=\"`V4`\" pulumi-lang-go=\"`v4`\" pulumi-lang-python=\"`v4`\" pulumi-lang-yaml=\"`v4`\" pulumi-lang-java=\"`v4`\">`v4`</span> or <span pulumi-lang-nodejs=\"`v6`\" pulumi-lang-dotnet=\"`V6`\" pulumi-lang-go=\"`v6`\" pulumi-lang-python=\"`v6`\" pulumi-lang-yaml=\"`v6`\" pulumi-lang-java=\"`v6`\">`v6`</span>.\n","type":"string"},"lbMemberV3Id":{"type":"string"},"memberId":{"description":"ID of the pool member.\n","type":"string"},"name":{"description":"Specifies the backend server name. The value is a string of 0 to 255 characters.\n","type":"string"},"operatingStatus":{"description":"Specifies the operating status of the backend server.\n","type":"string"},"poolId":{"type":"string"},"projectId":{"description":"Specifies the project ID.\n","type":"string"},"protocolPort":{"description":"Specifies the port used by the backend server to receive requests. The value should be a\nvalid port.\n","type":"number"},"subnetId":{"description":"Specifies the ID of the subnet where the backend server works.\n\nThis subnet must be in the same VPC as the subnet of the load balancer with which the backend server is associated.\n\nOnly `IPv4` subnets are supported.\n","type":"string"},"weight":{"description":"Specifies the weight of the backend server.\n\nRequests are routed to backend servers in the same backend server group based on their weights.\n\nIf the weight is <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>, the backend server will not accept new requests.\n\nThis parameter is invalid when <span pulumi-lang-nodejs=\"`lbAlgorithm`\" pulumi-lang-dotnet=\"`LbAlgorithm`\" pulumi-lang-go=\"`lbAlgorithm`\" pulumi-lang-python=\"`lb_algorithm`\" pulumi-lang-yaml=\"`lbAlgorithm`\" pulumi-lang-java=\"`lbAlgorithm`\">`lb_algorithm`</span> is set to `SOURCE_IP` for the backend server group that contains the\nbackend server.\n","type":"number"}},"type":"object"},"type":"object"},"opentelekomcloud:index/lbMonitorV2:LbMonitorV2":{"description":"Up-to-date reference of API arguments for ELB monitor you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-load-balancing/api-ref/apis_v2.0/health_check)\n\nManages an Enhanced LB monitor resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst monitor1 = new opentelekomcloud.LbMonitorV2(\"monitor_1\", {\n    poolId: pool1.id,\n    type: \"HTTP\",\n    delay: 20,\n    timeout: 10,\n    maxRetries: 5,\n    urlPath: \"/\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nmonitor1 = opentelekomcloud.LbMonitorV2(\"monitor_1\",\n    pool_id=pool1[\"id\"],\n    type=\"HTTP\",\n    delay=20,\n    timeout=10,\n    max_retries=5,\n    url_path=\"/\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var monitor1 = new Opentelekomcloud.LbMonitorV2(\"monitor_1\", new()\n    {\n        PoolId = pool1.Id,\n        Type = \"HTTP\",\n        Delay = 20,\n        Timeout = 10,\n        MaxRetries = 5,\n        UrlPath = \"/\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewLbMonitorV2(ctx, \"monitor_1\", &opentelekomcloud.LbMonitorV2Args{\n\t\t\tPoolId:     pulumi.Any(pool1.Id),\n\t\t\tType:       pulumi.String(\"HTTP\"),\n\t\t\tDelay:      pulumi.Float64(20),\n\t\t\tTimeout:    pulumi.Float64(10),\n\t\t\tMaxRetries: pulumi.Float64(5),\n\t\t\tUrlPath:    pulumi.String(\"/\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.LbMonitorV2;\nimport com.pulumi.opentelekomcloud.LbMonitorV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var monitor1 = new LbMonitorV2(\"monitor1\", LbMonitorV2Args.builder()\n            .poolId(pool1.id())\n            .type(\"HTTP\")\n            .delay(20.0)\n            .timeout(10.0)\n            .maxRetries(5.0)\n            .urlPath(\"/\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  monitor1:\n    type: opentelekomcloud:LbMonitorV2\n    name: monitor_1\n    properties:\n      poolId: ${pool1.id}\n      type: HTTP\n      delay: 20\n      timeout: 10\n      maxRetries: 5\n      urlPath: /\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"adminStateUp":{"description":"The administrative state of the monitor.\nA valid value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> (`UP`) or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> (`DOWN`).\n","type":"boolean"},"delay":{"description":"The time, in seconds, between sending probes to members.\n","type":"number"},"domainName":{"description":"The <span pulumi-lang-nodejs=\"`domainName`\" pulumi-lang-dotnet=\"`DomainName`\" pulumi-lang-go=\"`domainName`\" pulumi-lang-python=\"`domain_name`\" pulumi-lang-yaml=\"`domainName`\" pulumi-lang-java=\"`domainName`\">`domain_name`</span> of the HTTP request during the health check.\n","type":"string"},"expectedCodes":{"description":"Required for `HTTP` types. Expected HTTP codes\nfor a passing HTTP monitor. You can either specify a single status like\n`\"200\"`, or a list like `\"200,202\"`.\n","type":"string"},"httpMethod":{"description":"Required for HTTP types. The HTTP method used\nfor requests by the monitor. If this attribute is not specified, it\ndefaults to `GET`. The value can be `GET`, `HEAD`, `POST`, `PUT`, `DELETE`,\n`TRACE`, `OPTIONS`, `CONNECT`, and `PATCH`.\n\n> These parameters <span pulumi-lang-nodejs=\"`domainName`\" pulumi-lang-dotnet=\"`DomainName`\" pulumi-lang-go=\"`domainName`\" pulumi-lang-python=\"`domain_name`\" pulumi-lang-yaml=\"`domainName`\" pulumi-lang-java=\"`domainName`\">`domain_name`</span>, <span pulumi-lang-nodejs=\"`urlPath`\" pulumi-lang-dotnet=\"`UrlPath`\" pulumi-lang-go=\"`urlPath`\" pulumi-lang-python=\"`url_path`\" pulumi-lang-yaml=\"`urlPath`\" pulumi-lang-java=\"`urlPath`\">`url_path`</span>, <span pulumi-lang-nodejs=\"`expectedCodes`\" pulumi-lang-dotnet=\"`ExpectedCodes`\" pulumi-lang-go=\"`expectedCodes`\" pulumi-lang-python=\"`expected_codes`\" pulumi-lang-yaml=\"`expectedCodes`\" pulumi-lang-java=\"`expectedCodes`\">`expected_codes`</span> and <span pulumi-lang-nodejs=\"`monitorPort`\" pulumi-lang-dotnet=\"`MonitorPort`\" pulumi-lang-go=\"`monitorPort`\" pulumi-lang-python=\"`monitor_port`\" pulumi-lang-yaml=\"`monitorPort`\" pulumi-lang-java=\"`monitorPort`\">`monitor_port`</span>\nare valid when the value of <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is set to `HTTP`.\n","type":"string"},"lbMonitorV2Id":{"description":"The unique ID for the monitor.\n","type":"string"},"maxRetries":{"description":"Number of permissible ping failures before\nchanging the member's status to INACTIVE. Must be a number between 1 and 10.\n","type":"number"},"monitorPort":{"description":"Specifies the health check port. The port number\nranges from 1 to 65535. The value is left blank by default, indicating that\nthe port of the backend server is used as the health check port.\n","type":"number"},"name":{"description":"The Name of the Monitor.\n","type":"string"},"poolId":{"description":"The id of the pool that this monitor will be assigned to.\n","type":"string"},"region":{"type":"string"},"tenantId":{"description":"Required for admins. The UUID of the tenant who owns\nthe monitor. Only administrative users can specify a tenant UUID\nother than their own. Changing this creates a new monitor.\n","type":"string"},"timeout":{"description":"Maximum number of seconds for a monitor to wait for a\nping reply before it times out. The value must be less than the delay value.\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FLbMonitorV2Timeouts:LbMonitorV2Timeouts"},"type":{"description":"The type of probe, which is `TCP`, `UDP_CONNECT`, or `HTTP`,\nthat is sent by the load balancer to verify the member state. Changing this\ncreates a new monitor.\n","type":"string"},"urlPath":{"description":"Required for HTTP types. URI path that will be\naccessed if monitor type is `HTTP`.\n","type":"string"}},"properties":{"adminStateUp":{"description":"The administrative state of the monitor.\nA valid value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> (`UP`) or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> (`DOWN`).\n","type":"boolean"},"delay":{"description":"The time, in seconds, between sending probes to members.\n","type":"number"},"domainName":{"description":"The <span pulumi-lang-nodejs=\"`domainName`\" pulumi-lang-dotnet=\"`DomainName`\" pulumi-lang-go=\"`domainName`\" pulumi-lang-python=\"`domain_name`\" pulumi-lang-yaml=\"`domainName`\" pulumi-lang-java=\"`domainName`\">`domain_name`</span> of the HTTP request during the health check.\n","type":"string"},"expectedCodes":{"description":"Required for `HTTP` types. Expected HTTP codes\nfor a passing HTTP monitor. You can either specify a single status like\n`\"200\"`, or a list like `\"200,202\"`.\n","type":"string"},"httpMethod":{"description":"Required for HTTP types. The HTTP method used\nfor requests by the monitor. If this attribute is not specified, it\ndefaults to `GET`. The value can be `GET`, `HEAD`, `POST`, `PUT`, `DELETE`,\n`TRACE`, `OPTIONS`, `CONNECT`, and `PATCH`.\n\n> These parameters <span pulumi-lang-nodejs=\"`domainName`\" pulumi-lang-dotnet=\"`DomainName`\" pulumi-lang-go=\"`domainName`\" pulumi-lang-python=\"`domain_name`\" pulumi-lang-yaml=\"`domainName`\" pulumi-lang-java=\"`domainName`\">`domain_name`</span>, <span pulumi-lang-nodejs=\"`urlPath`\" pulumi-lang-dotnet=\"`UrlPath`\" pulumi-lang-go=\"`urlPath`\" pulumi-lang-python=\"`url_path`\" pulumi-lang-yaml=\"`urlPath`\" pulumi-lang-java=\"`urlPath`\">`url_path`</span>, <span pulumi-lang-nodejs=\"`expectedCodes`\" pulumi-lang-dotnet=\"`ExpectedCodes`\" pulumi-lang-go=\"`expectedCodes`\" pulumi-lang-python=\"`expected_codes`\" pulumi-lang-yaml=\"`expectedCodes`\" pulumi-lang-java=\"`expectedCodes`\">`expected_codes`</span> and <span pulumi-lang-nodejs=\"`monitorPort`\" pulumi-lang-dotnet=\"`MonitorPort`\" pulumi-lang-go=\"`monitorPort`\" pulumi-lang-python=\"`monitor_port`\" pulumi-lang-yaml=\"`monitorPort`\" pulumi-lang-java=\"`monitorPort`\">`monitor_port`</span>\nare valid when the value of <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is set to `HTTP`.\n","type":"string"},"lbMonitorV2Id":{"description":"The unique ID for the monitor.\n","type":"string"},"maxRetries":{"description":"Number of permissible ping failures before\nchanging the member's status to INACTIVE. Must be a number between 1 and 10.\n","type":"number"},"monitorPort":{"description":"Specifies the health check port. The port number\nranges from 1 to 65535. The value is left blank by default, indicating that\nthe port of the backend server is used as the health check port.\n","type":"number"},"name":{"description":"The Name of the Monitor.\n","type":"string"},"poolId":{"description":"The id of the pool that this monitor will be assigned to.\n","type":"string"},"region":{"type":"string"},"tenantId":{"description":"Required for admins. The UUID of the tenant who owns\nthe monitor. Only administrative users can specify a tenant UUID\nother than their own. Changing this creates a new monitor.\n","type":"string"},"timeout":{"description":"Maximum number of seconds for a monitor to wait for a\nping reply before it times out. The value must be less than the delay value.\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FLbMonitorV2Timeouts:LbMonitorV2Timeouts"},"type":{"description":"The type of probe, which is `TCP`, `UDP_CONNECT`, or `HTTP`,\nthat is sent by the load balancer to verify the member state. Changing this\ncreates a new monitor.\n","type":"string"},"urlPath":{"description":"Required for HTTP types. URI path that will be\naccessed if monitor type is `HTTP`.\n","type":"string"}},"required":["delay","expectedCodes","httpMethod","lbMonitorV2Id","maxRetries","monitorPort","name","poolId","region","tenantId","timeout","type","urlPath"],"requiredInputs":["delay","maxRetries","poolId","timeout","type"],"stateInputs":{"description":"Input properties used for looking up and filtering LbMonitorV2 resources.\n","properties":{"adminStateUp":{"description":"The administrative state of the monitor.\nA valid value is <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> (`UP`) or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> (`DOWN`).\n","type":"boolean"},"delay":{"description":"The time, in seconds, between sending probes to members.\n","type":"number"},"domainName":{"description":"The <span pulumi-lang-nodejs=\"`domainName`\" pulumi-lang-dotnet=\"`DomainName`\" pulumi-lang-go=\"`domainName`\" pulumi-lang-python=\"`domain_name`\" pulumi-lang-yaml=\"`domainName`\" pulumi-lang-java=\"`domainName`\">`domain_name`</span> of the HTTP request during the health check.\n","type":"string"},"expectedCodes":{"description":"Required for `HTTP` types. Expected HTTP codes\nfor a passing HTTP monitor. You can either specify a single status like\n`\"200\"`, or a list like `\"200,202\"`.\n","type":"string"},"httpMethod":{"description":"Required for HTTP types. The HTTP method used\nfor requests by the monitor. If this attribute is not specified, it\ndefaults to `GET`. The value can be `GET`, `HEAD`, `POST`, `PUT`, `DELETE`,\n`TRACE`, `OPTIONS`, `CONNECT`, and `PATCH`.\n\n> These parameters <span pulumi-lang-nodejs=\"`domainName`\" pulumi-lang-dotnet=\"`DomainName`\" pulumi-lang-go=\"`domainName`\" pulumi-lang-python=\"`domain_name`\" pulumi-lang-yaml=\"`domainName`\" pulumi-lang-java=\"`domainName`\">`domain_name`</span>, <span pulumi-lang-nodejs=\"`urlPath`\" pulumi-lang-dotnet=\"`UrlPath`\" pulumi-lang-go=\"`urlPath`\" pulumi-lang-python=\"`url_path`\" pulumi-lang-yaml=\"`urlPath`\" pulumi-lang-java=\"`urlPath`\">`url_path`</span>, <span pulumi-lang-nodejs=\"`expectedCodes`\" pulumi-lang-dotnet=\"`ExpectedCodes`\" pulumi-lang-go=\"`expectedCodes`\" pulumi-lang-python=\"`expected_codes`\" pulumi-lang-yaml=\"`expectedCodes`\" pulumi-lang-java=\"`expectedCodes`\">`expected_codes`</span> and <span pulumi-lang-nodejs=\"`monitorPort`\" pulumi-lang-dotnet=\"`MonitorPort`\" pulumi-lang-go=\"`monitorPort`\" pulumi-lang-python=\"`monitor_port`\" pulumi-lang-yaml=\"`monitorPort`\" pulumi-lang-java=\"`monitorPort`\">`monitor_port`</span>\nare valid when the value of <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is set to `HTTP`.\n","type":"string"},"lbMonitorV2Id":{"description":"The unique ID for the monitor.\n","type":"string"},"maxRetries":{"description":"Number of permissible ping failures before\nchanging the member's status to INACTIVE. Must be a number between 1 and 10.\n","type":"number"},"monitorPort":{"description":"Specifies the health check port. The port number\nranges from 1 to 65535. The value is left blank by default, indicating that\nthe port of the backend server is used as the health check port.\n","type":"number"},"name":{"description":"The Name of the Monitor.\n","type":"string"},"poolId":{"description":"The id of the pool that this monitor will be assigned to.\n","type":"string"},"region":{"type":"string"},"tenantId":{"description":"Required for admins. The UUID of the tenant who owns\nthe monitor. Only administrative users can specify a tenant UUID\nother than their own. Changing this creates a new monitor.\n","type":"string"},"timeout":{"description":"Maximum number of seconds for a monitor to wait for a\nping reply before it times out. The value must be less than the delay value.\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FLbMonitorV2Timeouts:LbMonitorV2Timeouts"},"type":{"description":"The type of probe, which is `TCP`, `UDP_CONNECT`, or `HTTP`,\nthat is sent by the load balancer to verify the member state. Changing this\ncreates a new monitor.\n","type":"string"},"urlPath":{"description":"Required for HTTP types. URI path that will be\naccessed if monitor type is `HTTP`.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/lbMonitorV3:LbMonitorV3":{"description":"Up-to-date reference of API arguments for DLB monitor you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-load-balancing/api-ref/apis_v3/health_check)\n\nManages a Dedicated LB monitor (health check) resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst lb = new opentelekomcloud.LbLoadbalancerV3(\"lb\", {\n    name: \"loadbalancer_1\",\n    routerId: sharedSubnet.vpcId,\n    networkIds: [sharedSubnet.networkId],\n    availabilityZones: [availabilityZone],\n});\nconst pool = new opentelekomcloud.LbPoolV3(\"pool\", {\n    loadbalancerId: lb.lbLoadbalancerV3Id,\n    protocol: \"HTTP\",\n    lbAlgorithm: \"ROUND_ROBIN\",\n});\nconst monitor = new opentelekomcloud.LbMonitorV3(\"monitor\", {\n    poolId: pool.lbPoolV3Id,\n    type: \"HTTP\",\n    delay: 3,\n    timeout: 30,\n    monitorPort: 8080,\n    maxRetries: 5,\n    maxRetriesDown: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nlb = opentelekomcloud.LbLoadbalancerV3(\"lb\",\n    name=\"loadbalancer_1\",\n    router_id=shared_subnet[\"vpcId\"],\n    network_ids=[shared_subnet[\"networkId\"]],\n    availability_zones=[availability_zone])\npool = opentelekomcloud.LbPoolV3(\"pool\",\n    loadbalancer_id=lb.lb_loadbalancer_v3_id,\n    protocol=\"HTTP\",\n    lb_algorithm=\"ROUND_ROBIN\")\nmonitor = opentelekomcloud.LbMonitorV3(\"monitor\",\n    pool_id=pool.lb_pool_v3_id,\n    type=\"HTTP\",\n    delay=3,\n    timeout=30,\n    monitor_port=8080,\n    max_retries=5,\n    max_retries_down=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var lb = new Opentelekomcloud.LbLoadbalancerV3(\"lb\", new()\n    {\n        Name = \"loadbalancer_1\",\n        RouterId = sharedSubnet.VpcId,\n        NetworkIds = new[]\n        {\n            sharedSubnet.NetworkId,\n        },\n        AvailabilityZones = new[]\n        {\n            availabilityZone,\n        },\n    });\n\n    var pool = new Opentelekomcloud.LbPoolV3(\"pool\", new()\n    {\n        LoadbalancerId = lb.LbLoadbalancerV3Id,\n        Protocol = \"HTTP\",\n        LbAlgorithm = \"ROUND_ROBIN\",\n    });\n\n    var monitor = new Opentelekomcloud.LbMonitorV3(\"monitor\", new()\n    {\n        PoolId = pool.LbPoolV3Id,\n        Type = \"HTTP\",\n        Delay = 3,\n        Timeout = 30,\n        MonitorPort = 8080,\n        MaxRetries = 5,\n        MaxRetriesDown = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tlb, err := opentelekomcloud.NewLbLoadbalancerV3(ctx, \"lb\", &opentelekomcloud.LbLoadbalancerV3Args{\n\t\t\tName:     pulumi.String(\"loadbalancer_1\"),\n\t\t\tRouterId: pulumi.Any(sharedSubnet.VpcId),\n\t\t\tNetworkIds: pulumi.StringArray{\n\t\t\t\tsharedSubnet.NetworkId,\n\t\t\t},\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tavailabilityZone,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpool, err := opentelekomcloud.NewLbPoolV3(ctx, \"pool\", &opentelekomcloud.LbPoolV3Args{\n\t\t\tLoadbalancerId: lb.LbLoadbalancerV3Id,\n\t\t\tProtocol:       pulumi.String(\"HTTP\"),\n\t\t\tLbAlgorithm:    pulumi.String(\"ROUND_ROBIN\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewLbMonitorV3(ctx, \"monitor\", &opentelekomcloud.LbMonitorV3Args{\n\t\t\tPoolId:         pool.LbPoolV3Id,\n\t\t\tType:           pulumi.String(\"HTTP\"),\n\t\t\tDelay:          pulumi.Float64(3),\n\t\t\tTimeout:        pulumi.Float64(30),\n\t\t\tMonitorPort:    pulumi.Float64(8080),\n\t\t\tMaxRetries:     pulumi.Float64(5),\n\t\t\tMaxRetriesDown: pulumi.Float64(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.LbLoadbalancerV3;\nimport com.pulumi.opentelekomcloud.LbLoadbalancerV3Args;\nimport com.pulumi.opentelekomcloud.LbPoolV3;\nimport com.pulumi.opentelekomcloud.LbPoolV3Args;\nimport com.pulumi.opentelekomcloud.LbMonitorV3;\nimport com.pulumi.opentelekomcloud.LbMonitorV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var lb = new LbLoadbalancerV3(\"lb\", LbLoadbalancerV3Args.builder()\n            .name(\"loadbalancer_1\")\n            .routerId(sharedSubnet.vpcId())\n            .networkIds(sharedSubnet.networkId())\n            .availabilityZones(availabilityZone)\n            .build());\n\n        var pool = new LbPoolV3(\"pool\", LbPoolV3Args.builder()\n            .loadbalancerId(lb.lbLoadbalancerV3Id())\n            .protocol(\"HTTP\")\n            .lbAlgorithm(\"ROUND_ROBIN\")\n            .build());\n\n        var monitor = new LbMonitorV3(\"monitor\", LbMonitorV3Args.builder()\n            .poolId(pool.lbPoolV3Id())\n            .type(\"HTTP\")\n            .delay(3.0)\n            .timeout(30.0)\n            .monitorPort(8080.0)\n            .maxRetries(5.0)\n            .maxRetriesDown(1.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  lb:\n    type: opentelekomcloud:LbLoadbalancerV3\n    properties:\n      name: loadbalancer_1\n      routerId: ${sharedSubnet.vpcId}\n      networkIds:\n        - ${sharedSubnet.networkId}\n      availabilityZones:\n        - ${availabilityZone}\n  pool:\n    type: opentelekomcloud:LbPoolV3\n    properties:\n      loadbalancerId: ${lb.lbLoadbalancerV3Id}\n      protocol: HTTP\n      lbAlgorithm: ROUND_ROBIN\n  monitor:\n    type: opentelekomcloud:LbMonitorV3\n    properties:\n      poolId: ${pool.lbPoolV3Id}\n      type: HTTP\n      delay: 3\n      timeout: 30\n      monitorPort: 8080\n      maxRetries: 5\n      maxRetriesDown: 1\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nLoad Balancer Monitor can be imported using the monitor ID, e.g.:\n\n```sh\n$ pulumi import opentelekomcloud:index/lbMonitorV3:LbMonitorV3 monitor b4ef7345-cf1a-41ca-8baa-941466a66853\n```\n\n","inputProperties":{"adminStateUp":{"description":"Specifies the administrative status of the health check.\n<span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> indicates that the health check is enabled, and <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> indicates that the health check is disabled.\n\nDefault: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>\n","type":"boolean"},"delay":{"description":"Specifies the interval between health checks, in seconds.\n\nThe value of this parameter ranges from 1 to 50.\n","type":"number"},"domainName":{"description":"Specifies the domain name that HTTP requests are sent to during the health check.\n\nThis parameter is available only when type is set to `HTTP`.\n\nThe value is left blank by default, indicating that the virtual IP address of the load balancer is used as the\ndestination address of HTTP requests.\n\nThe value can contain only digits, letters, hyphens (-), and periods (.) and must start with a digit or letter.\n","type":"string"},"expectedCodes":{"description":"Specifies the expected HTTP status code. This parameter will take effect only\nwhen <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is set to HTTP.\n\nThe value options are as follows:\n* A specific value, for example, <span pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\">`200`</span>\n* A list of values that are separated with commas (,), for example, `200, 202`\n* A value range, for example, `200-204`\n\nDefault: <span pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\">`200`</span>\n","type":"string"},"httpMethod":{"description":"Specifies the HTTP method.\n\nThe value can be `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `TRACE`, `OPTIONS`, `CONNECT`, or `PATCH`.\n\nThis parameter will take effect only when type is set to `HTTP`.\n","type":"string"},"lbMonitorV3Id":{"description":"Specifies the health check (monitor) ID.\n","type":"string"},"maxRetries":{"description":"Specifies the number of consecutive health checks when the health check result of a backend\nserver changes from `OFFLINE` to `ONLINE`.\n\nThe value ranges from 1 to 10.\n","type":"number"},"maxRetriesDown":{"description":"Specifies the number of consecutive health checks when the health check result of a\nbackend server changes from `ONLINE` to `OFFLINE`.\n\nThe value ranges from 1 to 10.\n\nDefault value is 3\n","type":"number"},"monitorPort":{"description":"Specifies the port used for the health check. If this parameter is left blank, the port of\nthe backend server group will be used by default.\n","type":"number"},"name":{"description":"Specifies the health check name.\n","type":"string"},"poolId":{"description":"Specifies the ID of the backend server group for which the health check is configured.\nChanging this creates a new monitor.\n","type":"string"},"projectId":{"description":"Specifies the project ID. Changing this creates a new monitor.\n","type":"string"},"timeout":{"description":"Specifies the maximum time required for waiting for a response from the health check, in\nseconds.\n\nThe value of this parameter ranges from 1 to 50.\n\nIt is recommended that you set the value less than that of parameter <span pulumi-lang-nodejs=\"`delay`\" pulumi-lang-dotnet=\"`Delay`\" pulumi-lang-go=\"`delay`\" pulumi-lang-python=\"`delay`\" pulumi-lang-yaml=\"`delay`\" pulumi-lang-java=\"`delay`\">`delay`</span>.\n","type":"number"},"type":{"description":"Specifies the health check protocol.\n\nThe value can be `TCP`, `UDP_CONNECT`, `HTTP`, `HTTPS`, or `PING`.\n","type":"string"},"urlPath":{"description":"Specifies the HTTP request path for the health check.\n\nThe value must start with a slash (/), and the default value is `/`.\n\nThis parameter is available only when <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is set to `HTTP`.\n","type":"string"}},"properties":{"adminStateUp":{"description":"Specifies the administrative status of the health check.\n<span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> indicates that the health check is enabled, and <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> indicates that the health check is disabled.\n\nDefault: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>\n","type":"boolean"},"delay":{"description":"Specifies the interval between health checks, in seconds.\n\nThe value of this parameter ranges from 1 to 50.\n","type":"number"},"domainName":{"description":"Specifies the domain name that HTTP requests are sent to during the health check.\n\nThis parameter is available only when type is set to `HTTP`.\n\nThe value is left blank by default, indicating that the virtual IP address of the load balancer is used as the\ndestination address of HTTP requests.\n\nThe value can contain only digits, letters, hyphens (-), and periods (.) and must start with a digit or letter.\n","type":"string"},"expectedCodes":{"description":"Specifies the expected HTTP status code. This parameter will take effect only\nwhen <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is set to HTTP.\n\nThe value options are as follows:\n* A specific value, for example, <span pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\">`200`</span>\n* A list of values that are separated with commas (,), for example, `200, 202`\n* A value range, for example, `200-204`\n\nDefault: <span pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\">`200`</span>\n","type":"string"},"httpMethod":{"description":"Specifies the HTTP method.\n\nThe value can be `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `TRACE`, `OPTIONS`, `CONNECT`, or `PATCH`.\n\nThis parameter will take effect only when type is set to `HTTP`.\n","type":"string"},"lbMonitorV3Id":{"description":"Specifies the health check (monitor) ID.\n","type":"string"},"maxRetries":{"description":"Specifies the number of consecutive health checks when the health check result of a backend\nserver changes from `OFFLINE` to `ONLINE`.\n\nThe value ranges from 1 to 10.\n","type":"number"},"maxRetriesDown":{"description":"Specifies the number of consecutive health checks when the health check result of a\nbackend server changes from `ONLINE` to `OFFLINE`.\n\nThe value ranges from 1 to 10.\n\nDefault value is 3\n","type":"number"},"monitorPort":{"description":"Specifies the port used for the health check. If this parameter is left blank, the port of\nthe backend server group will be used by default.\n","type":"number"},"name":{"description":"Specifies the health check name.\n","type":"string"},"poolId":{"description":"Specifies the ID of the backend server group for which the health check is configured.\nChanging this creates a new monitor.\n","type":"string"},"projectId":{"description":"Specifies the project ID. Changing this creates a new monitor.\n","type":"string"},"timeout":{"description":"Specifies the maximum time required for waiting for a response from the health check, in\nseconds.\n\nThe value of this parameter ranges from 1 to 50.\n\nIt is recommended that you set the value less than that of parameter <span pulumi-lang-nodejs=\"`delay`\" pulumi-lang-dotnet=\"`Delay`\" pulumi-lang-go=\"`delay`\" pulumi-lang-python=\"`delay`\" pulumi-lang-yaml=\"`delay`\" pulumi-lang-java=\"`delay`\">`delay`</span>.\n","type":"number"},"type":{"description":"Specifies the health check protocol.\n\nThe value can be `TCP`, `UDP_CONNECT`, `HTTP`, `HTTPS`, or `PING`.\n","type":"string"},"urlPath":{"description":"Specifies the HTTP request path for the health check.\n\nThe value must start with a slash (/), and the default value is `/`.\n\nThis parameter is available only when <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is set to `HTTP`.\n","type":"string"}},"required":["delay","domainName","expectedCodes","httpMethod","lbMonitorV3Id","maxRetries","maxRetriesDown","monitorPort","name","poolId","projectId","timeout","type","urlPath"],"requiredInputs":["delay","maxRetries","poolId","timeout","type"],"stateInputs":{"description":"Input properties used for looking up and filtering LbMonitorV3 resources.\n","properties":{"adminStateUp":{"description":"Specifies the administrative status of the health check.\n<span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> indicates that the health check is enabled, and <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> indicates that the health check is disabled.\n\nDefault: <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>\n","type":"boolean"},"delay":{"description":"Specifies the interval between health checks, in seconds.\n\nThe value of this parameter ranges from 1 to 50.\n","type":"number"},"domainName":{"description":"Specifies the domain name that HTTP requests are sent to during the health check.\n\nThis parameter is available only when type is set to `HTTP`.\n\nThe value is left blank by default, indicating that the virtual IP address of the load balancer is used as the\ndestination address of HTTP requests.\n\nThe value can contain only digits, letters, hyphens (-), and periods (.) and must start with a digit or letter.\n","type":"string"},"expectedCodes":{"description":"Specifies the expected HTTP status code. This parameter will take effect only\nwhen <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is set to HTTP.\n\nThe value options are as follows:\n* A specific value, for example, <span pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\">`200`</span>\n* A list of values that are separated with commas (,), for example, `200, 202`\n* A value range, for example, `200-204`\n\nDefault: <span pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\">`200`</span>\n","type":"string"},"httpMethod":{"description":"Specifies the HTTP method.\n\nThe value can be `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `TRACE`, `OPTIONS`, `CONNECT`, or `PATCH`.\n\nThis parameter will take effect only when type is set to `HTTP`.\n","type":"string"},"lbMonitorV3Id":{"description":"Specifies the health check (monitor) ID.\n","type":"string"},"maxRetries":{"description":"Specifies the number of consecutive health checks when the health check result of a backend\nserver changes from `OFFLINE` to `ONLINE`.\n\nThe value ranges from 1 to 10.\n","type":"number"},"maxRetriesDown":{"description":"Specifies the number of consecutive health checks when the health check result of a\nbackend server changes from `ONLINE` to `OFFLINE`.\n\nThe value ranges from 1 to 10.\n\nDefault value is 3\n","type":"number"},"monitorPort":{"description":"Specifies the port used for the health check. If this parameter is left blank, the port of\nthe backend server group will be used by default.\n","type":"number"},"name":{"description":"Specifies the health check name.\n","type":"string"},"poolId":{"description":"Specifies the ID of the backend server group for which the health check is configured.\nChanging this creates a new monitor.\n","type":"string"},"projectId":{"description":"Specifies the project ID. Changing this creates a new monitor.\n","type":"string"},"timeout":{"description":"Specifies the maximum time required for waiting for a response from the health check, in\nseconds.\n\nThe value of this parameter ranges from 1 to 50.\n\nIt is recommended that you set the value less than that of parameter <span pulumi-lang-nodejs=\"`delay`\" pulumi-lang-dotnet=\"`Delay`\" pulumi-lang-go=\"`delay`\" pulumi-lang-python=\"`delay`\" pulumi-lang-yaml=\"`delay`\" pulumi-lang-java=\"`delay`\">`delay`</span>.\n","type":"number"},"type":{"description":"Specifies the health check protocol.\n\nThe value can be `TCP`, `UDP_CONNECT`, `HTTP`, `HTTPS`, or `PING`.\n","type":"string"},"urlPath":{"description":"Specifies the HTTP request path for the health check.\n\nThe value must start with a slash (/), and the default value is `/`.\n\nThis parameter is available only when <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is set to `HTTP`.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/lbPolicyV3:LbPolicyV3":{"description":"Up-to-date reference of API arguments for DLB policy you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-load-balancing/api-ref/apis_v3/forwarding_policy)\n\nManages a Dedicated Load Balancer Policy resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Basic\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst _this = new opentelekomcloud.LbLoadbalancerV3(\"this\", {\n    routerId: routerId,\n    networkIds: [networkId],\n    availabilityZones: [az],\n});\nconst thisLbListenerV3 = new opentelekomcloud.LbListenerV3(\"this\", {\n    loadbalancerId: _this.lbLoadbalancerV3Id,\n    protocol: \"HTTP\",\n    protocolPort: 8080,\n});\nconst thisLbPoolV3 = new opentelekomcloud.LbPoolV3(\"this\", {\n    loadbalancerId: _this.lbLoadbalancerV3Id,\n    lbAlgorithm: \"ROUND_ROBIN\",\n    protocol: \"HTTP\",\n});\nconst thisLbPolicyV3 = new opentelekomcloud.LbPolicyV3(\"this\", {\n    action: \"REDIRECT_TO_POOL\",\n    listenerId: thisLbListenerV3.lbListenerV3Id,\n    redirectPoolId: thisLbPoolV3.lbPoolV3Id,\n    position: 37,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nthis = opentelekomcloud.LbLoadbalancerV3(\"this\",\n    router_id=router_id,\n    network_ids=[network_id],\n    availability_zones=[az])\nthis_lb_listener_v3 = opentelekomcloud.LbListenerV3(\"this\",\n    loadbalancer_id=this.lb_loadbalancer_v3_id,\n    protocol=\"HTTP\",\n    protocol_port=8080)\nthis_lb_pool_v3 = opentelekomcloud.LbPoolV3(\"this\",\n    loadbalancer_id=this.lb_loadbalancer_v3_id,\n    lb_algorithm=\"ROUND_ROBIN\",\n    protocol=\"HTTP\")\nthis_lb_policy_v3 = opentelekomcloud.LbPolicyV3(\"this\",\n    action=\"REDIRECT_TO_POOL\",\n    listener_id=this_lb_listener_v3.lb_listener_v3_id,\n    redirect_pool_id=this_lb_pool_v3.lb_pool_v3_id,\n    position=37)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var @this = new Opentelekomcloud.LbLoadbalancerV3(\"this\", new()\n    {\n        RouterId = routerId,\n        NetworkIds = new[]\n        {\n            networkId,\n        },\n        AvailabilityZones = new[]\n        {\n            az,\n        },\n    });\n\n    var thisLbListenerV3 = new Opentelekomcloud.LbListenerV3(\"this\", new()\n    {\n        LoadbalancerId = @this.LbLoadbalancerV3Id,\n        Protocol = \"HTTP\",\n        ProtocolPort = 8080,\n    });\n\n    var thisLbPoolV3 = new Opentelekomcloud.LbPoolV3(\"this\", new()\n    {\n        LoadbalancerId = @this.LbLoadbalancerV3Id,\n        LbAlgorithm = \"ROUND_ROBIN\",\n        Protocol = \"HTTP\",\n    });\n\n    var thisLbPolicyV3 = new Opentelekomcloud.LbPolicyV3(\"this\", new()\n    {\n        Action = \"REDIRECT_TO_POOL\",\n        ListenerId = thisLbListenerV3.LbListenerV3Id,\n        RedirectPoolId = thisLbPoolV3.LbPoolV3Id,\n        Position = 37,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthis, err := opentelekomcloud.NewLbLoadbalancerV3(ctx, \"this\", &opentelekomcloud.LbLoadbalancerV3Args{\n\t\t\tRouterId: pulumi.Any(routerId),\n\t\t\tNetworkIds: pulumi.StringArray{\n\t\t\t\tnetworkId,\n\t\t\t},\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\taz,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthisLbListenerV3, err := opentelekomcloud.NewLbListenerV3(ctx, \"this\", &opentelekomcloud.LbListenerV3Args{\n\t\t\tLoadbalancerId: this.LbLoadbalancerV3Id,\n\t\t\tProtocol:       pulumi.String(\"HTTP\"),\n\t\t\tProtocolPort:   pulumi.Float64(8080),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthisLbPoolV3, err := opentelekomcloud.NewLbPoolV3(ctx, \"this\", &opentelekomcloud.LbPoolV3Args{\n\t\t\tLoadbalancerId: this.LbLoadbalancerV3Id,\n\t\t\tLbAlgorithm:    pulumi.String(\"ROUND_ROBIN\"),\n\t\t\tProtocol:       pulumi.String(\"HTTP\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewLbPolicyV3(ctx, \"this\", &opentelekomcloud.LbPolicyV3Args{\n\t\t\tAction:         pulumi.String(\"REDIRECT_TO_POOL\"),\n\t\t\tListenerId:     thisLbListenerV3.LbListenerV3Id,\n\t\t\tRedirectPoolId: thisLbPoolV3.LbPoolV3Id,\n\t\t\tPosition:       pulumi.Float64(37),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.LbLoadbalancerV3;\nimport com.pulumi.opentelekomcloud.LbLoadbalancerV3Args;\nimport com.pulumi.opentelekomcloud.LbListenerV3;\nimport com.pulumi.opentelekomcloud.LbListenerV3Args;\nimport com.pulumi.opentelekomcloud.LbPoolV3;\nimport com.pulumi.opentelekomcloud.LbPoolV3Args;\nimport com.pulumi.opentelekomcloud.LbPolicyV3;\nimport com.pulumi.opentelekomcloud.LbPolicyV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var this_ = new LbLoadbalancerV3(\"this\", LbLoadbalancerV3Args.builder()\n            .routerId(routerId)\n            .networkIds(networkId)\n            .availabilityZones(az)\n            .build());\n\n        var thisLbListenerV3 = new LbListenerV3(\"thisLbListenerV3\", LbListenerV3Args.builder()\n            .loadbalancerId(this_.lbLoadbalancerV3Id())\n            .protocol(\"HTTP\")\n            .protocolPort(8080.0)\n            .build());\n\n        var thisLbPoolV3 = new LbPoolV3(\"thisLbPoolV3\", LbPoolV3Args.builder()\n            .loadbalancerId(this_.lbLoadbalancerV3Id())\n            .lbAlgorithm(\"ROUND_ROBIN\")\n            .protocol(\"HTTP\")\n            .build());\n\n        var thisLbPolicyV3 = new LbPolicyV3(\"thisLbPolicyV3\", LbPolicyV3Args.builder()\n            .action(\"REDIRECT_TO_POOL\")\n            .listenerId(thisLbListenerV3.lbListenerV3Id())\n            .redirectPoolId(thisLbPoolV3.lbPoolV3Id())\n            .position(37.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  this:\n    type: opentelekomcloud:LbLoadbalancerV3\n    properties:\n      routerId: ${routerId}\n      networkIds:\n        - ${networkId}\n      availabilityZones:\n        - ${az}\n  thisLbListenerV3:\n    type: opentelekomcloud:LbListenerV3\n    name: this\n    properties:\n      loadbalancerId: ${this.lbLoadbalancerV3Id}\n      protocol: HTTP\n      protocolPort: 8080\n  thisLbPoolV3:\n    type: opentelekomcloud:LbPoolV3\n    name: this\n    properties:\n      loadbalancerId: ${this.lbLoadbalancerV3Id}\n      lbAlgorithm: ROUND_ROBIN\n      protocol: HTTP\n  thisLbPolicyV3:\n    type: opentelekomcloud:LbPolicyV3\n    name: this\n    properties:\n      action: REDIRECT_TO_POOL\n      listenerId: ${thisLbListenerV3.lbListenerV3Id}\n      redirectPoolId: ${thisLbPoolV3.lbPoolV3Id}\n      position: 37\n```\n<!--End PulumiCodeChooser -->\n\n## Fixed Response Example\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst _this = new opentelekomcloud.LbLoadbalancerV3(\"this\", {\n    routerId: routerId,\n    networkIds: [networkId],\n    availabilityZones: [az],\n});\nconst thisLbListenerV3 = new opentelekomcloud.LbListenerV3(\"this\", {\n    loadbalancerId: _this.lbLoadbalancerV3Id,\n    protocol: \"HTTP\",\n    protocolPort: 8080,\n    advancedForwarding: true,\n});\nconst thisLbPoolV3 = new opentelekomcloud.LbPoolV3(\"this\", {\n    loadbalancerId: _this.lbLoadbalancerV3Id,\n    lbAlgorithm: \"ROUND_ROBIN\",\n    protocol: \"HTTP\",\n});\nconst thisLbPolicyV3 = new opentelekomcloud.LbPolicyV3(\"this\", {\n    action: \"FIXED_RESPONSE\",\n    listenerId: thisLbListenerV3.lbListenerV3Id,\n    position: 37,\n    priority: 10,\n    fixedResponseConfig: {\n        statusCode: \"200\",\n        contentType: \"text/plain\",\n        messageBody: \"Fixed Response\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nthis = opentelekomcloud.LbLoadbalancerV3(\"this\",\n    router_id=router_id,\n    network_ids=[network_id],\n    availability_zones=[az])\nthis_lb_listener_v3 = opentelekomcloud.LbListenerV3(\"this\",\n    loadbalancer_id=this.lb_loadbalancer_v3_id,\n    protocol=\"HTTP\",\n    protocol_port=8080,\n    advanced_forwarding=True)\nthis_lb_pool_v3 = opentelekomcloud.LbPoolV3(\"this\",\n    loadbalancer_id=this.lb_loadbalancer_v3_id,\n    lb_algorithm=\"ROUND_ROBIN\",\n    protocol=\"HTTP\")\nthis_lb_policy_v3 = opentelekomcloud.LbPolicyV3(\"this\",\n    action=\"FIXED_RESPONSE\",\n    listener_id=this_lb_listener_v3.lb_listener_v3_id,\n    position=37,\n    priority=10,\n    fixed_response_config={\n        \"status_code\": \"200\",\n        \"content_type\": \"text/plain\",\n        \"message_body\": \"Fixed Response\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var @this = new Opentelekomcloud.LbLoadbalancerV3(\"this\", new()\n    {\n        RouterId = routerId,\n        NetworkIds = new[]\n        {\n            networkId,\n        },\n        AvailabilityZones = new[]\n        {\n            az,\n        },\n    });\n\n    var thisLbListenerV3 = new Opentelekomcloud.LbListenerV3(\"this\", new()\n    {\n        LoadbalancerId = @this.LbLoadbalancerV3Id,\n        Protocol = \"HTTP\",\n        ProtocolPort = 8080,\n        AdvancedForwarding = true,\n    });\n\n    var thisLbPoolV3 = new Opentelekomcloud.LbPoolV3(\"this\", new()\n    {\n        LoadbalancerId = @this.LbLoadbalancerV3Id,\n        LbAlgorithm = \"ROUND_ROBIN\",\n        Protocol = \"HTTP\",\n    });\n\n    var thisLbPolicyV3 = new Opentelekomcloud.LbPolicyV3(\"this\", new()\n    {\n        Action = \"FIXED_RESPONSE\",\n        ListenerId = thisLbListenerV3.LbListenerV3Id,\n        Position = 37,\n        Priority = 10,\n        FixedResponseConfig = new Opentelekomcloud.Inputs.LbPolicyV3FixedResponseConfigArgs\n        {\n            StatusCode = \"200\",\n            ContentType = \"text/plain\",\n            MessageBody = \"Fixed Response\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthis, err := opentelekomcloud.NewLbLoadbalancerV3(ctx, \"this\", &opentelekomcloud.LbLoadbalancerV3Args{\n\t\t\tRouterId: pulumi.Any(routerId),\n\t\t\tNetworkIds: pulumi.StringArray{\n\t\t\t\tnetworkId,\n\t\t\t},\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\taz,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthisLbListenerV3, err := opentelekomcloud.NewLbListenerV3(ctx, \"this\", &opentelekomcloud.LbListenerV3Args{\n\t\t\tLoadbalancerId:     this.LbLoadbalancerV3Id,\n\t\t\tProtocol:           pulumi.String(\"HTTP\"),\n\t\t\tProtocolPort:       pulumi.Float64(8080),\n\t\t\tAdvancedForwarding: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewLbPoolV3(ctx, \"this\", &opentelekomcloud.LbPoolV3Args{\n\t\t\tLoadbalancerId: this.LbLoadbalancerV3Id,\n\t\t\tLbAlgorithm:    pulumi.String(\"ROUND_ROBIN\"),\n\t\t\tProtocol:       pulumi.String(\"HTTP\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewLbPolicyV3(ctx, \"this\", &opentelekomcloud.LbPolicyV3Args{\n\t\t\tAction:     pulumi.String(\"FIXED_RESPONSE\"),\n\t\t\tListenerId: thisLbListenerV3.LbListenerV3Id,\n\t\t\tPosition:   pulumi.Float64(37),\n\t\t\tPriority:   pulumi.Float64(10),\n\t\t\tFixedResponseConfig: &opentelekomcloud.LbPolicyV3FixedResponseConfigArgs{\n\t\t\t\tStatusCode:  pulumi.String(\"200\"),\n\t\t\t\tContentType: pulumi.String(\"text/plain\"),\n\t\t\t\tMessageBody: pulumi.String(\"Fixed Response\"),\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.opentelekomcloud.LbLoadbalancerV3;\nimport com.pulumi.opentelekomcloud.LbLoadbalancerV3Args;\nimport com.pulumi.opentelekomcloud.LbListenerV3;\nimport com.pulumi.opentelekomcloud.LbListenerV3Args;\nimport com.pulumi.opentelekomcloud.LbPoolV3;\nimport com.pulumi.opentelekomcloud.LbPoolV3Args;\nimport com.pulumi.opentelekomcloud.LbPolicyV3;\nimport com.pulumi.opentelekomcloud.LbPolicyV3Args;\nimport com.pulumi.opentelekomcloud.inputs.LbPolicyV3FixedResponseConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var this_ = new LbLoadbalancerV3(\"this\", LbLoadbalancerV3Args.builder()\n            .routerId(routerId)\n            .networkIds(networkId)\n            .availabilityZones(az)\n            .build());\n\n        var thisLbListenerV3 = new LbListenerV3(\"thisLbListenerV3\", LbListenerV3Args.builder()\n            .loadbalancerId(this_.lbLoadbalancerV3Id())\n            .protocol(\"HTTP\")\n            .protocolPort(8080.0)\n            .advancedForwarding(true)\n            .build());\n\n        var thisLbPoolV3 = new LbPoolV3(\"thisLbPoolV3\", LbPoolV3Args.builder()\n            .loadbalancerId(this_.lbLoadbalancerV3Id())\n            .lbAlgorithm(\"ROUND_ROBIN\")\n            .protocol(\"HTTP\")\n            .build());\n\n        var thisLbPolicyV3 = new LbPolicyV3(\"thisLbPolicyV3\", LbPolicyV3Args.builder()\n            .action(\"FIXED_RESPONSE\")\n            .listenerId(thisLbListenerV3.lbListenerV3Id())\n            .position(37.0)\n            .priority(10.0)\n            .fixedResponseConfig(LbPolicyV3FixedResponseConfigArgs.builder()\n                .statusCode(\"200\")\n                .contentType(\"text/plain\")\n                .messageBody(\"Fixed Response\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  this:\n    type: opentelekomcloud:LbLoadbalancerV3\n    properties:\n      routerId: ${routerId}\n      networkIds:\n        - ${networkId}\n      availabilityZones:\n        - ${az}\n  thisLbListenerV3:\n    type: opentelekomcloud:LbListenerV3\n    name: this\n    properties:\n      loadbalancerId: ${this.lbLoadbalancerV3Id}\n      protocol: HTTP\n      protocolPort: 8080\n      advancedForwarding: true\n  thisLbPoolV3:\n    type: opentelekomcloud:LbPoolV3\n    name: this\n    properties:\n      loadbalancerId: ${this.lbLoadbalancerV3Id}\n      lbAlgorithm: ROUND_ROBIN\n      protocol: HTTP\n  thisLbPolicyV3:\n    type: opentelekomcloud:LbPolicyV3\n    name: this\n    properties:\n      action: FIXED_RESPONSE\n      listenerId: ${thisLbListenerV3.lbListenerV3Id}\n      position: 37\n      priority: 10\n      fixedResponseConfig:\n        statusCode: '200'\n        contentType: text/plain\n        messageBody: Fixed Response\n```\n<!--End PulumiCodeChooser -->\n\n## Redirect To Url Example\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst _this = new opentelekomcloud.LbLoadbalancerV3(\"this\", {\n    routerId: routerId,\n    networkIds: [networkId],\n    availabilityZones: [az],\n});\nconst thisLbListenerV3 = new opentelekomcloud.LbListenerV3(\"this\", {\n    loadbalancerId: _this.lbLoadbalancerV3Id,\n    protocol: \"HTTP\",\n    protocolPort: 8080,\n    advancedForwarding: true,\n});\nconst thisLbPoolV3 = new opentelekomcloud.LbPoolV3(\"this\", {\n    loadbalancerId: _this.lbLoadbalancerV3Id,\n    lbAlgorithm: \"ROUND_ROBIN\",\n    protocol: \"HTTP\",\n});\nconst thisLbPolicyV3 = new opentelekomcloud.LbPolicyV3(\"this\", {\n    action: \"REDIRECT_TO_URL\",\n    listenerId: thisLbListenerV3.lbListenerV3Id,\n    position: 37,\n    priority: 10,\n    redirectUrl: \"https://www.google.com:443\",\n    redirectUrlConfig: {\n        statusCode: \"301\",\n        query: \"name=my_name\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nthis = opentelekomcloud.LbLoadbalancerV3(\"this\",\n    router_id=router_id,\n    network_ids=[network_id],\n    availability_zones=[az])\nthis_lb_listener_v3 = opentelekomcloud.LbListenerV3(\"this\",\n    loadbalancer_id=this.lb_loadbalancer_v3_id,\n    protocol=\"HTTP\",\n    protocol_port=8080,\n    advanced_forwarding=True)\nthis_lb_pool_v3 = opentelekomcloud.LbPoolV3(\"this\",\n    loadbalancer_id=this.lb_loadbalancer_v3_id,\n    lb_algorithm=\"ROUND_ROBIN\",\n    protocol=\"HTTP\")\nthis_lb_policy_v3 = opentelekomcloud.LbPolicyV3(\"this\",\n    action=\"REDIRECT_TO_URL\",\n    listener_id=this_lb_listener_v3.lb_listener_v3_id,\n    position=37,\n    priority=10,\n    redirect_url=\"https://www.google.com:443\",\n    redirect_url_config={\n        \"status_code\": \"301\",\n        \"query\": \"name=my_name\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var @this = new Opentelekomcloud.LbLoadbalancerV3(\"this\", new()\n    {\n        RouterId = routerId,\n        NetworkIds = new[]\n        {\n            networkId,\n        },\n        AvailabilityZones = new[]\n        {\n            az,\n        },\n    });\n\n    var thisLbListenerV3 = new Opentelekomcloud.LbListenerV3(\"this\", new()\n    {\n        LoadbalancerId = @this.LbLoadbalancerV3Id,\n        Protocol = \"HTTP\",\n        ProtocolPort = 8080,\n        AdvancedForwarding = true,\n    });\n\n    var thisLbPoolV3 = new Opentelekomcloud.LbPoolV3(\"this\", new()\n    {\n        LoadbalancerId = @this.LbLoadbalancerV3Id,\n        LbAlgorithm = \"ROUND_ROBIN\",\n        Protocol = \"HTTP\",\n    });\n\n    var thisLbPolicyV3 = new Opentelekomcloud.LbPolicyV3(\"this\", new()\n    {\n        Action = \"REDIRECT_TO_URL\",\n        ListenerId = thisLbListenerV3.LbListenerV3Id,\n        Position = 37,\n        Priority = 10,\n        RedirectUrl = \"https://www.google.com:443\",\n        RedirectUrlConfig = new Opentelekomcloud.Inputs.LbPolicyV3RedirectUrlConfigArgs\n        {\n            StatusCode = \"301\",\n            Query = \"name=my_name\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthis, err := opentelekomcloud.NewLbLoadbalancerV3(ctx, \"this\", &opentelekomcloud.LbLoadbalancerV3Args{\n\t\t\tRouterId: pulumi.Any(routerId),\n\t\t\tNetworkIds: pulumi.StringArray{\n\t\t\t\tnetworkId,\n\t\t\t},\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\taz,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthisLbListenerV3, err := opentelekomcloud.NewLbListenerV3(ctx, \"this\", &opentelekomcloud.LbListenerV3Args{\n\t\t\tLoadbalancerId:     this.LbLoadbalancerV3Id,\n\t\t\tProtocol:           pulumi.String(\"HTTP\"),\n\t\t\tProtocolPort:       pulumi.Float64(8080),\n\t\t\tAdvancedForwarding: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewLbPoolV3(ctx, \"this\", &opentelekomcloud.LbPoolV3Args{\n\t\t\tLoadbalancerId: this.LbLoadbalancerV3Id,\n\t\t\tLbAlgorithm:    pulumi.String(\"ROUND_ROBIN\"),\n\t\t\tProtocol:       pulumi.String(\"HTTP\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewLbPolicyV3(ctx, \"this\", &opentelekomcloud.LbPolicyV3Args{\n\t\t\tAction:      pulumi.String(\"REDIRECT_TO_URL\"),\n\t\t\tListenerId:  thisLbListenerV3.LbListenerV3Id,\n\t\t\tPosition:    pulumi.Float64(37),\n\t\t\tPriority:    pulumi.Float64(10),\n\t\t\tRedirectUrl: pulumi.String(\"https://www.google.com:443\"),\n\t\t\tRedirectUrlConfig: &opentelekomcloud.LbPolicyV3RedirectUrlConfigArgs{\n\t\t\t\tStatusCode: pulumi.String(\"301\"),\n\t\t\t\tQuery:      pulumi.String(\"name=my_name\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.LbLoadbalancerV3;\nimport com.pulumi.opentelekomcloud.LbLoadbalancerV3Args;\nimport com.pulumi.opentelekomcloud.LbListenerV3;\nimport com.pulumi.opentelekomcloud.LbListenerV3Args;\nimport com.pulumi.opentelekomcloud.LbPoolV3;\nimport com.pulumi.opentelekomcloud.LbPoolV3Args;\nimport com.pulumi.opentelekomcloud.LbPolicyV3;\nimport com.pulumi.opentelekomcloud.LbPolicyV3Args;\nimport com.pulumi.opentelekomcloud.inputs.LbPolicyV3RedirectUrlConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var this_ = new LbLoadbalancerV3(\"this\", LbLoadbalancerV3Args.builder()\n            .routerId(routerId)\n            .networkIds(networkId)\n            .availabilityZones(az)\n            .build());\n\n        var thisLbListenerV3 = new LbListenerV3(\"thisLbListenerV3\", LbListenerV3Args.builder()\n            .loadbalancerId(this_.lbLoadbalancerV3Id())\n            .protocol(\"HTTP\")\n            .protocolPort(8080.0)\n            .advancedForwarding(true)\n            .build());\n\n        var thisLbPoolV3 = new LbPoolV3(\"thisLbPoolV3\", LbPoolV3Args.builder()\n            .loadbalancerId(this_.lbLoadbalancerV3Id())\n            .lbAlgorithm(\"ROUND_ROBIN\")\n            .protocol(\"HTTP\")\n            .build());\n\n        var thisLbPolicyV3 = new LbPolicyV3(\"thisLbPolicyV3\", LbPolicyV3Args.builder()\n            .action(\"REDIRECT_TO_URL\")\n            .listenerId(thisLbListenerV3.lbListenerV3Id())\n            .position(37.0)\n            .priority(10.0)\n            .redirectUrl(\"https://www.google.com:443\")\n            .redirectUrlConfig(LbPolicyV3RedirectUrlConfigArgs.builder()\n                .statusCode(\"301\")\n                .query(\"name=my_name\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  this:\n    type: opentelekomcloud:LbLoadbalancerV3\n    properties:\n      routerId: ${routerId}\n      networkIds:\n        - ${networkId}\n      availabilityZones:\n        - ${az}\n  thisLbListenerV3:\n    type: opentelekomcloud:LbListenerV3\n    name: this\n    properties:\n      loadbalancerId: ${this.lbLoadbalancerV3Id}\n      protocol: HTTP\n      protocolPort: 8080\n      advancedForwarding: true\n  thisLbPoolV3:\n    type: opentelekomcloud:LbPoolV3\n    name: this\n    properties:\n      loadbalancerId: ${this.lbLoadbalancerV3Id}\n      lbAlgorithm: ROUND_ROBIN\n      protocol: HTTP\n  thisLbPolicyV3:\n    type: opentelekomcloud:LbPolicyV3\n    name: this\n    properties:\n      action: REDIRECT_TO_URL\n      listenerId: ${thisLbListenerV3.lbListenerV3Id}\n      position: 37\n      priority: 10\n      redirectUrl: https://www.google.com:443\n      redirectUrlConfig:\n        statusCode: '301'\n        query: name=my_name\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nLoad Balancer Policy can be imported using the Policy ID, e.g.:\n\n```sh\n$ pulumi import opentelekomcloud:index/lbPolicyV3:LbPolicyV3 this 8a7a79c2-cf17-4e65-b2ae-ddc8bfcf6c74\n```\n\n","inputProperties":{"action":{"description":"The Policy action - can either be `REDIRECT_TO_POOL`,\nor `REDIRECT_TO_LISTENER`. Changing this creates a new Policy.\n","type":"string"},"description":{"description":"Provides supplementary information about the forwarding policy.\n","type":"string"},"fixedResponseConfig":{"$ref":"#/types/opentelekomcloud:index%2FLbPolicyV3FixedResponseConfig:LbPolicyV3FixedResponseConfig","description":"Specifies the configuration of the page that will be returned.\nThis parameter will take effect when <span pulumi-lang-nodejs=\"`advancedForwarding`\" pulumi-lang-dotnet=\"`AdvancedForwarding`\" pulumi-lang-go=\"`advancedForwarding`\" pulumi-lang-python=\"`advanced_forwarding`\" pulumi-lang-yaml=\"`advancedForwarding`\" pulumi-lang-java=\"`advancedForwarding`\">`advanced_forwarding`</span> is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\nIf this parameter is passed and <span pulumi-lang-nodejs=\"`advancedForwarding`\" pulumi-lang-dotnet=\"`AdvancedForwarding`\" pulumi-lang-go=\"`advancedForwarding`\" pulumi-lang-python=\"`advanced_forwarding`\" pulumi-lang-yaml=\"`advancedForwarding`\" pulumi-lang-java=\"`advancedForwarding`\">`advanced_forwarding`</span> is set to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>, an error will be returned.\nNot available in `eu-nl`.\n"},"lbPolicyV3Id":{"description":"The unique ID for the policy.\n","type":"string"},"listenerId":{"description":"The Listener on which the Policy will be associated with.\nChanging this creates a new Policy.\n","type":"string"},"name":{"description":"Specifies the forwarding policy name.\n","type":"string"},"position":{"description":"The position of this policy on the listener. Positions start at <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>.\nChanging this creates a new Policy.\n","type":"number"},"priority":{"description":"Specifies the forwarding policy priority.\nA smaller value indicates a higher priority. The value must be unique for forwarding policies of the same listener.\nThis parameter will take effect only when <span pulumi-lang-nodejs=\"`advancedForwarding`\" pulumi-lang-dotnet=\"`AdvancedForwarding`\" pulumi-lang-go=\"`advancedForwarding`\" pulumi-lang-python=\"`advanced_forwarding`\" pulumi-lang-yaml=\"`advancedForwarding`\" pulumi-lang-java=\"`advancedForwarding`\">`advanced_forwarding`</span> is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\nIf this parameter is passed and <span pulumi-lang-nodejs=\"`advancedForwarding`\" pulumi-lang-dotnet=\"`AdvancedForwarding`\" pulumi-lang-go=\"`advancedForwarding`\" pulumi-lang-python=\"`advanced_forwarding`\" pulumi-lang-yaml=\"`advancedForwarding`\" pulumi-lang-java=\"`advancedForwarding`\">`advanced_forwarding`</span> is set to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>, an error will be returned.\nThis parameter is unsupported for shared load balancers and not available in `eu-nl`.\n","type":"number"},"projectId":{"description":"Required for admins. The UUID of the tenant who owns\nthe Policy. Only administrative users can specify a tenant UUID other than\ntheir own. Changing this creates a new Policy.\n","type":"string"},"redirectListenerId":{"description":"Requests matching this policy will be redirected to the listener with this ID.\nOnly valid if <span pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\">`action`</span> is `REDIRECT_TO_LISTENER`.\n","type":"string"},"redirectPoolId":{"description":"Requests matching this policy will be redirected to the pool with this ID.\nOnly valid if <span pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\">`action`</span> is `REDIRECT_TO_POOL`.\n","type":"string"},"redirectPoolsConfigs":{"description":"Specifies the configuration of the backend server group that the requests\nare forwarded to. This parameter is valid only when action is set to `REDIRECT_TO_POOL`.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FLbPolicyV3RedirectPoolsConfig:LbPolicyV3RedirectPoolsConfig"},"type":"array"},"redirectUrl":{"description":"Specifies the URL to which requests are forwarded.\n","type":"string"},"redirectUrlConfig":{"$ref":"#/types/opentelekomcloud:index%2FLbPolicyV3RedirectUrlConfig:LbPolicyV3RedirectUrlConfig","description":"Specifies the URL to which requests are forwarded.\nFor dedicated load balancers, This parameter will take effect when <span pulumi-lang-nodejs=\"`advancedForwarding`\" pulumi-lang-dotnet=\"`AdvancedForwarding`\" pulumi-lang-go=\"`advancedForwarding`\" pulumi-lang-python=\"`advanced_forwarding`\" pulumi-lang-yaml=\"`advancedForwarding`\" pulumi-lang-java=\"`advancedForwarding`\">`advanced_forwarding`</span> is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\nIf it is passed when <span pulumi-lang-nodejs=\"`advancedForwarding`\" pulumi-lang-dotnet=\"`AdvancedForwarding`\" pulumi-lang-go=\"`advancedForwarding`\" pulumi-lang-python=\"`advanced_forwarding`\" pulumi-lang-yaml=\"`advancedForwarding`\" pulumi-lang-java=\"`advancedForwarding`\">`advanced_forwarding`</span> is set to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>, an error will be returned. Not available in `eu-nl`.\n"},"rules":{"description":"Lists the forwarding rules in the forwarding policy.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FLbPolicyV3Rule:LbPolicyV3Rule"},"type":"array"}},"properties":{"action":{"description":"The Policy action - can either be `REDIRECT_TO_POOL`,\nor `REDIRECT_TO_LISTENER`. Changing this creates a new Policy.\n","type":"string"},"description":{"description":"Provides supplementary information about the forwarding policy.\n","type":"string"},"fixedResponseConfig":{"$ref":"#/types/opentelekomcloud:index%2FLbPolicyV3FixedResponseConfig:LbPolicyV3FixedResponseConfig","description":"Specifies the configuration of the page that will be returned.\nThis parameter will take effect when <span pulumi-lang-nodejs=\"`advancedForwarding`\" pulumi-lang-dotnet=\"`AdvancedForwarding`\" pulumi-lang-go=\"`advancedForwarding`\" pulumi-lang-python=\"`advanced_forwarding`\" pulumi-lang-yaml=\"`advancedForwarding`\" pulumi-lang-java=\"`advancedForwarding`\">`advanced_forwarding`</span> is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\nIf this parameter is passed and <span pulumi-lang-nodejs=\"`advancedForwarding`\" pulumi-lang-dotnet=\"`AdvancedForwarding`\" pulumi-lang-go=\"`advancedForwarding`\" pulumi-lang-python=\"`advanced_forwarding`\" pulumi-lang-yaml=\"`advancedForwarding`\" pulumi-lang-java=\"`advancedForwarding`\">`advanced_forwarding`</span> is set to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>, an error will be returned.\nNot available in `eu-nl`.\n"},"lbPolicyV3Id":{"description":"The unique ID for the policy.\n","type":"string"},"listenerId":{"description":"The Listener on which the Policy will be associated with.\nChanging this creates a new Policy.\n","type":"string"},"name":{"description":"Specifies the forwarding policy name.\n","type":"string"},"position":{"description":"The position of this policy on the listener. Positions start at <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>.\nChanging this creates a new Policy.\n","type":"number"},"priority":{"description":"Specifies the forwarding policy priority.\nA smaller value indicates a higher priority. The value must be unique for forwarding policies of the same listener.\nThis parameter will take effect only when <span pulumi-lang-nodejs=\"`advancedForwarding`\" pulumi-lang-dotnet=\"`AdvancedForwarding`\" pulumi-lang-go=\"`advancedForwarding`\" pulumi-lang-python=\"`advanced_forwarding`\" pulumi-lang-yaml=\"`advancedForwarding`\" pulumi-lang-java=\"`advancedForwarding`\">`advanced_forwarding`</span> is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\nIf this parameter is passed and <span pulumi-lang-nodejs=\"`advancedForwarding`\" pulumi-lang-dotnet=\"`AdvancedForwarding`\" pulumi-lang-go=\"`advancedForwarding`\" pulumi-lang-python=\"`advanced_forwarding`\" pulumi-lang-yaml=\"`advancedForwarding`\" pulumi-lang-java=\"`advancedForwarding`\">`advanced_forwarding`</span> is set to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>, an error will be returned.\nThis parameter is unsupported for shared load balancers and not available in `eu-nl`.\n","type":"number"},"projectId":{"description":"Required for admins. The UUID of the tenant who owns\nthe Policy. Only administrative users can specify a tenant UUID other than\ntheir own. Changing this creates a new Policy.\n","type":"string"},"redirectListenerId":{"description":"Requests matching this policy will be redirected to the listener with this ID.\nOnly valid if <span pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\">`action`</span> is `REDIRECT_TO_LISTENER`.\n","type":"string"},"redirectPoolId":{"description":"Requests matching this policy will be redirected to the pool with this ID.\nOnly valid if <span pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\">`action`</span> is `REDIRECT_TO_POOL`.\n","type":"string"},"redirectPoolsConfigs":{"description":"Specifies the configuration of the backend server group that the requests\nare forwarded to. This parameter is valid only when action is set to `REDIRECT_TO_POOL`.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FLbPolicyV3RedirectPoolsConfig:LbPolicyV3RedirectPoolsConfig"},"type":"array"},"redirectUrl":{"description":"Specifies the URL to which requests are forwarded.\n","type":"string"},"redirectUrlConfig":{"$ref":"#/types/opentelekomcloud:index%2FLbPolicyV3RedirectUrlConfig:LbPolicyV3RedirectUrlConfig","description":"Specifies the URL to which requests are forwarded.\nFor dedicated load balancers, This parameter will take effect when <span pulumi-lang-nodejs=\"`advancedForwarding`\" pulumi-lang-dotnet=\"`AdvancedForwarding`\" pulumi-lang-go=\"`advancedForwarding`\" pulumi-lang-python=\"`advanced_forwarding`\" pulumi-lang-yaml=\"`advancedForwarding`\" pulumi-lang-java=\"`advancedForwarding`\">`advanced_forwarding`</span> is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\nIf it is passed when <span pulumi-lang-nodejs=\"`advancedForwarding`\" pulumi-lang-dotnet=\"`AdvancedForwarding`\" pulumi-lang-go=\"`advancedForwarding`\" pulumi-lang-python=\"`advanced_forwarding`\" pulumi-lang-yaml=\"`advancedForwarding`\" pulumi-lang-java=\"`advancedForwarding`\">`advanced_forwarding`</span> is set to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>, an error will be returned. Not available in `eu-nl`.\n"},"rules":{"description":"Lists the forwarding rules in the forwarding policy.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FLbPolicyV3Rule:LbPolicyV3Rule"},"type":"array"},"status":{"description":"Specifies the provisioning status of the forwarding policy.\n","type":"string"}},"required":["action","description","lbPolicyV3Id","listenerId","name","priority","projectId","redirectUrl","status"],"requiredInputs":["action","listenerId"],"stateInputs":{"description":"Input properties used for looking up and filtering LbPolicyV3 resources.\n","properties":{"action":{"description":"The Policy action - can either be `REDIRECT_TO_POOL`,\nor `REDIRECT_TO_LISTENER`. Changing this creates a new Policy.\n","type":"string"},"description":{"description":"Provides supplementary information about the forwarding policy.\n","type":"string"},"fixedResponseConfig":{"$ref":"#/types/opentelekomcloud:index%2FLbPolicyV3FixedResponseConfig:LbPolicyV3FixedResponseConfig","description":"Specifies the configuration of the page that will be returned.\nThis parameter will take effect when <span pulumi-lang-nodejs=\"`advancedForwarding`\" pulumi-lang-dotnet=\"`AdvancedForwarding`\" pulumi-lang-go=\"`advancedForwarding`\" pulumi-lang-python=\"`advanced_forwarding`\" pulumi-lang-yaml=\"`advancedForwarding`\" pulumi-lang-java=\"`advancedForwarding`\">`advanced_forwarding`</span> is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\nIf this parameter is passed and <span pulumi-lang-nodejs=\"`advancedForwarding`\" pulumi-lang-dotnet=\"`AdvancedForwarding`\" pulumi-lang-go=\"`advancedForwarding`\" pulumi-lang-python=\"`advanced_forwarding`\" pulumi-lang-yaml=\"`advancedForwarding`\" pulumi-lang-java=\"`advancedForwarding`\">`advanced_forwarding`</span> is set to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>, an error will be returned.\nNot available in `eu-nl`.\n"},"lbPolicyV3Id":{"description":"The unique ID for the policy.\n","type":"string"},"listenerId":{"description":"The Listener on which the Policy will be associated with.\nChanging this creates a new Policy.\n","type":"string"},"name":{"description":"Specifies the forwarding policy name.\n","type":"string"},"position":{"description":"The position of this policy on the listener. Positions start at <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>.\nChanging this creates a new Policy.\n","type":"number"},"priority":{"description":"Specifies the forwarding policy priority.\nA smaller value indicates a higher priority. The value must be unique for forwarding policies of the same listener.\nThis parameter will take effect only when <span pulumi-lang-nodejs=\"`advancedForwarding`\" pulumi-lang-dotnet=\"`AdvancedForwarding`\" pulumi-lang-go=\"`advancedForwarding`\" pulumi-lang-python=\"`advanced_forwarding`\" pulumi-lang-yaml=\"`advancedForwarding`\" pulumi-lang-java=\"`advancedForwarding`\">`advanced_forwarding`</span> is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\nIf this parameter is passed and <span pulumi-lang-nodejs=\"`advancedForwarding`\" pulumi-lang-dotnet=\"`AdvancedForwarding`\" pulumi-lang-go=\"`advancedForwarding`\" pulumi-lang-python=\"`advanced_forwarding`\" pulumi-lang-yaml=\"`advancedForwarding`\" pulumi-lang-java=\"`advancedForwarding`\">`advanced_forwarding`</span> is set to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>, an error will be returned.\nThis parameter is unsupported for shared load balancers and not available in `eu-nl`.\n","type":"number"},"projectId":{"description":"Required for admins. The UUID of the tenant who owns\nthe Policy. Only administrative users can specify a tenant UUID other than\ntheir own. Changing this creates a new Policy.\n","type":"string"},"redirectListenerId":{"description":"Requests matching this policy will be redirected to the listener with this ID.\nOnly valid if <span pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\">`action`</span> is `REDIRECT_TO_LISTENER`.\n","type":"string"},"redirectPoolId":{"description":"Requests matching this policy will be redirected to the pool with this ID.\nOnly valid if <span pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\">`action`</span> is `REDIRECT_TO_POOL`.\n","type":"string"},"redirectPoolsConfigs":{"description":"Specifies the configuration of the backend server group that the requests\nare forwarded to. This parameter is valid only when action is set to `REDIRECT_TO_POOL`.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FLbPolicyV3RedirectPoolsConfig:LbPolicyV3RedirectPoolsConfig"},"type":"array"},"redirectUrl":{"description":"Specifies the URL to which requests are forwarded.\n","type":"string"},"redirectUrlConfig":{"$ref":"#/types/opentelekomcloud:index%2FLbPolicyV3RedirectUrlConfig:LbPolicyV3RedirectUrlConfig","description":"Specifies the URL to which requests are forwarded.\nFor dedicated load balancers, This parameter will take effect when <span pulumi-lang-nodejs=\"`advancedForwarding`\" pulumi-lang-dotnet=\"`AdvancedForwarding`\" pulumi-lang-go=\"`advancedForwarding`\" pulumi-lang-python=\"`advanced_forwarding`\" pulumi-lang-yaml=\"`advancedForwarding`\" pulumi-lang-java=\"`advancedForwarding`\">`advanced_forwarding`</span> is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\nIf it is passed when <span pulumi-lang-nodejs=\"`advancedForwarding`\" pulumi-lang-dotnet=\"`AdvancedForwarding`\" pulumi-lang-go=\"`advancedForwarding`\" pulumi-lang-python=\"`advanced_forwarding`\" pulumi-lang-yaml=\"`advancedForwarding`\" pulumi-lang-java=\"`advancedForwarding`\">`advanced_forwarding`</span> is set to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>, an error will be returned. Not available in `eu-nl`.\n"},"rules":{"description":"Lists the forwarding rules in the forwarding policy.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FLbPolicyV3Rule:LbPolicyV3Rule"},"type":"array"},"status":{"description":"Specifies the provisioning status of the forwarding policy.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/lbPoolV2:LbPoolV2":{"description":"Up-to-date reference of API arguments for ELB pool you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-load-balancing/api-ref/apis_v2.0/backend_server_group)\n\nManages an Enhanced LB pool resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst pool1 = new opentelekomcloud.LbPoolV2(\"pool_1\", {\n    protocol: \"HTTP\",\n    lbMethod: \"ROUND_ROBIN\",\n    listenerId: \"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n    persistences: [{\n        type: \"APP_COOKIE\",\n        cookieName: \"testCookie\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\npool1 = opentelekomcloud.LbPoolV2(\"pool_1\",\n    protocol=\"HTTP\",\n    lb_method=\"ROUND_ROBIN\",\n    listener_id=\"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n    persistences=[{\n        \"type\": \"APP_COOKIE\",\n        \"cookie_name\": \"testCookie\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var pool1 = new Opentelekomcloud.LbPoolV2(\"pool_1\", new()\n    {\n        Protocol = \"HTTP\",\n        LbMethod = \"ROUND_ROBIN\",\n        ListenerId = \"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n        Persistences = new[]\n        {\n            new Opentelekomcloud.Inputs.LbPoolV2PersistenceArgs\n            {\n                Type = \"APP_COOKIE\",\n                CookieName = \"testCookie\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewLbPoolV2(ctx, \"pool_1\", &opentelekomcloud.LbPoolV2Args{\n\t\t\tProtocol:   pulumi.String(\"HTTP\"),\n\t\t\tLbMethod:   pulumi.String(\"ROUND_ROBIN\"),\n\t\t\tListenerId: pulumi.String(\"d9415786-5f1a-428b-b35f-2f1523e146d2\"),\n\t\t\tPersistences: opentelekomcloud.LbPoolV2PersistenceArray{\n\t\t\t\t&opentelekomcloud.LbPoolV2PersistenceArgs{\n\t\t\t\t\tType:       pulumi.String(\"APP_COOKIE\"),\n\t\t\t\t\tCookieName: pulumi.String(\"testCookie\"),\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.opentelekomcloud.LbPoolV2;\nimport com.pulumi.opentelekomcloud.LbPoolV2Args;\nimport com.pulumi.opentelekomcloud.inputs.LbPoolV2PersistenceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var pool1 = new LbPoolV2(\"pool1\", LbPoolV2Args.builder()\n            .protocol(\"HTTP\")\n            .lbMethod(\"ROUND_ROBIN\")\n            .listenerId(\"d9415786-5f1a-428b-b35f-2f1523e146d2\")\n            .persistences(LbPoolV2PersistenceArgs.builder()\n                .type(\"APP_COOKIE\")\n                .cookieName(\"testCookie\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  pool1:\n    type: opentelekomcloud:LbPoolV2\n    name: pool_1\n    properties:\n      protocol: HTTP\n      lbMethod: ROUND_ROBIN\n      listenerId: d9415786-5f1a-428b-b35f-2f1523e146d2\n      persistences:\n        - type: APP_COOKIE\n          cookieName: testCookie\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"adminStateUp":{"description":"The administrative state of the pool.\nA valid value is true (UP) or false (DOWN).\n","type":"boolean"},"description":{"description":"Human-readable description for the pool.\n","type":"string"},"lbMethod":{"description":"The load balancing algorithm to\ndistribute traffic to the pool's members. Must be one of\n`ROUND_ROBIN`, `LEAST_CONNECTIONS`, or `SOURCE_IP`.\n","type":"string"},"lbPoolV2Id":{"description":"The unique ID for the pool.\n","type":"string"},"listenerId":{"description":"The Listener on which the members of the pool\nwill be associated with. Changing this creates a new pool.\n\n> One of <span pulumi-lang-nodejs=\"`loadbalancerId`\" pulumi-lang-dotnet=\"`LoadbalancerId`\" pulumi-lang-go=\"`loadbalancerId`\" pulumi-lang-python=\"`loadbalancer_id`\" pulumi-lang-yaml=\"`loadbalancerId`\" pulumi-lang-java=\"`loadbalancerId`\">`loadbalancer_id`</span> or <span pulumi-lang-nodejs=\"`listenerId`\" pulumi-lang-dotnet=\"`ListenerId`\" pulumi-lang-go=\"`listenerId`\" pulumi-lang-python=\"`listener_id`\" pulumi-lang-yaml=\"`listenerId`\" pulumi-lang-java=\"`listenerId`\">`listener_id`</span> must be provided.\n","type":"string"},"loadbalancerId":{"description":"The load balancer on which to provision this\npool. Changing this creates a new pool.\n\n> One of <span pulumi-lang-nodejs=\"`loadbalancerId`\" pulumi-lang-dotnet=\"`LoadbalancerId`\" pulumi-lang-go=\"`loadbalancerId`\" pulumi-lang-python=\"`loadbalancer_id`\" pulumi-lang-yaml=\"`loadbalancerId`\" pulumi-lang-java=\"`loadbalancerId`\">`loadbalancer_id`</span> or <span pulumi-lang-nodejs=\"`listenerId`\" pulumi-lang-dotnet=\"`ListenerId`\" pulumi-lang-go=\"`listenerId`\" pulumi-lang-python=\"`listener_id`\" pulumi-lang-yaml=\"`listenerId`\" pulumi-lang-java=\"`listenerId`\">`listener_id`</span> must be provided.\n","type":"string"},"name":{"description":"Human-readable name for the pool.\n","type":"string"},"persistences":{"description":"Omit this field to prevent session persistence. Indicates\nwhether connections in the same session will be processed by the same Pool\nmember or not. Changing this creates a new pool.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FLbPoolV2Persistence:LbPoolV2Persistence"},"type":"array"},"protocol":{"description":"The protocol - can either be TCP, UDP or HTTP.\nChanging this creates a new pool.\n\n> When a pool is added to a specific listener, the relationships between the load balancer protocol\nand the pool protocol are as follows. When the load balancer protocol is `UDP`, the pool protocol must be `UDP`.\nWhen the load balancer protocol is `TCP`, the pool protocol must be `TCP`.\nWhen the load balancer protocol is `HTTP` or `TERMINATED_HTTPS`, the pool protocol must be `HTTP`.\n","type":"string"},"region":{"type":"string"},"tenantId":{"description":"Required for admins. The UUID of the tenant who owns\nthe pool.  Only administrative users can specify a tenant UUID\nother than their own. Changing this creates a new pool.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FLbPoolV2Timeouts:LbPoolV2Timeouts"}},"properties":{"adminStateUp":{"description":"The administrative state of the pool.\nA valid value is true (UP) or false (DOWN).\n","type":"boolean"},"description":{"description":"Human-readable description for the pool.\n","type":"string"},"lbMethod":{"description":"The load balancing algorithm to\ndistribute traffic to the pool's members. Must be one of\n`ROUND_ROBIN`, `LEAST_CONNECTIONS`, or `SOURCE_IP`.\n","type":"string"},"lbPoolV2Id":{"description":"The unique ID for the pool.\n","type":"string"},"listenerId":{"description":"The Listener on which the members of the pool\nwill be associated with. Changing this creates a new pool.\n\n> One of <span pulumi-lang-nodejs=\"`loadbalancerId`\" pulumi-lang-dotnet=\"`LoadbalancerId`\" pulumi-lang-go=\"`loadbalancerId`\" pulumi-lang-python=\"`loadbalancer_id`\" pulumi-lang-yaml=\"`loadbalancerId`\" pulumi-lang-java=\"`loadbalancerId`\">`loadbalancer_id`</span> or <span pulumi-lang-nodejs=\"`listenerId`\" pulumi-lang-dotnet=\"`ListenerId`\" pulumi-lang-go=\"`listenerId`\" pulumi-lang-python=\"`listener_id`\" pulumi-lang-yaml=\"`listenerId`\" pulumi-lang-java=\"`listenerId`\">`listener_id`</span> must be provided.\n","type":"string"},"loadbalancerId":{"description":"The load balancer on which to provision this\npool. Changing this creates a new pool.\n\n> One of <span pulumi-lang-nodejs=\"`loadbalancerId`\" pulumi-lang-dotnet=\"`LoadbalancerId`\" pulumi-lang-go=\"`loadbalancerId`\" pulumi-lang-python=\"`loadbalancer_id`\" pulumi-lang-yaml=\"`loadbalancerId`\" pulumi-lang-java=\"`loadbalancerId`\">`loadbalancer_id`</span> or <span pulumi-lang-nodejs=\"`listenerId`\" pulumi-lang-dotnet=\"`ListenerId`\" pulumi-lang-go=\"`listenerId`\" pulumi-lang-python=\"`listener_id`\" pulumi-lang-yaml=\"`listenerId`\" pulumi-lang-java=\"`listenerId`\">`listener_id`</span> must be provided.\n","type":"string"},"name":{"description":"Human-readable name for the pool.\n","type":"string"},"persistences":{"description":"Omit this field to prevent session persistence. Indicates\nwhether connections in the same session will be processed by the same Pool\nmember or not. Changing this creates a new pool.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FLbPoolV2Persistence:LbPoolV2Persistence"},"type":"array"},"protocol":{"description":"The protocol - can either be TCP, UDP or HTTP.\nChanging this creates a new pool.\n\n> When a pool is added to a specific listener, the relationships between the load balancer protocol\nand the pool protocol are as follows. When the load balancer protocol is `UDP`, the pool protocol must be `UDP`.\nWhen the load balancer protocol is `TCP`, the pool protocol must be `TCP`.\nWhen the load balancer protocol is `HTTP` or `TERMINATED_HTTPS`, the pool protocol must be `HTTP`.\n","type":"string"},"region":{"type":"string"},"tenantId":{"description":"Required for admins. The UUID of the tenant who owns\nthe pool.  Only administrative users can specify a tenant UUID\nother than their own. Changing this creates a new pool.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FLbPoolV2Timeouts:LbPoolV2Timeouts"}},"required":["lbMethod","lbPoolV2Id","name","protocol","region","tenantId"],"requiredInputs":["lbMethod","protocol"],"stateInputs":{"description":"Input properties used for looking up and filtering LbPoolV2 resources.\n","properties":{"adminStateUp":{"description":"The administrative state of the pool.\nA valid value is true (UP) or false (DOWN).\n","type":"boolean"},"description":{"description":"Human-readable description for the pool.\n","type":"string"},"lbMethod":{"description":"The load balancing algorithm to\ndistribute traffic to the pool's members. Must be one of\n`ROUND_ROBIN`, `LEAST_CONNECTIONS`, or `SOURCE_IP`.\n","type":"string"},"lbPoolV2Id":{"description":"The unique ID for the pool.\n","type":"string"},"listenerId":{"description":"The Listener on which the members of the pool\nwill be associated with. Changing this creates a new pool.\n\n> One of <span pulumi-lang-nodejs=\"`loadbalancerId`\" pulumi-lang-dotnet=\"`LoadbalancerId`\" pulumi-lang-go=\"`loadbalancerId`\" pulumi-lang-python=\"`loadbalancer_id`\" pulumi-lang-yaml=\"`loadbalancerId`\" pulumi-lang-java=\"`loadbalancerId`\">`loadbalancer_id`</span> or <span pulumi-lang-nodejs=\"`listenerId`\" pulumi-lang-dotnet=\"`ListenerId`\" pulumi-lang-go=\"`listenerId`\" pulumi-lang-python=\"`listener_id`\" pulumi-lang-yaml=\"`listenerId`\" pulumi-lang-java=\"`listenerId`\">`listener_id`</span> must be provided.\n","type":"string"},"loadbalancerId":{"description":"The load balancer on which to provision this\npool. Changing this creates a new pool.\n\n> One of <span pulumi-lang-nodejs=\"`loadbalancerId`\" pulumi-lang-dotnet=\"`LoadbalancerId`\" pulumi-lang-go=\"`loadbalancerId`\" pulumi-lang-python=\"`loadbalancer_id`\" pulumi-lang-yaml=\"`loadbalancerId`\" pulumi-lang-java=\"`loadbalancerId`\">`loadbalancer_id`</span> or <span pulumi-lang-nodejs=\"`listenerId`\" pulumi-lang-dotnet=\"`ListenerId`\" pulumi-lang-go=\"`listenerId`\" pulumi-lang-python=\"`listener_id`\" pulumi-lang-yaml=\"`listenerId`\" pulumi-lang-java=\"`listenerId`\">`listener_id`</span> must be provided.\n","type":"string"},"name":{"description":"Human-readable name for the pool.\n","type":"string"},"persistences":{"description":"Omit this field to prevent session persistence. Indicates\nwhether connections in the same session will be processed by the same Pool\nmember or not. Changing this creates a new pool.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FLbPoolV2Persistence:LbPoolV2Persistence"},"type":"array"},"protocol":{"description":"The protocol - can either be TCP, UDP or HTTP.\nChanging this creates a new pool.\n\n> When a pool is added to a specific listener, the relationships between the load balancer protocol\nand the pool protocol are as follows. When the load balancer protocol is `UDP`, the pool protocol must be `UDP`.\nWhen the load balancer protocol is `TCP`, the pool protocol must be `TCP`.\nWhen the load balancer protocol is `HTTP` or `TERMINATED_HTTPS`, the pool protocol must be `HTTP`.\n","type":"string"},"region":{"type":"string"},"tenantId":{"description":"Required for admins. The UUID of the tenant who owns\nthe pool.  Only administrative users can specify a tenant UUID\nother than their own. Changing this creates a new pool.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FLbPoolV2Timeouts:LbPoolV2Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/lbPoolV3:LbPoolV3":{"description":"Up-to-date reference of API arguments for DLB pool you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-load-balancing/api-ref/apis_v3/backend_server_group)\n\nManages a Dedicated LB pool resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst lb = new opentelekomcloud.LbLoadbalancerV3(\"lb\", {\n    name: \"loadbalancer_1\",\n    routerId: routerId,\n    networkIds: [networkId],\n    availabilityZones: [availabilityZone],\n});\nconst pool = new opentelekomcloud.LbPoolV3(\"pool\", {\n    name: \"pool_1\",\n    loadbalancerId: lb.lbLoadbalancerV3Id,\n    lbAlgorithm: \"ROUND_ROBIN\",\n    protocol: \"TCP\",\n    sessionPersistence: {\n        type: \"SOURCE_IP\",\n        persistenceTimeout: 30,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nlb = opentelekomcloud.LbLoadbalancerV3(\"lb\",\n    name=\"loadbalancer_1\",\n    router_id=router_id,\n    network_ids=[network_id],\n    availability_zones=[availability_zone])\npool = opentelekomcloud.LbPoolV3(\"pool\",\n    name=\"pool_1\",\n    loadbalancer_id=lb.lb_loadbalancer_v3_id,\n    lb_algorithm=\"ROUND_ROBIN\",\n    protocol=\"TCP\",\n    session_persistence={\n        \"type\": \"SOURCE_IP\",\n        \"persistence_timeout\": 30,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var lb = new Opentelekomcloud.LbLoadbalancerV3(\"lb\", new()\n    {\n        Name = \"loadbalancer_1\",\n        RouterId = routerId,\n        NetworkIds = new[]\n        {\n            networkId,\n        },\n        AvailabilityZones = new[]\n        {\n            availabilityZone,\n        },\n    });\n\n    var pool = new Opentelekomcloud.LbPoolV3(\"pool\", new()\n    {\n        Name = \"pool_1\",\n        LoadbalancerId = lb.LbLoadbalancerV3Id,\n        LbAlgorithm = \"ROUND_ROBIN\",\n        Protocol = \"TCP\",\n        SessionPersistence = new Opentelekomcloud.Inputs.LbPoolV3SessionPersistenceArgs\n        {\n            Type = \"SOURCE_IP\",\n            PersistenceTimeout = 30,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tlb, err := opentelekomcloud.NewLbLoadbalancerV3(ctx, \"lb\", &opentelekomcloud.LbLoadbalancerV3Args{\n\t\t\tName:     pulumi.String(\"loadbalancer_1\"),\n\t\t\tRouterId: pulumi.Any(routerId),\n\t\t\tNetworkIds: pulumi.StringArray{\n\t\t\t\tnetworkId,\n\t\t\t},\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tavailabilityZone,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewLbPoolV3(ctx, \"pool\", &opentelekomcloud.LbPoolV3Args{\n\t\t\tName:           pulumi.String(\"pool_1\"),\n\t\t\tLoadbalancerId: lb.LbLoadbalancerV3Id,\n\t\t\tLbAlgorithm:    pulumi.String(\"ROUND_ROBIN\"),\n\t\t\tProtocol:       pulumi.String(\"TCP\"),\n\t\t\tSessionPersistence: &opentelekomcloud.LbPoolV3SessionPersistenceArgs{\n\t\t\t\tType:               pulumi.String(\"SOURCE_IP\"),\n\t\t\t\tPersistenceTimeout: pulumi.Float64(30),\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.opentelekomcloud.LbLoadbalancerV3;\nimport com.pulumi.opentelekomcloud.LbLoadbalancerV3Args;\nimport com.pulumi.opentelekomcloud.LbPoolV3;\nimport com.pulumi.opentelekomcloud.LbPoolV3Args;\nimport com.pulumi.opentelekomcloud.inputs.LbPoolV3SessionPersistenceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var lb = new LbLoadbalancerV3(\"lb\", LbLoadbalancerV3Args.builder()\n            .name(\"loadbalancer_1\")\n            .routerId(routerId)\n            .networkIds(networkId)\n            .availabilityZones(availabilityZone)\n            .build());\n\n        var pool = new LbPoolV3(\"pool\", LbPoolV3Args.builder()\n            .name(\"pool_1\")\n            .loadbalancerId(lb.lbLoadbalancerV3Id())\n            .lbAlgorithm(\"ROUND_ROBIN\")\n            .protocol(\"TCP\")\n            .sessionPersistence(LbPoolV3SessionPersistenceArgs.builder()\n                .type(\"SOURCE_IP\")\n                .persistenceTimeout(30.0)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  lb:\n    type: opentelekomcloud:LbLoadbalancerV3\n    properties:\n      name: loadbalancer_1\n      routerId: ${routerId}\n      networkIds:\n        - ${networkId}\n      availabilityZones:\n        - ${availabilityZone}\n  pool:\n    type: opentelekomcloud:LbPoolV3\n    properties:\n      name: pool_1\n      loadbalancerId: ${lb.lbLoadbalancerV3Id}\n      lbAlgorithm: ROUND_ROBIN\n      protocol: TCP\n      sessionPersistence:\n        type: SOURCE_IP\n        persistenceTimeout: '30'\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nPools can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/lbPoolV3:LbPoolV3 pool 7b80e108-1636-44e5-aece-986b0052b7dd\n```\n\n","inputProperties":{"description":{"description":"Provides supplementary information about the backend server group.\n","type":"string"},"lbAlgorithm":{"description":"Specifies the load balancing algorithm used by the load balancer to route requests to backend servers.\n\nThe value can be one of the following:\n* `ROUND_ROBIN`: weighted round-robin\n* `LEAST_CONNECTIONS`: weighted least connections\n* `SOURCE_IP`: source IP hash\n\nWhen the value is `SOURCE_IP`, the weights of backend servers are invalid.\n","type":"string"},"lbPoolV3Id":{"description":"Specifies the backend server group ID.\n","type":"string"},"listenerId":{"description":"Specifies the ID of the listener associated with the backend server group.\n","type":"string"},"loadbalancerId":{"description":"Specifies the ID of the associated load balancer.\n\n> Specify either <span pulumi-lang-nodejs=\"`listenerId`\" pulumi-lang-dotnet=\"`ListenerId`\" pulumi-lang-go=\"`listenerId`\" pulumi-lang-python=\"`listener_id`\" pulumi-lang-yaml=\"`listenerId`\" pulumi-lang-java=\"`listenerId`\">`listener_id`</span> or <span pulumi-lang-nodejs=\"`loadbalancerId`\" pulumi-lang-dotnet=\"`LoadbalancerId`\" pulumi-lang-go=\"`loadbalancerId`\" pulumi-lang-python=\"`loadbalancer_id`\" pulumi-lang-yaml=\"`loadbalancerId`\" pulumi-lang-java=\"`loadbalancerId`\">`loadbalancer_id`</span>, or **both** of them.\n","type":"string"},"memberDeletionProtection":{"type":"boolean"},"name":{"description":"Specifies the backend server group name.\n","type":"string"},"projectId":{"description":"Specifies the project ID.\n","type":"string"},"protocol":{"description":"Specifies the protocol used by the backend server group to receive requests.\n`TCP`, `UDP`, `HTTP`, `HTTPS`, and `QUIC` are supported.\n\n* For `UDP` listeners, the protocol of the backend server group must be `UDP`.\n* For `TCP` listeners, the protocol of the backend server group must be `TCP`.\n* For `HTTP` listeners, the protocol of the backend server group must be `HTTP`.\n* For `HTTPS` listeners, the protocol of the backend server group must be `HTTPS`.\n","type":"string"},"sessionPersistence":{"$ref":"#/types/opentelekomcloud:index%2FLbPoolV3SessionPersistence:LbPoolV3SessionPersistence","description":"Specifies whether to enable sticky sessions.\n"},"type":{"type":"string"},"vpcId":{"type":"string"}},"properties":{"description":{"description":"Provides supplementary information about the backend server group.\n","type":"string"},"ipVersion":{"description":"Specifies the IP version supported by the backend server group.\n","type":"string"},"lbAlgorithm":{"description":"Specifies the load balancing algorithm used by the load balancer to route requests to backend servers.\n\nThe value can be one of the following:\n* `ROUND_ROBIN`: weighted round-robin\n* `LEAST_CONNECTIONS`: weighted least connections\n* `SOURCE_IP`: source IP hash\n\nWhen the value is `SOURCE_IP`, the weights of backend servers are invalid.\n","type":"string"},"lbPoolV3Id":{"description":"Specifies the backend server group ID.\n","type":"string"},"listenerId":{"description":"Specifies the ID of the listener associated with the backend server group.\n","type":"string"},"loadbalancerId":{"description":"Specifies the ID of the associated load balancer.\n\n> Specify either <span pulumi-lang-nodejs=\"`listenerId`\" pulumi-lang-dotnet=\"`ListenerId`\" pulumi-lang-go=\"`listenerId`\" pulumi-lang-python=\"`listener_id`\" pulumi-lang-yaml=\"`listenerId`\" pulumi-lang-java=\"`listenerId`\">`listener_id`</span> or <span pulumi-lang-nodejs=\"`loadbalancerId`\" pulumi-lang-dotnet=\"`LoadbalancerId`\" pulumi-lang-go=\"`loadbalancerId`\" pulumi-lang-python=\"`loadbalancer_id`\" pulumi-lang-yaml=\"`loadbalancerId`\" pulumi-lang-java=\"`loadbalancerId`\">`loadbalancer_id`</span>, or **both** of them.\n","type":"string"},"memberDeletionProtection":{"type":"boolean"},"name":{"description":"Specifies the backend server group name.\n","type":"string"},"projectId":{"description":"Specifies the project ID.\n","type":"string"},"protocol":{"description":"Specifies the protocol used by the backend server group to receive requests.\n`TCP`, `UDP`, `HTTP`, `HTTPS`, and `QUIC` are supported.\n\n* For `UDP` listeners, the protocol of the backend server group must be `UDP`.\n* For `TCP` listeners, the protocol of the backend server group must be `TCP`.\n* For `HTTP` listeners, the protocol of the backend server group must be `HTTP`.\n* For `HTTPS` listeners, the protocol of the backend server group must be `HTTPS`.\n","type":"string"},"sessionPersistence":{"$ref":"#/types/opentelekomcloud:index%2FLbPoolV3SessionPersistence:LbPoolV3SessionPersistence","description":"Specifies whether to enable sticky sessions.\n"},"type":{"type":"string"},"vpcId":{"type":"string"}},"required":["description","ipVersion","lbAlgorithm","lbPoolV3Id","listenerId","loadbalancerId","memberDeletionProtection","name","projectId","protocol","type","vpcId"],"requiredInputs":["lbAlgorithm","protocol"],"stateInputs":{"description":"Input properties used for looking up and filtering LbPoolV3 resources.\n","properties":{"description":{"description":"Provides supplementary information about the backend server group.\n","type":"string"},"ipVersion":{"description":"Specifies the IP version supported by the backend server group.\n","type":"string"},"lbAlgorithm":{"description":"Specifies the load balancing algorithm used by the load balancer to route requests to backend servers.\n\nThe value can be one of the following:\n* `ROUND_ROBIN`: weighted round-robin\n* `LEAST_CONNECTIONS`: weighted least connections\n* `SOURCE_IP`: source IP hash\n\nWhen the value is `SOURCE_IP`, the weights of backend servers are invalid.\n","type":"string"},"lbPoolV3Id":{"description":"Specifies the backend server group ID.\n","type":"string"},"listenerId":{"description":"Specifies the ID of the listener associated with the backend server group.\n","type":"string"},"loadbalancerId":{"description":"Specifies the ID of the associated load balancer.\n\n> Specify either <span pulumi-lang-nodejs=\"`listenerId`\" pulumi-lang-dotnet=\"`ListenerId`\" pulumi-lang-go=\"`listenerId`\" pulumi-lang-python=\"`listener_id`\" pulumi-lang-yaml=\"`listenerId`\" pulumi-lang-java=\"`listenerId`\">`listener_id`</span> or <span pulumi-lang-nodejs=\"`loadbalancerId`\" pulumi-lang-dotnet=\"`LoadbalancerId`\" pulumi-lang-go=\"`loadbalancerId`\" pulumi-lang-python=\"`loadbalancer_id`\" pulumi-lang-yaml=\"`loadbalancerId`\" pulumi-lang-java=\"`loadbalancerId`\">`loadbalancer_id`</span>, or **both** of them.\n","type":"string"},"memberDeletionProtection":{"type":"boolean"},"name":{"description":"Specifies the backend server group name.\n","type":"string"},"projectId":{"description":"Specifies the project ID.\n","type":"string"},"protocol":{"description":"Specifies the protocol used by the backend server group to receive requests.\n`TCP`, `UDP`, `HTTP`, `HTTPS`, and `QUIC` are supported.\n\n* For `UDP` listeners, the protocol of the backend server group must be `UDP`.\n* For `TCP` listeners, the protocol of the backend server group must be `TCP`.\n* For `HTTP` listeners, the protocol of the backend server group must be `HTTP`.\n* For `HTTPS` listeners, the protocol of the backend server group must be `HTTPS`.\n","type":"string"},"sessionPersistence":{"$ref":"#/types/opentelekomcloud:index%2FLbPoolV3SessionPersistence:LbPoolV3SessionPersistence","description":"Specifies whether to enable sticky sessions.\n"},"type":{"type":"string"},"vpcId":{"type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/lbRuleV3:LbRuleV3":{"description":"Up-to-date reference of API arguments for DLB l7 rule you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-load-balancing/api-ref/apis_v3/forwarding_rule)\n\nManages a Dedicated Load Balancer Rule resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst _this = new opentelekomcloud.LbLoadbalancerV3(\"this\", {\n    routerId: routerId,\n    networkIds: [networkId],\n    availabilityZones: [az],\n});\nconst thisLbListenerV3 = new opentelekomcloud.LbListenerV3(\"this\", {\n    loadbalancerId: _this.lbLoadbalancerV3Id,\n    protocol: \"HTTP\",\n    protocolPort: 8080,\n});\nconst thisLbPoolV3 = new opentelekomcloud.LbPoolV3(\"this\", {\n    loadbalancerId: _this.lbLoadbalancerV3Id,\n    lbAlgorithm: \"ROUND_ROBIN\",\n    protocol: \"HTTP\",\n});\nconst thisLbPolicyV3 = new opentelekomcloud.LbPolicyV3(\"this\", {\n    action: \"REDIRECT_TO_POOL\",\n    listenerId: thisLbListenerV3.lbListenerV3Id,\n    redirectPoolId: thisLbPoolV3.lbPoolV3Id,\n    position: 37,\n});\nconst thisLbRuleV3 = new opentelekomcloud.LbRuleV3(\"this\", {\n    type: \"PATH\",\n    compareType: \"REGEX\",\n    value: \"^.+$\",\n    policyId: thisLbPolicyV3.lbPolicyV3Id,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nthis = opentelekomcloud.LbLoadbalancerV3(\"this\",\n    router_id=router_id,\n    network_ids=[network_id],\n    availability_zones=[az])\nthis_lb_listener_v3 = opentelekomcloud.LbListenerV3(\"this\",\n    loadbalancer_id=this.lb_loadbalancer_v3_id,\n    protocol=\"HTTP\",\n    protocol_port=8080)\nthis_lb_pool_v3 = opentelekomcloud.LbPoolV3(\"this\",\n    loadbalancer_id=this.lb_loadbalancer_v3_id,\n    lb_algorithm=\"ROUND_ROBIN\",\n    protocol=\"HTTP\")\nthis_lb_policy_v3 = opentelekomcloud.LbPolicyV3(\"this\",\n    action=\"REDIRECT_TO_POOL\",\n    listener_id=this_lb_listener_v3.lb_listener_v3_id,\n    redirect_pool_id=this_lb_pool_v3.lb_pool_v3_id,\n    position=37)\nthis_lb_rule_v3 = opentelekomcloud.LbRuleV3(\"this\",\n    type=\"PATH\",\n    compare_type=\"REGEX\",\n    value=\"^.+$\",\n    policy_id=this_lb_policy_v3.lb_policy_v3_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var @this = new Opentelekomcloud.LbLoadbalancerV3(\"this\", new()\n    {\n        RouterId = routerId,\n        NetworkIds = new[]\n        {\n            networkId,\n        },\n        AvailabilityZones = new[]\n        {\n            az,\n        },\n    });\n\n    var thisLbListenerV3 = new Opentelekomcloud.LbListenerV3(\"this\", new()\n    {\n        LoadbalancerId = @this.LbLoadbalancerV3Id,\n        Protocol = \"HTTP\",\n        ProtocolPort = 8080,\n    });\n\n    var thisLbPoolV3 = new Opentelekomcloud.LbPoolV3(\"this\", new()\n    {\n        LoadbalancerId = @this.LbLoadbalancerV3Id,\n        LbAlgorithm = \"ROUND_ROBIN\",\n        Protocol = \"HTTP\",\n    });\n\n    var thisLbPolicyV3 = new Opentelekomcloud.LbPolicyV3(\"this\", new()\n    {\n        Action = \"REDIRECT_TO_POOL\",\n        ListenerId = thisLbListenerV3.LbListenerV3Id,\n        RedirectPoolId = thisLbPoolV3.LbPoolV3Id,\n        Position = 37,\n    });\n\n    var thisLbRuleV3 = new Opentelekomcloud.LbRuleV3(\"this\", new()\n    {\n        Type = \"PATH\",\n        CompareType = \"REGEX\",\n        Value = \"^.+$\",\n        PolicyId = thisLbPolicyV3.LbPolicyV3Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthis, err := opentelekomcloud.NewLbLoadbalancerV3(ctx, \"this\", &opentelekomcloud.LbLoadbalancerV3Args{\n\t\t\tRouterId: pulumi.Any(routerId),\n\t\t\tNetworkIds: pulumi.StringArray{\n\t\t\t\tnetworkId,\n\t\t\t},\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\taz,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthisLbListenerV3, err := opentelekomcloud.NewLbListenerV3(ctx, \"this\", &opentelekomcloud.LbListenerV3Args{\n\t\t\tLoadbalancerId: this.LbLoadbalancerV3Id,\n\t\t\tProtocol:       pulumi.String(\"HTTP\"),\n\t\t\tProtocolPort:   pulumi.Float64(8080),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthisLbPoolV3, err := opentelekomcloud.NewLbPoolV3(ctx, \"this\", &opentelekomcloud.LbPoolV3Args{\n\t\t\tLoadbalancerId: this.LbLoadbalancerV3Id,\n\t\t\tLbAlgorithm:    pulumi.String(\"ROUND_ROBIN\"),\n\t\t\tProtocol:       pulumi.String(\"HTTP\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthisLbPolicyV3, err := opentelekomcloud.NewLbPolicyV3(ctx, \"this\", &opentelekomcloud.LbPolicyV3Args{\n\t\t\tAction:         pulumi.String(\"REDIRECT_TO_POOL\"),\n\t\t\tListenerId:     thisLbListenerV3.LbListenerV3Id,\n\t\t\tRedirectPoolId: thisLbPoolV3.LbPoolV3Id,\n\t\t\tPosition:       pulumi.Float64(37),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewLbRuleV3(ctx, \"this\", &opentelekomcloud.LbRuleV3Args{\n\t\t\tType:        pulumi.String(\"PATH\"),\n\t\t\tCompareType: pulumi.String(\"REGEX\"),\n\t\t\tValue:       pulumi.String(\"^.+$\"),\n\t\t\tPolicyId:    thisLbPolicyV3.LbPolicyV3Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.LbLoadbalancerV3;\nimport com.pulumi.opentelekomcloud.LbLoadbalancerV3Args;\nimport com.pulumi.opentelekomcloud.LbListenerV3;\nimport com.pulumi.opentelekomcloud.LbListenerV3Args;\nimport com.pulumi.opentelekomcloud.LbPoolV3;\nimport com.pulumi.opentelekomcloud.LbPoolV3Args;\nimport com.pulumi.opentelekomcloud.LbPolicyV3;\nimport com.pulumi.opentelekomcloud.LbPolicyV3Args;\nimport com.pulumi.opentelekomcloud.LbRuleV3;\nimport com.pulumi.opentelekomcloud.LbRuleV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var this_ = new LbLoadbalancerV3(\"this\", LbLoadbalancerV3Args.builder()\n            .routerId(routerId)\n            .networkIds(networkId)\n            .availabilityZones(az)\n            .build());\n\n        var thisLbListenerV3 = new LbListenerV3(\"thisLbListenerV3\", LbListenerV3Args.builder()\n            .loadbalancerId(this_.lbLoadbalancerV3Id())\n            .protocol(\"HTTP\")\n            .protocolPort(8080.0)\n            .build());\n\n        var thisLbPoolV3 = new LbPoolV3(\"thisLbPoolV3\", LbPoolV3Args.builder()\n            .loadbalancerId(this_.lbLoadbalancerV3Id())\n            .lbAlgorithm(\"ROUND_ROBIN\")\n            .protocol(\"HTTP\")\n            .build());\n\n        var thisLbPolicyV3 = new LbPolicyV3(\"thisLbPolicyV3\", LbPolicyV3Args.builder()\n            .action(\"REDIRECT_TO_POOL\")\n            .listenerId(thisLbListenerV3.lbListenerV3Id())\n            .redirectPoolId(thisLbPoolV3.lbPoolV3Id())\n            .position(37.0)\n            .build());\n\n        var thisLbRuleV3 = new LbRuleV3(\"thisLbRuleV3\", LbRuleV3Args.builder()\n            .type(\"PATH\")\n            .compareType(\"REGEX\")\n            .value(\"^.+$\")\n            .policyId(thisLbPolicyV3.lbPolicyV3Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  this:\n    type: opentelekomcloud:LbLoadbalancerV3\n    properties:\n      routerId: ${routerId}\n      networkIds:\n        - ${networkId}\n      availabilityZones:\n        - ${az}\n  thisLbListenerV3:\n    type: opentelekomcloud:LbListenerV3\n    name: this\n    properties:\n      loadbalancerId: ${this.lbLoadbalancerV3Id}\n      protocol: HTTP\n      protocolPort: 8080\n  thisLbPoolV3:\n    type: opentelekomcloud:LbPoolV3\n    name: this\n    properties:\n      loadbalancerId: ${this.lbLoadbalancerV3Id}\n      lbAlgorithm: ROUND_ROBIN\n      protocol: HTTP\n  thisLbPolicyV3:\n    type: opentelekomcloud:LbPolicyV3\n    name: this\n    properties:\n      action: REDIRECT_TO_POOL\n      listenerId: ${thisLbListenerV3.lbListenerV3Id}\n      redirectPoolId: ${thisLbPoolV3.lbPoolV3Id}\n      position: 37\n  thisLbRuleV3:\n    type: opentelekomcloud:LbRuleV3\n    name: this\n    properties:\n      type: PATH\n      compareType: REGEX\n      value: ^.+$\n      policyId: ${thisLbPolicyV3.lbPolicyV3Id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nRules can be imported using the `policy_id/rule_id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/lbRuleV3:LbRuleV3 this 8a7a79c2-cf17-4e65-b2ae-ddc8bfcf6c74/1bb93b8b-37a4-4b50-92cc-daa4c89d4e4c\n```\n\n","inputProperties":{"compareType":{"description":"Specifies how requests are matched with the domain name or URL.\nThe values can be: `EQUAL_TO`, `REGEX`, `STARTS_WITH`.\n\n->If <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is set to `HOST_NAME`, this parameter can only be set to `EQUAL_TO` (exact match).\nIf <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is set to `PATH`, this parameter can be set to `REGEX` (regular expression match),\n`STARTS_WITH` (prefix match), or `EQUAL_TO` (exact match).\n","type":"string"},"conditions":{"description":"Specifies the matching conditions of the forwarding rule.\nThis parameter is available only when <span pulumi-lang-nodejs=\"`advancedForwarding`\" pulumi-lang-dotnet=\"`AdvancedForwarding`\" pulumi-lang-go=\"`advancedForwarding`\" pulumi-lang-python=\"`advanced_forwarding`\" pulumi-lang-yaml=\"`advancedForwarding`\" pulumi-lang-java=\"`advancedForwarding`\">`advanced_forwarding`</span> is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\nNot available in `eu-nl`.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FLbRuleV3Condition:LbRuleV3Condition"},"type":"array"},"lbRuleV3Id":{"type":"string"},"policyId":{"description":"ID of the policy.\n","type":"string"},"projectId":{"description":"Required for admins. The UUID of the tenant who owns\nthe Policy. Only administrative users can specify a tenant UUID other than\ntheir own. Changing this creates a new Policy.\n","type":"string"},"type":{"description":"Specifies the match content. The value can be one of the following: `HOST_NAME`, `PATH`.\n","type":"string"},"value":{"description":"Specifies the value of the match item. For example, if a domain name is\nused for matching, value is the domain name.\n\n->If type is set to `HOST_NAME`, the value can contain letters, digits, hyphens `-`, and periods `.`\nand must start with a letter or digit. If you want to use a wildcard domain name, enter an asterisk `*`\nas the leftmost label of the domain name.\nIf type is set to `PATH` and <span pulumi-lang-nodejs=\"`compareType`\" pulumi-lang-dotnet=\"`CompareType`\" pulumi-lang-go=\"`compareType`\" pulumi-lang-python=\"`compare_type`\" pulumi-lang-yaml=\"`compareType`\" pulumi-lang-java=\"`compareType`\">`compare_type`</span> to `STARTS_WITH` or `EQUAL_TO`, the value must start with\na slash `/` and can contain only letters, digits, and special characters `_~';@^-%#&$.*+?,=!:|/()[]{}`.\n","type":"string"}},"properties":{"compareType":{"description":"Specifies how requests are matched with the domain name or URL.\nThe values can be: `EQUAL_TO`, `REGEX`, `STARTS_WITH`.\n\n->If <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is set to `HOST_NAME`, this parameter can only be set to `EQUAL_TO` (exact match).\nIf <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is set to `PATH`, this parameter can be set to `REGEX` (regular expression match),\n`STARTS_WITH` (prefix match), or `EQUAL_TO` (exact match).\n","type":"string"},"conditions":{"description":"Specifies the matching conditions of the forwarding rule.\nThis parameter is available only when <span pulumi-lang-nodejs=\"`advancedForwarding`\" pulumi-lang-dotnet=\"`AdvancedForwarding`\" pulumi-lang-go=\"`advancedForwarding`\" pulumi-lang-python=\"`advanced_forwarding`\" pulumi-lang-yaml=\"`advancedForwarding`\" pulumi-lang-java=\"`advancedForwarding`\">`advanced_forwarding`</span> is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\nNot available in `eu-nl`.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FLbRuleV3Condition:LbRuleV3Condition"},"type":"array"},"lbRuleV3Id":{"type":"string"},"policyId":{"description":"ID of the policy.\n","type":"string"},"projectId":{"description":"Required for admins. The UUID of the tenant who owns\nthe Policy. Only administrative users can specify a tenant UUID other than\ntheir own. Changing this creates a new Policy.\n","type":"string"},"ruleId":{"description":"ID of the policy rule.\n","type":"string"},"type":{"description":"Specifies the match content. The value can be one of the following: `HOST_NAME`, `PATH`.\n","type":"string"},"value":{"description":"Specifies the value of the match item. For example, if a domain name is\nused for matching, value is the domain name.\n\n->If type is set to `HOST_NAME`, the value can contain letters, digits, hyphens `-`, and periods `.`\nand must start with a letter or digit. If you want to use a wildcard domain name, enter an asterisk `*`\nas the leftmost label of the domain name.\nIf type is set to `PATH` and <span pulumi-lang-nodejs=\"`compareType`\" pulumi-lang-dotnet=\"`CompareType`\" pulumi-lang-go=\"`compareType`\" pulumi-lang-python=\"`compare_type`\" pulumi-lang-yaml=\"`compareType`\" pulumi-lang-java=\"`compareType`\">`compare_type`</span> to `STARTS_WITH` or `EQUAL_TO`, the value must start with\na slash `/` and can contain only letters, digits, and special characters `_~';@^-%#&$.*+?,=!:|/()[]{}`.\n","type":"string"}},"required":["compareType","lbRuleV3Id","policyId","projectId","ruleId","type","value"],"requiredInputs":["compareType","policyId","type","value"],"stateInputs":{"description":"Input properties used for looking up and filtering LbRuleV3 resources.\n","properties":{"compareType":{"description":"Specifies how requests are matched with the domain name or URL.\nThe values can be: `EQUAL_TO`, `REGEX`, `STARTS_WITH`.\n\n->If <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is set to `HOST_NAME`, this parameter can only be set to `EQUAL_TO` (exact match).\nIf <span pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\">`type`</span> is set to `PATH`, this parameter can be set to `REGEX` (regular expression match),\n`STARTS_WITH` (prefix match), or `EQUAL_TO` (exact match).\n","type":"string"},"conditions":{"description":"Specifies the matching conditions of the forwarding rule.\nThis parameter is available only when <span pulumi-lang-nodejs=\"`advancedForwarding`\" pulumi-lang-dotnet=\"`AdvancedForwarding`\" pulumi-lang-go=\"`advancedForwarding`\" pulumi-lang-python=\"`advanced_forwarding`\" pulumi-lang-yaml=\"`advancedForwarding`\" pulumi-lang-java=\"`advancedForwarding`\">`advanced_forwarding`</span> is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>.\nNot available in `eu-nl`.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FLbRuleV3Condition:LbRuleV3Condition"},"type":"array"},"lbRuleV3Id":{"type":"string"},"policyId":{"description":"ID of the policy.\n","type":"string"},"projectId":{"description":"Required for admins. The UUID of the tenant who owns\nthe Policy. Only administrative users can specify a tenant UUID other than\ntheir own. Changing this creates a new Policy.\n","type":"string"},"ruleId":{"description":"ID of the policy rule.\n","type":"string"},"type":{"description":"Specifies the match content. The value can be one of the following: `HOST_NAME`, `PATH`.\n","type":"string"},"value":{"description":"Specifies the value of the match item. For example, if a domain name is\nused for matching, value is the domain name.\n\n->If type is set to `HOST_NAME`, the value can contain letters, digits, hyphens `-`, and periods `.`\nand must start with a letter or digit. If you want to use a wildcard domain name, enter an asterisk `*`\nas the leftmost label of the domain name.\nIf type is set to `PATH` and <span pulumi-lang-nodejs=\"`compareType`\" pulumi-lang-dotnet=\"`CompareType`\" pulumi-lang-go=\"`compareType`\" pulumi-lang-python=\"`compare_type`\" pulumi-lang-yaml=\"`compareType`\" pulumi-lang-java=\"`compareType`\">`compare_type`</span> to `STARTS_WITH` or `EQUAL_TO`, the value must start with\na slash `/` and can contain only letters, digits, and special characters `_~';@^-%#&$.*+?,=!:|/()[]{}`.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/lbSecurityPolicyV3:LbSecurityPolicyV3":{"description":"Up-to-date reference of API arguments for DLB security policy you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-load-balancing/api-ref/apis_v3/security_policy)\n\nManages a Dedicated Load Balancer Security Policy resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Basic\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst policy1 = new opentelekomcloud.LbSecurityPolicyV3(\"policy_1\", {\n    name: \"elb-security-policy\",\n    description: \"This is security policy\",\n    protocols: [\n        \"TLSv1\",\n        \"TLSv1.1\",\n    ],\n    ciphers: [\n        \"ECDHE-ECDSA-AES128-SHA\",\n        \"ECDHE-RSA-AES128-SHA\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\npolicy1 = opentelekomcloud.LbSecurityPolicyV3(\"policy_1\",\n    name=\"elb-security-policy\",\n    description=\"This is security policy\",\n    protocols=[\n        \"TLSv1\",\n        \"TLSv1.1\",\n    ],\n    ciphers=[\n        \"ECDHE-ECDSA-AES128-SHA\",\n        \"ECDHE-RSA-AES128-SHA\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var policy1 = new Opentelekomcloud.LbSecurityPolicyV3(\"policy_1\", new()\n    {\n        Name = \"elb-security-policy\",\n        Description = \"This is security policy\",\n        Protocols = new[]\n        {\n            \"TLSv1\",\n            \"TLSv1.1\",\n        },\n        Ciphers = new[]\n        {\n            \"ECDHE-ECDSA-AES128-SHA\",\n            \"ECDHE-RSA-AES128-SHA\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewLbSecurityPolicyV3(ctx, \"policy_1\", &opentelekomcloud.LbSecurityPolicyV3Args{\n\t\t\tName:        pulumi.String(\"elb-security-policy\"),\n\t\t\tDescription: pulumi.String(\"This is security policy\"),\n\t\t\tProtocols: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"TLSv1\"),\n\t\t\t\tpulumi.String(\"TLSv1.1\"),\n\t\t\t},\n\t\t\tCiphers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ECDHE-ECDSA-AES128-SHA\"),\n\t\t\t\tpulumi.String(\"ECDHE-RSA-AES128-SHA\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.LbSecurityPolicyV3;\nimport com.pulumi.opentelekomcloud.LbSecurityPolicyV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var policy1 = new LbSecurityPolicyV3(\"policy1\", LbSecurityPolicyV3Args.builder()\n            .name(\"elb-security-policy\")\n            .description(\"This is security policy\")\n            .protocols(            \n                \"TLSv1\",\n                \"TLSv1.1\")\n            .ciphers(            \n                \"ECDHE-ECDSA-AES128-SHA\",\n                \"ECDHE-RSA-AES128-SHA\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  policy1:\n    type: opentelekomcloud:LbSecurityPolicyV3\n    name: policy_1\n    properties:\n      name: elb-security-policy\n      description: This is security policy\n      protocols:\n        - TLSv1\n        - TLSv1.1\n      ciphers:\n        - ECDHE-ECDSA-AES128-SHA\n        - ECDHE-RSA-AES128-SHA\n```\n<!--End PulumiCodeChooser -->\n\n\n### Security Policy Assigned To ELB Listener\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst vpcV1 = new opentelekomcloud.VpcV1(\"vpc_v1\", {\n    name: vpcName,\n    cidr: vpcCidr,\n});\nconst subnetV1 = new opentelekomcloud.VpcSubnetV1(\"subnet_v1\", {\n    name: subnetName,\n    cidr: subnetCidr,\n    vpcId: vpcV1.vpcV1Id,\n    gatewayIp: subnetGatewayIp,\n    ntpAddresses: \"10.100.0.33,10.100.0.34\",\n});\nconst loadbalancer1 = new opentelekomcloud.LbLoadbalancerV3(\"loadbalancer_1\", {\n    name: \"loadbalancer_1\",\n    routerId: subnetV1.vpcId,\n    networkIds: [subnetV1.networkId],\n    availabilityZones: [az],\n});\nconst certificate1 = new opentelekomcloud.LbCertificateV3(\"certificate_1\", {\n    name: \"certificate_1\",\n    type: \"server\",\n    privateKey: privateKey,\n    certificate: certificate,\n});\nconst policy1 = new opentelekomcloud.LbSecurityPolicyV3(\"policy_1\", {\n    name: \"security-policy\",\n    protocols: [\n        \"TLSv1\",\n        \"TLSv1.1\",\n    ],\n    ciphers: [\n        \"ECDHE-ECDSA-AES128-SHA\",\n        \"ECDHE-RSA-AES128-SHA\",\n    ],\n});\nconst listener1 = new opentelekomcloud.LbListenerV3(\"listener_1\", {\n    name: \"listener_1\",\n    description: \"some interesting description\",\n    loadbalancerId: loadbalancer1.lbLoadbalancerV3Id,\n    protocol: \"HTTPS\",\n    protocolPort: 443,\n    defaultTlsContainerRef: certificate1.lbCertificateV3Id,\n    securityPolicyId: policy1.lbSecurityPolicyV3Id,\n    advancedForwarding: true,\n    sniMatchAlgo: \"wildcard\",\n    insertHeaders: {\n        forwardedHost: true,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nvpc_v1 = opentelekomcloud.VpcV1(\"vpc_v1\",\n    name=vpc_name,\n    cidr=vpc_cidr)\nsubnet_v1 = opentelekomcloud.VpcSubnetV1(\"subnet_v1\",\n    name=subnet_name,\n    cidr=subnet_cidr,\n    vpc_id=vpc_v1.vpc_v1_id,\n    gateway_ip=subnet_gateway_ip,\n    ntp_addresses=\"10.100.0.33,10.100.0.34\")\nloadbalancer1 = opentelekomcloud.LbLoadbalancerV3(\"loadbalancer_1\",\n    name=\"loadbalancer_1\",\n    router_id=subnet_v1.vpc_id,\n    network_ids=[subnet_v1.network_id],\n    availability_zones=[az])\ncertificate1 = opentelekomcloud.LbCertificateV3(\"certificate_1\",\n    name=\"certificate_1\",\n    type=\"server\",\n    private_key=private_key,\n    certificate=certificate)\npolicy1 = opentelekomcloud.LbSecurityPolicyV3(\"policy_1\",\n    name=\"security-policy\",\n    protocols=[\n        \"TLSv1\",\n        \"TLSv1.1\",\n    ],\n    ciphers=[\n        \"ECDHE-ECDSA-AES128-SHA\",\n        \"ECDHE-RSA-AES128-SHA\",\n    ])\nlistener1 = opentelekomcloud.LbListenerV3(\"listener_1\",\n    name=\"listener_1\",\n    description=\"some interesting description\",\n    loadbalancer_id=loadbalancer1.lb_loadbalancer_v3_id,\n    protocol=\"HTTPS\",\n    protocol_port=443,\n    default_tls_container_ref=certificate1.lb_certificate_v3_id,\n    security_policy_id=policy1.lb_security_policy_v3_id,\n    advanced_forwarding=True,\n    sni_match_algo=\"wildcard\",\n    insert_headers={\n        \"forwarded_host\": True,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var vpcV1 = new Opentelekomcloud.VpcV1(\"vpc_v1\", new()\n    {\n        Name = vpcName,\n        Cidr = vpcCidr,\n    });\n\n    var subnetV1 = new Opentelekomcloud.VpcSubnetV1(\"subnet_v1\", new()\n    {\n        Name = subnetName,\n        Cidr = subnetCidr,\n        VpcId = vpcV1.VpcV1Id,\n        GatewayIp = subnetGatewayIp,\n        NtpAddresses = \"10.100.0.33,10.100.0.34\",\n    });\n\n    var loadbalancer1 = new Opentelekomcloud.LbLoadbalancerV3(\"loadbalancer_1\", new()\n    {\n        Name = \"loadbalancer_1\",\n        RouterId = subnetV1.VpcId,\n        NetworkIds = new[]\n        {\n            subnetV1.NetworkId,\n        },\n        AvailabilityZones = new[]\n        {\n            az,\n        },\n    });\n\n    var certificate1 = new Opentelekomcloud.LbCertificateV3(\"certificate_1\", new()\n    {\n        Name = \"certificate_1\",\n        Type = \"server\",\n        PrivateKey = privateKey,\n        Certificate = certificate,\n    });\n\n    var policy1 = new Opentelekomcloud.LbSecurityPolicyV3(\"policy_1\", new()\n    {\n        Name = \"security-policy\",\n        Protocols = new[]\n        {\n            \"TLSv1\",\n            \"TLSv1.1\",\n        },\n        Ciphers = new[]\n        {\n            \"ECDHE-ECDSA-AES128-SHA\",\n            \"ECDHE-RSA-AES128-SHA\",\n        },\n    });\n\n    var listener1 = new Opentelekomcloud.LbListenerV3(\"listener_1\", new()\n    {\n        Name = \"listener_1\",\n        Description = \"some interesting description\",\n        LoadbalancerId = loadbalancer1.LbLoadbalancerV3Id,\n        Protocol = \"HTTPS\",\n        ProtocolPort = 443,\n        DefaultTlsContainerRef = certificate1.LbCertificateV3Id,\n        SecurityPolicyId = policy1.LbSecurityPolicyV3Id,\n        AdvancedForwarding = true,\n        SniMatchAlgo = \"wildcard\",\n        InsertHeaders = new Opentelekomcloud.Inputs.LbListenerV3InsertHeadersArgs\n        {\n            ForwardedHost = true,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpcV1, err := opentelekomcloud.NewVpcV1(ctx, \"vpc_v1\", &opentelekomcloud.VpcV1Args{\n\t\t\tName: pulumi.Any(vpcName),\n\t\t\tCidr: pulumi.Any(vpcCidr),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnetV1, err := opentelekomcloud.NewVpcSubnetV1(ctx, \"subnet_v1\", &opentelekomcloud.VpcSubnetV1Args{\n\t\t\tName:         pulumi.Any(subnetName),\n\t\t\tCidr:         pulumi.Any(subnetCidr),\n\t\t\tVpcId:        vpcV1.VpcV1Id,\n\t\t\tGatewayIp:    pulumi.Any(subnetGatewayIp),\n\t\t\tNtpAddresses: pulumi.String(\"10.100.0.33,10.100.0.34\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tloadbalancer1, err := opentelekomcloud.NewLbLoadbalancerV3(ctx, \"loadbalancer_1\", &opentelekomcloud.LbLoadbalancerV3Args{\n\t\t\tName:     pulumi.String(\"loadbalancer_1\"),\n\t\t\tRouterId: subnetV1.VpcId,\n\t\t\tNetworkIds: pulumi.StringArray{\n\t\t\t\tsubnetV1.NetworkId,\n\t\t\t},\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\taz,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcertificate1, err := opentelekomcloud.NewLbCertificateV3(ctx, \"certificate_1\", &opentelekomcloud.LbCertificateV3Args{\n\t\t\tName:        pulumi.String(\"certificate_1\"),\n\t\t\tType:        pulumi.String(\"server\"),\n\t\t\tPrivateKey:  pulumi.Any(privateKey),\n\t\t\tCertificate: pulumi.Any(certificate),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpolicy1, err := opentelekomcloud.NewLbSecurityPolicyV3(ctx, \"policy_1\", &opentelekomcloud.LbSecurityPolicyV3Args{\n\t\t\tName: pulumi.String(\"security-policy\"),\n\t\t\tProtocols: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"TLSv1\"),\n\t\t\t\tpulumi.String(\"TLSv1.1\"),\n\t\t\t},\n\t\t\tCiphers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ECDHE-ECDSA-AES128-SHA\"),\n\t\t\t\tpulumi.String(\"ECDHE-RSA-AES128-SHA\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewLbListenerV3(ctx, \"listener_1\", &opentelekomcloud.LbListenerV3Args{\n\t\t\tName:                   pulumi.String(\"listener_1\"),\n\t\t\tDescription:            pulumi.String(\"some interesting description\"),\n\t\t\tLoadbalancerId:         loadbalancer1.LbLoadbalancerV3Id,\n\t\t\tProtocol:               pulumi.String(\"HTTPS\"),\n\t\t\tProtocolPort:           pulumi.Float64(443),\n\t\t\tDefaultTlsContainerRef: certificate1.LbCertificateV3Id,\n\t\t\tSecurityPolicyId:       policy1.LbSecurityPolicyV3Id,\n\t\t\tAdvancedForwarding:     pulumi.Bool(true),\n\t\t\tSniMatchAlgo:           pulumi.String(\"wildcard\"),\n\t\t\tInsertHeaders: &opentelekomcloud.LbListenerV3InsertHeadersArgs{\n\t\t\t\tForwardedHost: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.VpcV1;\nimport com.pulumi.opentelekomcloud.VpcV1Args;\nimport com.pulumi.opentelekomcloud.VpcSubnetV1;\nimport com.pulumi.opentelekomcloud.VpcSubnetV1Args;\nimport com.pulumi.opentelekomcloud.LbLoadbalancerV3;\nimport com.pulumi.opentelekomcloud.LbLoadbalancerV3Args;\nimport com.pulumi.opentelekomcloud.LbCertificateV3;\nimport com.pulumi.opentelekomcloud.LbCertificateV3Args;\nimport com.pulumi.opentelekomcloud.LbSecurityPolicyV3;\nimport com.pulumi.opentelekomcloud.LbSecurityPolicyV3Args;\nimport com.pulumi.opentelekomcloud.LbListenerV3;\nimport com.pulumi.opentelekomcloud.LbListenerV3Args;\nimport com.pulumi.opentelekomcloud.inputs.LbListenerV3InsertHeadersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var vpcV1 = new VpcV1(\"vpcV1\", VpcV1Args.builder()\n            .name(vpcName)\n            .cidr(vpcCidr)\n            .build());\n\n        var subnetV1 = new VpcSubnetV1(\"subnetV1\", VpcSubnetV1Args.builder()\n            .name(subnetName)\n            .cidr(subnetCidr)\n            .vpcId(vpcV1.vpcV1Id())\n            .gatewayIp(subnetGatewayIp)\n            .ntpAddresses(\"10.100.0.33,10.100.0.34\")\n            .build());\n\n        var loadbalancer1 = new LbLoadbalancerV3(\"loadbalancer1\", LbLoadbalancerV3Args.builder()\n            .name(\"loadbalancer_1\")\n            .routerId(subnetV1.vpcId())\n            .networkIds(subnetV1.networkId())\n            .availabilityZones(az)\n            .build());\n\n        var certificate1 = new LbCertificateV3(\"certificate1\", LbCertificateV3Args.builder()\n            .name(\"certificate_1\")\n            .type(\"server\")\n            .privateKey(privateKey)\n            .certificate(certificate)\n            .build());\n\n        var policy1 = new LbSecurityPolicyV3(\"policy1\", LbSecurityPolicyV3Args.builder()\n            .name(\"security-policy\")\n            .protocols(            \n                \"TLSv1\",\n                \"TLSv1.1\")\n            .ciphers(            \n                \"ECDHE-ECDSA-AES128-SHA\",\n                \"ECDHE-RSA-AES128-SHA\")\n            .build());\n\n        var listener1 = new LbListenerV3(\"listener1\", LbListenerV3Args.builder()\n            .name(\"listener_1\")\n            .description(\"some interesting description\")\n            .loadbalancerId(loadbalancer1.lbLoadbalancerV3Id())\n            .protocol(\"HTTPS\")\n            .protocolPort(443.0)\n            .defaultTlsContainerRef(certificate1.lbCertificateV3Id())\n            .securityPolicyId(policy1.lbSecurityPolicyV3Id())\n            .advancedForwarding(true)\n            .sniMatchAlgo(\"wildcard\")\n            .insertHeaders(LbListenerV3InsertHeadersArgs.builder()\n                .forwardedHost(true)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpcV1:\n    type: opentelekomcloud:VpcV1\n    name: vpc_v1\n    properties:\n      name: ${vpcName}\n      cidr: ${vpcCidr}\n  subnetV1:\n    type: opentelekomcloud:VpcSubnetV1\n    name: subnet_v1\n    properties:\n      name: ${subnetName}\n      cidr: ${subnetCidr}\n      vpcId: ${vpcV1.vpcV1Id}\n      gatewayIp: ${subnetGatewayIp}\n      ntpAddresses: 10.100.0.33,10.100.0.34\n  loadbalancer1:\n    type: opentelekomcloud:LbLoadbalancerV3\n    name: loadbalancer_1\n    properties:\n      name: loadbalancer_1\n      routerId: ${subnetV1.vpcId}\n      networkIds:\n        - ${subnetV1.networkId}\n      availabilityZones:\n        - ${az}\n  certificate1:\n    type: opentelekomcloud:LbCertificateV3\n    name: certificate_1\n    properties:\n      name: certificate_1\n      type: server\n      privateKey: ${privateKey}\n      certificate: ${certificate}\n  listener1:\n    type: opentelekomcloud:LbListenerV3\n    name: listener_1\n    properties:\n      name: listener_1\n      description: some interesting description\n      loadbalancerId: ${loadbalancer1.lbLoadbalancerV3Id}\n      protocol: HTTPS\n      protocolPort: 443\n      defaultTlsContainerRef: ${certificate1.lbCertificateV3Id}\n      securityPolicyId: ${policy1.lbSecurityPolicyV3Id}\n      advancedForwarding: true\n      sniMatchAlgo: wildcard\n      insertHeaders:\n        forwardedHost: true\n  policy1:\n    type: opentelekomcloud:LbSecurityPolicyV3\n    name: policy_1\n    properties:\n      name: security-policy\n      protocols:\n        - TLSv1\n        - TLSv1.1\n      ciphers:\n        - ECDHE-ECDSA-AES128-SHA\n        - ECDHE-RSA-AES128-SHA\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nLoad Balancer Policy can be imported using the Policy ID, e.g.:\n\n```sh\n$ pulumi import opentelekomcloud:index/lbSecurityPolicyV3:LbSecurityPolicyV3 this 8a7a79c2-cf17-4e65-b2ae-ddc8bfcf6c74\n```\n\n","inputProperties":{"ciphers":{"description":"Lists the cipher suites supported by the custom security policy.\n* The protocol and cipher suite must match. At least one cipher suite must match the protocol.\n* Possible values:\n`ECDHE-RSA-AES256-GCM-SHA384`, `ECDHE-RSA-AES128-GCM-SHA256`,`ECDHE-ECDSA-AES256-GCM-SHA384`,\n`ECDHE-ECDSA-AES128-GCM-SHA256`, `AES128-GCM-SHA256`, `AES256-GCM-SHA384`, `ECDHE-ECDSA-AES128-SHA256`,\n`ECDHE-RSA-AES128-SHA256`, `AES128-SHA256,AES256-SHA256`, `ECDHE-ECDSA-AES256-SHA384`, `ECDHE-RSA-AES256-SHA384`,\n`ECDHE-ECDSA-AES128-SHA`, `ECDHE-RSA-AES128-SHA`, `ECDHE-RSA-AES256-SHA`, `ECDHE-ECDSA-AES256-SHA`,\n`AES128-SHA`, `AES256-SHA`, `CAMELLIA128-SHA`, `DES-CBC3-SHA`, `CAMELLIA256-SHA`, `ECDHE-RSA-CHACHA20-POLY1305`,\n`ECDHE-ECDSA-CHACHA20-POLY1305`, `TLS_AES_128_GCM_SHA256`, `TLS_AES_256_GCM_SHA384`, `TLS_CHACHA20_POLY1305_SHA256`,\n`TLS_AES_128_CCM_SHA256`, `TLS_AES_128_CCM_8_SHA256`.\n","items":{"type":"string"},"type":"array"},"description":{"description":"Provides supplementary information about the security policy.\n","type":"string"},"lbSecurityPolicyV3Id":{"description":"The unique ID for the policy.\n","type":"string"},"name":{"description":"Specifies the security policy name.\n","type":"string"},"protocols":{"description":"Lists the TLS protocols supported by the custom security policy.\n* Possible values: `TLSv1`, `TLSv1.1`, `TLSv1.2`, and `TLSv1.3`.\n","items":{"type":"string"},"type":"array"}},"properties":{"ciphers":{"description":"Lists the cipher suites supported by the custom security policy.\n* The protocol and cipher suite must match. At least one cipher suite must match the protocol.\n* Possible values:\n`ECDHE-RSA-AES256-GCM-SHA384`, `ECDHE-RSA-AES128-GCM-SHA256`,`ECDHE-ECDSA-AES256-GCM-SHA384`,\n`ECDHE-ECDSA-AES128-GCM-SHA256`, `AES128-GCM-SHA256`, `AES256-GCM-SHA384`, `ECDHE-ECDSA-AES128-SHA256`,\n`ECDHE-RSA-AES128-SHA256`, `AES128-SHA256,AES256-SHA256`, `ECDHE-ECDSA-AES256-SHA384`, `ECDHE-RSA-AES256-SHA384`,\n`ECDHE-ECDSA-AES128-SHA`, `ECDHE-RSA-AES128-SHA`, `ECDHE-RSA-AES256-SHA`, `ECDHE-ECDSA-AES256-SHA`,\n`AES128-SHA`, `AES256-SHA`, `CAMELLIA128-SHA`, `DES-CBC3-SHA`, `CAMELLIA256-SHA`, `ECDHE-RSA-CHACHA20-POLY1305`,\n`ECDHE-ECDSA-CHACHA20-POLY1305`, `TLS_AES_128_GCM_SHA256`, `TLS_AES_256_GCM_SHA384`, `TLS_CHACHA20_POLY1305_SHA256`,\n`TLS_AES_128_CCM_SHA256`, `TLS_AES_128_CCM_8_SHA256`.\n","items":{"type":"string"},"type":"array"},"createdAt":{"description":"The time when the custom security policy was created.\n","type":"string"},"description":{"description":"Provides supplementary information about the security policy.\n","type":"string"},"lbSecurityPolicyV3Id":{"description":"The unique ID for the policy.\n","type":"string"},"listenerIds":{"items":{"type":"string"},"type":"array"},"name":{"description":"Specifies the security policy name.\n","type":"string"},"projectId":{"description":"The project ID of the custom security policy.\n","type":"string"},"protocols":{"description":"Lists the TLS protocols supported by the custom security policy.\n* Possible values: `TLSv1`, `TLSv1.1`, `TLSv1.2`, and `TLSv1.3`.\n","items":{"type":"string"},"type":"array"},"updatedAt":{"description":"The time when the custom security policy was updated.\n","type":"string"}},"required":["ciphers","createdAt","description","lbSecurityPolicyV3Id","listenerIds","name","projectId","protocols","updatedAt"],"requiredInputs":["ciphers","protocols"],"stateInputs":{"description":"Input properties used for looking up and filtering LbSecurityPolicyV3 resources.\n","properties":{"ciphers":{"description":"Lists the cipher suites supported by the custom security policy.\n* The protocol and cipher suite must match. At least one cipher suite must match the protocol.\n* Possible values:\n`ECDHE-RSA-AES256-GCM-SHA384`, `ECDHE-RSA-AES128-GCM-SHA256`,`ECDHE-ECDSA-AES256-GCM-SHA384`,\n`ECDHE-ECDSA-AES128-GCM-SHA256`, `AES128-GCM-SHA256`, `AES256-GCM-SHA384`, `ECDHE-ECDSA-AES128-SHA256`,\n`ECDHE-RSA-AES128-SHA256`, `AES128-SHA256,AES256-SHA256`, `ECDHE-ECDSA-AES256-SHA384`, `ECDHE-RSA-AES256-SHA384`,\n`ECDHE-ECDSA-AES128-SHA`, `ECDHE-RSA-AES128-SHA`, `ECDHE-RSA-AES256-SHA`, `ECDHE-ECDSA-AES256-SHA`,\n`AES128-SHA`, `AES256-SHA`, `CAMELLIA128-SHA`, `DES-CBC3-SHA`, `CAMELLIA256-SHA`, `ECDHE-RSA-CHACHA20-POLY1305`,\n`ECDHE-ECDSA-CHACHA20-POLY1305`, `TLS_AES_128_GCM_SHA256`, `TLS_AES_256_GCM_SHA384`, `TLS_CHACHA20_POLY1305_SHA256`,\n`TLS_AES_128_CCM_SHA256`, `TLS_AES_128_CCM_8_SHA256`.\n","items":{"type":"string"},"type":"array"},"createdAt":{"description":"The time when the custom security policy was created.\n","type":"string"},"description":{"description":"Provides supplementary information about the security policy.\n","type":"string"},"lbSecurityPolicyV3Id":{"description":"The unique ID for the policy.\n","type":"string"},"listenerIds":{"items":{"type":"string"},"type":"array"},"name":{"description":"Specifies the security policy name.\n","type":"string"},"projectId":{"description":"The project ID of the custom security policy.\n","type":"string"},"protocols":{"description":"Lists the TLS protocols supported by the custom security policy.\n* Possible values: `TLSv1`, `TLSv1.1`, `TLSv1.2`, and `TLSv1.3`.\n","items":{"type":"string"},"type":"array"},"updatedAt":{"description":"The time when the custom security policy was updated.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/lbWhitelistV2:LbWhitelistV2":{"description":"Up-to-date reference of API arguments for ELB whitelist you can get at\n[documentation portal](https://docs.otc.t-systems.com/elastic-load-balancing/api-ref/apis_v2.0/whitelist)\n\nManages an Enhanced LB whitelist resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst whitelist1 = new opentelekomcloud.LbWhitelistV2(\"whitelist_1\", {\n    enableWhitelist: true,\n    whitelist: \"192.168.11.1,192.168.0.1/24,192.168.201.18/8\",\n    listenerId: \"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nwhitelist1 = opentelekomcloud.LbWhitelistV2(\"whitelist_1\",\n    enable_whitelist=True,\n    whitelist=\"192.168.11.1,192.168.0.1/24,192.168.201.18/8\",\n    listener_id=\"d9415786-5f1a-428b-b35f-2f1523e146d2\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var whitelist1 = new Opentelekomcloud.LbWhitelistV2(\"whitelist_1\", new()\n    {\n        EnableWhitelist = true,\n        Whitelist = \"192.168.11.1,192.168.0.1/24,192.168.201.18/8\",\n        ListenerId = \"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewLbWhitelistV2(ctx, \"whitelist_1\", &opentelekomcloud.LbWhitelistV2Args{\n\t\t\tEnableWhitelist: pulumi.Bool(true),\n\t\t\tWhitelist:       pulumi.String(\"192.168.11.1,192.168.0.1/24,192.168.201.18/8\"),\n\t\t\tListenerId:      pulumi.String(\"d9415786-5f1a-428b-b35f-2f1523e146d2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.LbWhitelistV2;\nimport com.pulumi.opentelekomcloud.LbWhitelistV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var whitelist1 = new LbWhitelistV2(\"whitelist1\", LbWhitelistV2Args.builder()\n            .enableWhitelist(true)\n            .whitelist(\"192.168.11.1,192.168.0.1/24,192.168.201.18/8\")\n            .listenerId(\"d9415786-5f1a-428b-b35f-2f1523e146d2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  whitelist1:\n    type: opentelekomcloud:LbWhitelistV2\n    name: whitelist_1\n    properties:\n      enableWhitelist: true\n      whitelist: 192.168.11.1,192.168.0.1/24,192.168.201.18/8\n      listenerId: d9415786-5f1a-428b-b35f-2f1523e146d2\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nLoad Balancer Whitelist can be imported using the Whitelist ID, e.g.:\n\n```sh\n$ pulumi import opentelekomcloud:index/lbWhitelistV2:LbWhitelistV2 this 8a7a79c2-cf17-4e65-b2ae-ddc8bfcf6c74\n```\n\n","inputProperties":{"enableWhitelist":{"description":"Specify whether to enable access control.\n","type":"boolean"},"lbWhitelistV2Id":{"description":"The unique ID for the whitelist.\n","type":"string"},"listenerId":{"description":"The Listener ID that the whitelist will be associated with. Changing this creates a new whitelist.\n","type":"string"},"tenantId":{"description":"Required for admins. The UUID of the tenant who owns\nthe whitelist.  Only administrative users can specify a tenant UUID\nother than their own. Changing this creates a new whitelist.\n","type":"string"},"whitelist":{"description":"Specifies the IP addresses in the whitelist. Use commas(,) to separate\nthe multiple IP addresses.\n","type":"string"}},"properties":{"enableWhitelist":{"description":"Specify whether to enable access control.\n","type":"boolean"},"lbWhitelistV2Id":{"description":"The unique ID for the whitelist.\n","type":"string"},"listenerId":{"description":"The Listener ID that the whitelist will be associated with. Changing this creates a new whitelist.\n","type":"string"},"tenantId":{"description":"Required for admins. The UUID of the tenant who owns\nthe whitelist.  Only administrative users can specify a tenant UUID\nother than their own. Changing this creates a new whitelist.\n","type":"string"},"whitelist":{"description":"Specifies the IP addresses in the whitelist. Use commas(,) to separate\nthe multiple IP addresses.\n","type":"string"}},"required":["lbWhitelistV2Id","listenerId","tenantId"],"requiredInputs":["listenerId"],"stateInputs":{"description":"Input properties used for looking up and filtering LbWhitelistV2 resources.\n","properties":{"enableWhitelist":{"description":"Specify whether to enable access control.\n","type":"boolean"},"lbWhitelistV2Id":{"description":"The unique ID for the whitelist.\n","type":"string"},"listenerId":{"description":"The Listener ID that the whitelist will be associated with. Changing this creates a new whitelist.\n","type":"string"},"tenantId":{"description":"Required for admins. The UUID of the tenant who owns\nthe whitelist.  Only administrative users can specify a tenant UUID\nother than their own. Changing this creates a new whitelist.\n","type":"string"},"whitelist":{"description":"Specifies the IP addresses in the whitelist. Use commas(,) to separate\nthe multiple IP addresses.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/logtankGroupV2:LogtankGroupV2":{"inputProperties":{"groupName":{"type":"string"},"logtankGroupV2Id":{"type":"string"},"ttlInDays":{"type":"number"}},"properties":{"creationTime":{"type":"number"},"groupName":{"type":"string"},"logtankGroupV2Id":{"type":"string"},"ttlInDays":{"type":"number"}},"required":["creationTime","groupName","logtankGroupV2Id","ttlInDays"],"requiredInputs":["groupName","ttlInDays"],"stateInputs":{"description":"Input properties used for looking up and filtering LogtankGroupV2 resources.\n","properties":{"creationTime":{"type":"number"},"groupName":{"type":"string"},"logtankGroupV2Id":{"type":"string"},"ttlInDays":{"type":"number"}},"type":"object"},"type":"object"},"opentelekomcloud:index/logtankTopicV2:LogtankTopicV2":{"inputProperties":{"groupId":{"type":"string"},"logtankTopicV2Id":{"type":"string"},"topicName":{"type":"string"}},"properties":{"creationTime":{"type":"number"},"groupId":{"type":"string"},"logtankTopicV2Id":{"type":"string"},"topicName":{"type":"string"}},"required":["creationTime","groupId","logtankTopicV2Id","topicName"],"requiredInputs":["groupId","topicName"],"stateInputs":{"description":"Input properties used for looking up and filtering LogtankTopicV2 resources.\n","properties":{"creationTime":{"type":"number"},"groupId":{"type":"string"},"logtankTopicV2Id":{"type":"string"},"topicName":{"type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/logtankTransferV2:LogtankTransferV2":{"inputProperties":{"dirPrefixName":{"type":"string"},"logGroupId":{"type":"string"},"logStreamIds":{"items":{"type":"string"},"type":"array"},"logtankTransferV2Id":{"type":"string"},"obsBucketName":{"type":"string"},"period":{"type":"number"},"periodUnit":{"type":"string"},"prefixName":{"type":"string"},"storageFormat":{"type":"string"},"switchOn":{"type":"boolean"}},"properties":{"createTime":{"type":"number"},"dirPrefixName":{"type":"string"},"logGroupId":{"type":"string"},"logGroupName":{"type":"string"},"logStreamIds":{"items":{"type":"string"},"type":"array"},"logTransferMode":{"type":"string"},"logTransferType":{"type":"string"},"logtankTransferV2Id":{"type":"string"},"obsBucketName":{"type":"string"},"obsEncryptionEnable":{"type":"boolean"},"obsEncryptionId":{"type":"string"},"period":{"type":"number"},"periodUnit":{"type":"string"},"prefixName":{"type":"string"},"status":{"type":"string"},"storageFormat":{"type":"string"},"switchOn":{"type":"boolean"}},"required":["createTime","dirPrefixName","logGroupId","logGroupName","logStreamIds","logTransferMode","logTransferType","logtankTransferV2Id","obsBucketName","obsEncryptionEnable","obsEncryptionId","period","periodUnit","prefixName","status","storageFormat"],"requiredInputs":["logGroupId","logStreamIds","obsBucketName","period","periodUnit","storageFormat"],"stateInputs":{"description":"Input properties used for looking up and filtering LogtankTransferV2 resources.\n","properties":{"createTime":{"type":"number"},"dirPrefixName":{"type":"string"},"logGroupId":{"type":"string"},"logGroupName":{"type":"string"},"logStreamIds":{"items":{"type":"string"},"type":"array"},"logTransferMode":{"type":"string"},"logTransferType":{"type":"string"},"logtankTransferV2Id":{"type":"string"},"obsBucketName":{"type":"string"},"obsEncryptionEnable":{"type":"boolean"},"obsEncryptionId":{"type":"string"},"period":{"type":"number"},"periodUnit":{"type":"string"},"prefixName":{"type":"string"},"status":{"type":"string"},"storageFormat":{"type":"string"},"switchOn":{"type":"boolean"}},"type":"object"},"type":"object"},"opentelekomcloud:index/ltsCceAccessV3:LtsCceAccessV3":{"description":"Manages an LTS CCE access resource within OpenTelekomCloud.\n\n## Example Usage\n\n### CCE Access With Container Stdout\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst name = config.requireObject<any>(\"name\");\nconst logGroupId = config.requireObject<any>(\"logGroupId\");\nconst logStreamId = config.requireObject<any>(\"logStreamId\");\nconst hostGroupId = config.requireObject<any>(\"hostGroupId\");\nconst clusterId = config.requireObject<any>(\"clusterId\");\nconst containerStdout = new opentelekomcloud.LtsCceAccessV3(\"container_stdout\", {\n    name: name,\n    logGroupId: logGroupId,\n    logStreamId: logStreamId,\n    hostGroupIds: [hostGroupId],\n    clusterId: clusterId,\n    accessConfig: {\n        pathType: \"container_stdout\",\n        stdout: true,\n        singleLogFormat: {\n            mode: \"system\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nname = config.require_object(\"name\")\nlog_group_id = config.require_object(\"logGroupId\")\nlog_stream_id = config.require_object(\"logStreamId\")\nhost_group_id = config.require_object(\"hostGroupId\")\ncluster_id = config.require_object(\"clusterId\")\ncontainer_stdout = opentelekomcloud.LtsCceAccessV3(\"container_stdout\",\n    name=name,\n    log_group_id=log_group_id,\n    log_stream_id=log_stream_id,\n    host_group_ids=[host_group_id],\n    cluster_id=cluster_id,\n    access_config={\n        \"path_type\": \"container_stdout\",\n        \"stdout\": True,\n        \"single_log_format\": {\n            \"mode\": \"system\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var name = config.RequireObject<dynamic>(\"name\");\n    var logGroupId = config.RequireObject<dynamic>(\"logGroupId\");\n    var logStreamId = config.RequireObject<dynamic>(\"logStreamId\");\n    var hostGroupId = config.RequireObject<dynamic>(\"hostGroupId\");\n    var clusterId = config.RequireObject<dynamic>(\"clusterId\");\n    var containerStdout = new Opentelekomcloud.LtsCceAccessV3(\"container_stdout\", new()\n    {\n        Name = name,\n        LogGroupId = logGroupId,\n        LogStreamId = logStreamId,\n        HostGroupIds = new[]\n        {\n            hostGroupId,\n        },\n        ClusterId = clusterId,\n        AccessConfig = new Opentelekomcloud.Inputs.LtsCceAccessV3AccessConfigArgs\n        {\n            PathType = \"container_stdout\",\n            Stdout = true,\n            SingleLogFormat = new Opentelekomcloud.Inputs.LtsCceAccessV3AccessConfigSingleLogFormatArgs\n            {\n                Mode = \"system\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := cfg.RequireObject(\"name\")\n\t\tlogGroupId := cfg.RequireObject(\"logGroupId\")\n\t\tlogStreamId := cfg.RequireObject(\"logStreamId\")\n\t\thostGroupId := cfg.RequireObject(\"hostGroupId\")\n\t\tclusterId := cfg.RequireObject(\"clusterId\")\n\t\t_, err := opentelekomcloud.NewLtsCceAccessV3(ctx, \"container_stdout\", &opentelekomcloud.LtsCceAccessV3Args{\n\t\t\tName:        pulumi.Any(name),\n\t\t\tLogGroupId:  pulumi.Any(logGroupId),\n\t\t\tLogStreamId: pulumi.Any(logStreamId),\n\t\t\tHostGroupIds: pulumi.StringArray{\n\t\t\t\thostGroupId,\n\t\t\t},\n\t\t\tClusterId: pulumi.Any(clusterId),\n\t\t\tAccessConfig: &opentelekomcloud.LtsCceAccessV3AccessConfigArgs{\n\t\t\t\tPathType: pulumi.String(\"container_stdout\"),\n\t\t\t\tStdout:   pulumi.Bool(true),\n\t\t\t\tSingleLogFormat: &opentelekomcloud.LtsCceAccessV3AccessConfigSingleLogFormatArgs{\n\t\t\t\t\tMode: pulumi.String(\"system\"),\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.opentelekomcloud.LtsCceAccessV3;\nimport com.pulumi.opentelekomcloud.LtsCceAccessV3Args;\nimport com.pulumi.opentelekomcloud.inputs.LtsCceAccessV3AccessConfigArgs;\nimport com.pulumi.opentelekomcloud.inputs.LtsCceAccessV3AccessConfigSingleLogFormatArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\");\n        final var logGroupId = config.get(\"logGroupId\");\n        final var logStreamId = config.get(\"logStreamId\");\n        final var hostGroupId = config.get(\"hostGroupId\");\n        final var clusterId = config.get(\"clusterId\");\n        var containerStdout = new LtsCceAccessV3(\"containerStdout\", LtsCceAccessV3Args.builder()\n            .name(name)\n            .logGroupId(logGroupId)\n            .logStreamId(logStreamId)\n            .hostGroupIds(hostGroupId)\n            .clusterId(clusterId)\n            .accessConfig(LtsCceAccessV3AccessConfigArgs.builder()\n                .pathType(\"container_stdout\")\n                .stdout(true)\n                .singleLogFormat(LtsCceAccessV3AccessConfigSingleLogFormatArgs.builder()\n                    .mode(\"system\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: dynamic\n  logGroupId:\n    type: dynamic\n  logStreamId:\n    type: dynamic\n  hostGroupId:\n    type: dynamic\n  clusterId:\n    type: dynamic\nresources:\n  containerStdout:\n    type: opentelekomcloud:LtsCceAccessV3\n    name: container_stdout\n    properties:\n      name: ${name}\n      logGroupId: ${logGroupId}\n      logStreamId: ${logStreamId}\n      hostGroupIds:\n        - ${hostGroupId}\n      clusterId: ${clusterId}\n      accessConfig:\n        pathType: container_stdout\n        stdout: true\n        singleLogFormat:\n          mode: system\n```\n<!--End PulumiCodeChooser -->\n\n### CCE Access With Container File\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst name = config.requireObject<any>(\"name\");\nconst logGroupId = config.requireObject<any>(\"logGroupId\");\nconst logStreamId = config.requireObject<any>(\"logStreamId\");\nconst hostGroupId = config.requireObject<any>(\"hostGroupId\");\nconst clusterId = config.requireObject<any>(\"clusterId\");\nconst containerFile = new opentelekomcloud.LtsCceAccessV3(\"container_file\", {\n    name: name,\n    logGroupId: logGroupId,\n    logStreamId: logStreamId,\n    hostGroupIds: [hostGroupId],\n    clusterId: clusterId,\n    accessConfig: {\n        pathType: \"container_file\",\n        paths: [\"/var\"],\n        singleLogFormat: {\n            mode: \"system\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nname = config.require_object(\"name\")\nlog_group_id = config.require_object(\"logGroupId\")\nlog_stream_id = config.require_object(\"logStreamId\")\nhost_group_id = config.require_object(\"hostGroupId\")\ncluster_id = config.require_object(\"clusterId\")\ncontainer_file = opentelekomcloud.LtsCceAccessV3(\"container_file\",\n    name=name,\n    log_group_id=log_group_id,\n    log_stream_id=log_stream_id,\n    host_group_ids=[host_group_id],\n    cluster_id=cluster_id,\n    access_config={\n        \"path_type\": \"container_file\",\n        \"paths\": [\"/var\"],\n        \"single_log_format\": {\n            \"mode\": \"system\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var name = config.RequireObject<dynamic>(\"name\");\n    var logGroupId = config.RequireObject<dynamic>(\"logGroupId\");\n    var logStreamId = config.RequireObject<dynamic>(\"logStreamId\");\n    var hostGroupId = config.RequireObject<dynamic>(\"hostGroupId\");\n    var clusterId = config.RequireObject<dynamic>(\"clusterId\");\n    var containerFile = new Opentelekomcloud.LtsCceAccessV3(\"container_file\", new()\n    {\n        Name = name,\n        LogGroupId = logGroupId,\n        LogStreamId = logStreamId,\n        HostGroupIds = new[]\n        {\n            hostGroupId,\n        },\n        ClusterId = clusterId,\n        AccessConfig = new Opentelekomcloud.Inputs.LtsCceAccessV3AccessConfigArgs\n        {\n            PathType = \"container_file\",\n            Paths = new[]\n            {\n                \"/var\",\n            },\n            SingleLogFormat = new Opentelekomcloud.Inputs.LtsCceAccessV3AccessConfigSingleLogFormatArgs\n            {\n                Mode = \"system\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := cfg.RequireObject(\"name\")\n\t\tlogGroupId := cfg.RequireObject(\"logGroupId\")\n\t\tlogStreamId := cfg.RequireObject(\"logStreamId\")\n\t\thostGroupId := cfg.RequireObject(\"hostGroupId\")\n\t\tclusterId := cfg.RequireObject(\"clusterId\")\n\t\t_, err := opentelekomcloud.NewLtsCceAccessV3(ctx, \"container_file\", &opentelekomcloud.LtsCceAccessV3Args{\n\t\t\tName:        pulumi.Any(name),\n\t\t\tLogGroupId:  pulumi.Any(logGroupId),\n\t\t\tLogStreamId: pulumi.Any(logStreamId),\n\t\t\tHostGroupIds: pulumi.StringArray{\n\t\t\t\thostGroupId,\n\t\t\t},\n\t\t\tClusterId: pulumi.Any(clusterId),\n\t\t\tAccessConfig: &opentelekomcloud.LtsCceAccessV3AccessConfigArgs{\n\t\t\t\tPathType: pulumi.String(\"container_file\"),\n\t\t\t\tPaths: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"/var\"),\n\t\t\t\t},\n\t\t\t\tSingleLogFormat: &opentelekomcloud.LtsCceAccessV3AccessConfigSingleLogFormatArgs{\n\t\t\t\t\tMode: pulumi.String(\"system\"),\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.opentelekomcloud.LtsCceAccessV3;\nimport com.pulumi.opentelekomcloud.LtsCceAccessV3Args;\nimport com.pulumi.opentelekomcloud.inputs.LtsCceAccessV3AccessConfigArgs;\nimport com.pulumi.opentelekomcloud.inputs.LtsCceAccessV3AccessConfigSingleLogFormatArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\");\n        final var logGroupId = config.get(\"logGroupId\");\n        final var logStreamId = config.get(\"logStreamId\");\n        final var hostGroupId = config.get(\"hostGroupId\");\n        final var clusterId = config.get(\"clusterId\");\n        var containerFile = new LtsCceAccessV3(\"containerFile\", LtsCceAccessV3Args.builder()\n            .name(name)\n            .logGroupId(logGroupId)\n            .logStreamId(logStreamId)\n            .hostGroupIds(hostGroupId)\n            .clusterId(clusterId)\n            .accessConfig(LtsCceAccessV3AccessConfigArgs.builder()\n                .pathType(\"container_file\")\n                .paths(\"/var\")\n                .singleLogFormat(LtsCceAccessV3AccessConfigSingleLogFormatArgs.builder()\n                    .mode(\"system\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: dynamic\n  logGroupId:\n    type: dynamic\n  logStreamId:\n    type: dynamic\n  hostGroupId:\n    type: dynamic\n  clusterId:\n    type: dynamic\nresources:\n  containerFile:\n    type: opentelekomcloud:LtsCceAccessV3\n    name: container_file\n    properties:\n      name: ${name}\n      logGroupId: ${logGroupId}\n      logStreamId: ${logStreamId}\n      hostGroupIds:\n        - ${hostGroupId}\n      clusterId: ${clusterId}\n      accessConfig:\n        pathType: container_file\n        paths:\n          - /var\n        singleLogFormat:\n          mode: system\n```\n<!--End PulumiCodeChooser -->\n\n### CCE Access With Host File\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst name = config.requireObject<any>(\"name\");\nconst logGroupId = config.requireObject<any>(\"logGroupId\");\nconst logStreamId = config.requireObject<any>(\"logStreamId\");\nconst hostGroupId = config.requireObject<any>(\"hostGroupId\");\nconst clusterId = config.requireObject<any>(\"clusterId\");\nconst hostFile = new opentelekomcloud.LtsCceAccessV3(\"host_file\", {\n    name: name,\n    logGroupId: logGroupId,\n    logStreamId: logStreamId,\n    hostGroupIds: [hostGroupId],\n    clusterId: clusterId,\n    accessConfig: {\n        pathType: \"host_file\",\n        paths: [\"/var\"],\n        singleLogFormat: {\n            mode: \"system\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nname = config.require_object(\"name\")\nlog_group_id = config.require_object(\"logGroupId\")\nlog_stream_id = config.require_object(\"logStreamId\")\nhost_group_id = config.require_object(\"hostGroupId\")\ncluster_id = config.require_object(\"clusterId\")\nhost_file = opentelekomcloud.LtsCceAccessV3(\"host_file\",\n    name=name,\n    log_group_id=log_group_id,\n    log_stream_id=log_stream_id,\n    host_group_ids=[host_group_id],\n    cluster_id=cluster_id,\n    access_config={\n        \"path_type\": \"host_file\",\n        \"paths\": [\"/var\"],\n        \"single_log_format\": {\n            \"mode\": \"system\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var name = config.RequireObject<dynamic>(\"name\");\n    var logGroupId = config.RequireObject<dynamic>(\"logGroupId\");\n    var logStreamId = config.RequireObject<dynamic>(\"logStreamId\");\n    var hostGroupId = config.RequireObject<dynamic>(\"hostGroupId\");\n    var clusterId = config.RequireObject<dynamic>(\"clusterId\");\n    var hostFile = new Opentelekomcloud.LtsCceAccessV3(\"host_file\", new()\n    {\n        Name = name,\n        LogGroupId = logGroupId,\n        LogStreamId = logStreamId,\n        HostGroupIds = new[]\n        {\n            hostGroupId,\n        },\n        ClusterId = clusterId,\n        AccessConfig = new Opentelekomcloud.Inputs.LtsCceAccessV3AccessConfigArgs\n        {\n            PathType = \"host_file\",\n            Paths = new[]\n            {\n                \"/var\",\n            },\n            SingleLogFormat = new Opentelekomcloud.Inputs.LtsCceAccessV3AccessConfigSingleLogFormatArgs\n            {\n                Mode = \"system\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := cfg.RequireObject(\"name\")\n\t\tlogGroupId := cfg.RequireObject(\"logGroupId\")\n\t\tlogStreamId := cfg.RequireObject(\"logStreamId\")\n\t\thostGroupId := cfg.RequireObject(\"hostGroupId\")\n\t\tclusterId := cfg.RequireObject(\"clusterId\")\n\t\t_, err := opentelekomcloud.NewLtsCceAccessV3(ctx, \"host_file\", &opentelekomcloud.LtsCceAccessV3Args{\n\t\t\tName:        pulumi.Any(name),\n\t\t\tLogGroupId:  pulumi.Any(logGroupId),\n\t\t\tLogStreamId: pulumi.Any(logStreamId),\n\t\t\tHostGroupIds: pulumi.StringArray{\n\t\t\t\thostGroupId,\n\t\t\t},\n\t\t\tClusterId: pulumi.Any(clusterId),\n\t\t\tAccessConfig: &opentelekomcloud.LtsCceAccessV3AccessConfigArgs{\n\t\t\t\tPathType: pulumi.String(\"host_file\"),\n\t\t\t\tPaths: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"/var\"),\n\t\t\t\t},\n\t\t\t\tSingleLogFormat: &opentelekomcloud.LtsCceAccessV3AccessConfigSingleLogFormatArgs{\n\t\t\t\t\tMode: pulumi.String(\"system\"),\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.opentelekomcloud.LtsCceAccessV3;\nimport com.pulumi.opentelekomcloud.LtsCceAccessV3Args;\nimport com.pulumi.opentelekomcloud.inputs.LtsCceAccessV3AccessConfigArgs;\nimport com.pulumi.opentelekomcloud.inputs.LtsCceAccessV3AccessConfigSingleLogFormatArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\");\n        final var logGroupId = config.get(\"logGroupId\");\n        final var logStreamId = config.get(\"logStreamId\");\n        final var hostGroupId = config.get(\"hostGroupId\");\n        final var clusterId = config.get(\"clusterId\");\n        var hostFile = new LtsCceAccessV3(\"hostFile\", LtsCceAccessV3Args.builder()\n            .name(name)\n            .logGroupId(logGroupId)\n            .logStreamId(logStreamId)\n            .hostGroupIds(hostGroupId)\n            .clusterId(clusterId)\n            .accessConfig(LtsCceAccessV3AccessConfigArgs.builder()\n                .pathType(\"host_file\")\n                .paths(\"/var\")\n                .singleLogFormat(LtsCceAccessV3AccessConfigSingleLogFormatArgs.builder()\n                    .mode(\"system\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: dynamic\n  logGroupId:\n    type: dynamic\n  logStreamId:\n    type: dynamic\n  hostGroupId:\n    type: dynamic\n  clusterId:\n    type: dynamic\nresources:\n  hostFile:\n    type: opentelekomcloud:LtsCceAccessV3\n    name: host_file\n    properties:\n      name: ${name}\n      logGroupId: ${logGroupId}\n      logStreamId: ${logStreamId}\n      hostGroupIds:\n        - ${hostGroupId}\n      clusterId: ${clusterId}\n      accessConfig:\n        pathType: host_file\n        paths:\n          - /var\n        singleLogFormat:\n          mode: system\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe CCE access can be imported using `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/ltsCceAccessV3:LtsCceAccessV3 test <id>\n```\n\n","inputProperties":{"accessConfig":{"$ref":"#/types/opentelekomcloud:index%2FLtsCceAccessV3AccessConfig:LtsCceAccessV3AccessConfig","description":"Specifies the configurations of CCE access.\nThe<span pulumi-lang-nodejs=\" accessConfig \" pulumi-lang-dotnet=\" AccessConfig \" pulumi-lang-go=\" accessConfig \" pulumi-lang-python=\" access_config \" pulumi-lang-yaml=\" accessConfig \" pulumi-lang-java=\" accessConfig \"> access_config </span>structure is documented below.\n"},"binaryCollect":{"description":"Specifies whether collect in binary format. Default is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"clusterId":{"description":"Specifies the CCE cluster ID. Changing this creates a new resource.\n","type":"string"},"hostGroupIds":{"description":"Specifies the log access host group ID list.\n","items":{"type":"string"},"type":"array"},"logGroupId":{"description":"Specifies the log group ID. Changing this creates a new resource.\n","type":"string"},"logSplit":{"description":"Specifies whether to split log. Default is false.\n\n<a name=<span pulumi-lang-nodejs=\"\"accessConfig\"\" pulumi-lang-dotnet=\"\"AccessConfig\"\" pulumi-lang-go=\"\"accessConfig\"\" pulumi-lang-python=\"\"access_config\"\" pulumi-lang-yaml=\"\"accessConfig\"\" pulumi-lang-java=\"\"accessConfig\"\">\"access_config\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`accessConfig`\" pulumi-lang-dotnet=\"`AccessConfig`\" pulumi-lang-go=\"`accessConfig`\" pulumi-lang-python=\"`access_config`\" pulumi-lang-yaml=\"`accessConfig`\" pulumi-lang-java=\"`accessConfig`\">`access_config`</span> block supports:\n","type":"boolean"},"logStreamId":{"description":"Specifies the log stream ID. Changing this creates a new resource.\n","type":"string"},"ltsCceAccessV3Id":{"description":"The resource ID.\n","type":"string"},"name":{"description":"Specifies the name of the CCE access. The name consists of <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>\ncharacters. Only letters, digits, underscores (_), and periods (.) are allowed, and the period cannot be the first\nor last character. Changing this creates a new resource.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value pairs to associate with the CCE access.\n","type":"object"}},"properties":{"accessConfig":{"$ref":"#/types/opentelekomcloud:index%2FLtsCceAccessV3AccessConfig:LtsCceAccessV3AccessConfig","description":"Specifies the configurations of CCE access.\nThe<span pulumi-lang-nodejs=\" accessConfig \" pulumi-lang-dotnet=\" AccessConfig \" pulumi-lang-go=\" accessConfig \" pulumi-lang-python=\" access_config \" pulumi-lang-yaml=\" accessConfig \" pulumi-lang-java=\" accessConfig \"> access_config </span>structure is documented below.\n"},"accessType":{"description":"The log access type.\n","type":"string"},"binaryCollect":{"description":"Specifies whether collect in binary format. Default is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"clusterId":{"description":"Specifies the CCE cluster ID. Changing this creates a new resource.\n","type":"string"},"createdAt":{"description":"The creation time of the CCE access, in RFC3339 format.\n","type":"string"},"hostGroupIds":{"description":"Specifies the log access host group ID list.\n","items":{"type":"string"},"type":"array"},"logGroupId":{"description":"Specifies the log group ID. Changing this creates a new resource.\n","type":"string"},"logGroupName":{"description":"The log group name.\n","type":"string"},"logSplit":{"description":"Specifies whether to split log. Default is false.\n\n<a name=<span pulumi-lang-nodejs=\"\"accessConfig\"\" pulumi-lang-dotnet=\"\"AccessConfig\"\" pulumi-lang-go=\"\"accessConfig\"\" pulumi-lang-python=\"\"access_config\"\" pulumi-lang-yaml=\"\"accessConfig\"\" pulumi-lang-java=\"\"accessConfig\"\">\"access_config\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`accessConfig`\" pulumi-lang-dotnet=\"`AccessConfig`\" pulumi-lang-go=\"`accessConfig`\" pulumi-lang-python=\"`access_config`\" pulumi-lang-yaml=\"`accessConfig`\" pulumi-lang-java=\"`accessConfig`\">`access_config`</span> block supports:\n","type":"boolean"},"logStreamId":{"description":"Specifies the log stream ID. Changing this creates a new resource.\n","type":"string"},"logStreamName":{"description":"The log stream name.\n","type":"string"},"ltsCceAccessV3Id":{"description":"The resource ID.\n","type":"string"},"name":{"description":"Specifies the name of the CCE access. The name consists of <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>\ncharacters. Only letters, digits, underscores (_), and periods (.) are allowed, and the period cannot be the first\nor last character. Changing this creates a new resource.\n","type":"string"},"region":{"description":"Shows the region in the cce access resource created.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value pairs to associate with the CCE access.\n","type":"object"}},"required":["accessConfig","accessType","binaryCollect","clusterId","createdAt","hostGroupIds","logGroupId","logGroupName","logSplit","logStreamId","logStreamName","ltsCceAccessV3Id","name","region"],"requiredInputs":["accessConfig","clusterId","logGroupId","logStreamId"],"stateInputs":{"description":"Input properties used for looking up and filtering LtsCceAccessV3 resources.\n","properties":{"accessConfig":{"$ref":"#/types/opentelekomcloud:index%2FLtsCceAccessV3AccessConfig:LtsCceAccessV3AccessConfig","description":"Specifies the configurations of CCE access.\nThe<span pulumi-lang-nodejs=\" accessConfig \" pulumi-lang-dotnet=\" AccessConfig \" pulumi-lang-go=\" accessConfig \" pulumi-lang-python=\" access_config \" pulumi-lang-yaml=\" accessConfig \" pulumi-lang-java=\" accessConfig \"> access_config </span>structure is documented below.\n"},"accessType":{"description":"The log access type.\n","type":"string"},"binaryCollect":{"description":"Specifies whether collect in binary format. Default is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"clusterId":{"description":"Specifies the CCE cluster ID. Changing this creates a new resource.\n","type":"string"},"createdAt":{"description":"The creation time of the CCE access, in RFC3339 format.\n","type":"string"},"hostGroupIds":{"description":"Specifies the log access host group ID list.\n","items":{"type":"string"},"type":"array"},"logGroupId":{"description":"Specifies the log group ID. Changing this creates a new resource.\n","type":"string"},"logGroupName":{"description":"The log group name.\n","type":"string"},"logSplit":{"description":"Specifies whether to split log. Default is false.\n\n<a name=<span pulumi-lang-nodejs=\"\"accessConfig\"\" pulumi-lang-dotnet=\"\"AccessConfig\"\" pulumi-lang-go=\"\"accessConfig\"\" pulumi-lang-python=\"\"access_config\"\" pulumi-lang-yaml=\"\"accessConfig\"\" pulumi-lang-java=\"\"accessConfig\"\">\"access_config\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`accessConfig`\" pulumi-lang-dotnet=\"`AccessConfig`\" pulumi-lang-go=\"`accessConfig`\" pulumi-lang-python=\"`access_config`\" pulumi-lang-yaml=\"`accessConfig`\" pulumi-lang-java=\"`accessConfig`\">`access_config`</span> block supports:\n","type":"boolean"},"logStreamId":{"description":"Specifies the log stream ID. Changing this creates a new resource.\n","type":"string"},"logStreamName":{"description":"The log stream name.\n","type":"string"},"ltsCceAccessV3Id":{"description":"The resource ID.\n","type":"string"},"name":{"description":"Specifies the name of the CCE access. The name consists of <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>\ncharacters. Only letters, digits, underscores (_), and periods (.) are allowed, and the period cannot be the first\nor last character. Changing this creates a new resource.\n","type":"string"},"region":{"description":"Shows the region in the cce access resource created.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value pairs to associate with the CCE access.\n","type":"object"}},"type":"object"},"type":"object"},"opentelekomcloud:index/ltsCrossAccountAccessV2:LtsCrossAccountAccessV2":{"description":"Manages an LTS cross account access resource within OpenTelekomCloud.\n\n> **NOTE:** Before using this resource:\n<br/> 1. You need to prepare an agency relationship.\n<br/> 2. Before data synchronization is complete, data in the target and source log streams may be different.\n         Check back later in one hour.\n<br/> 3. After you configure cross-account access, if account A deletes the agency from IAM, LTS cannot detect the\n         deletion and the cross-account ingestion still takes effect. If the cross-account access configuration is\n         no longer used, notify account B to delete it.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst name = config.requireObject<any>(\"name\");\nconst agencyGroupId = config.requireObject<any>(\"agencyGroupId\");\nconst agencyStreamId = config.requireObject<any>(\"agencyStreamId\");\nconst agencyGroupName = config.requireObject<any>(\"agencyGroupName\");\nconst agencyStreamName = config.requireObject<any>(\"agencyStreamName\");\nconst logGroupId = config.requireObject<any>(\"logGroupId\");\nconst logStreamId = config.requireObject<any>(\"logStreamId\");\nconst logGroupName = config.requireObject<any>(\"logGroupName\");\nconst logStreamName = config.requireObject<any>(\"logStreamName\");\nconst agencyName = config.requireObject<any>(\"agencyName\");\nconst agencyDomainName = config.requireObject<any>(\"agencyDomainName\");\nconst agencyProjectId = config.requireObject<any>(\"agencyProjectId\");\nconst conn = new opentelekomcloud.LtsCrossAccountAccessV2(\"conn\", {\n    name: name,\n    agencyProjectId: agencyProjectId,\n    agencyDomainName: agencyDomainName,\n    agencyName: agencyName,\n    logAgencyStreamName: agencyStreamName,\n    logAgencyStreamId: agencyStreamId,\n    logAgencyGroupName: agencyGroupName,\n    logAgencyGroupId: agencyGroupId,\n    logStreamName: logStreamName,\n    logStreamId: logStreamId,\n    logGroupName: logGroupName,\n    logGroupId: logGroupId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nname = config.require_object(\"name\")\nagency_group_id = config.require_object(\"agencyGroupId\")\nagency_stream_id = config.require_object(\"agencyStreamId\")\nagency_group_name = config.require_object(\"agencyGroupName\")\nagency_stream_name = config.require_object(\"agencyStreamName\")\nlog_group_id = config.require_object(\"logGroupId\")\nlog_stream_id = config.require_object(\"logStreamId\")\nlog_group_name = config.require_object(\"logGroupName\")\nlog_stream_name = config.require_object(\"logStreamName\")\nagency_name = config.require_object(\"agencyName\")\nagency_domain_name = config.require_object(\"agencyDomainName\")\nagency_project_id = config.require_object(\"agencyProjectId\")\nconn = opentelekomcloud.LtsCrossAccountAccessV2(\"conn\",\n    name=name,\n    agency_project_id=agency_project_id,\n    agency_domain_name=agency_domain_name,\n    agency_name=agency_name,\n    log_agency_stream_name=agency_stream_name,\n    log_agency_stream_id=agency_stream_id,\n    log_agency_group_name=agency_group_name,\n    log_agency_group_id=agency_group_id,\n    log_stream_name=log_stream_name,\n    log_stream_id=log_stream_id,\n    log_group_name=log_group_name,\n    log_group_id=log_group_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var name = config.RequireObject<dynamic>(\"name\");\n    var agencyGroupId = config.RequireObject<dynamic>(\"agencyGroupId\");\n    var agencyStreamId = config.RequireObject<dynamic>(\"agencyStreamId\");\n    var agencyGroupName = config.RequireObject<dynamic>(\"agencyGroupName\");\n    var agencyStreamName = config.RequireObject<dynamic>(\"agencyStreamName\");\n    var logGroupId = config.RequireObject<dynamic>(\"logGroupId\");\n    var logStreamId = config.RequireObject<dynamic>(\"logStreamId\");\n    var logGroupName = config.RequireObject<dynamic>(\"logGroupName\");\n    var logStreamName = config.RequireObject<dynamic>(\"logStreamName\");\n    var agencyName = config.RequireObject<dynamic>(\"agencyName\");\n    var agencyDomainName = config.RequireObject<dynamic>(\"agencyDomainName\");\n    var agencyProjectId = config.RequireObject<dynamic>(\"agencyProjectId\");\n    var conn = new Opentelekomcloud.LtsCrossAccountAccessV2(\"conn\", new()\n    {\n        Name = name,\n        AgencyProjectId = agencyProjectId,\n        AgencyDomainName = agencyDomainName,\n        AgencyName = agencyName,\n        LogAgencyStreamName = agencyStreamName,\n        LogAgencyStreamId = agencyStreamId,\n        LogAgencyGroupName = agencyGroupName,\n        LogAgencyGroupId = agencyGroupId,\n        LogStreamName = logStreamName,\n        LogStreamId = logStreamId,\n        LogGroupName = logGroupName,\n        LogGroupId = logGroupId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := cfg.RequireObject(\"name\")\n\t\tagencyGroupId := cfg.RequireObject(\"agencyGroupId\")\n\t\tagencyStreamId := cfg.RequireObject(\"agencyStreamId\")\n\t\tagencyGroupName := cfg.RequireObject(\"agencyGroupName\")\n\t\tagencyStreamName := cfg.RequireObject(\"agencyStreamName\")\n\t\tlogGroupId := cfg.RequireObject(\"logGroupId\")\n\t\tlogStreamId := cfg.RequireObject(\"logStreamId\")\n\t\tlogGroupName := cfg.RequireObject(\"logGroupName\")\n\t\tlogStreamName := cfg.RequireObject(\"logStreamName\")\n\t\tagencyName := cfg.RequireObject(\"agencyName\")\n\t\tagencyDomainName := cfg.RequireObject(\"agencyDomainName\")\n\t\tagencyProjectId := cfg.RequireObject(\"agencyProjectId\")\n\t\t_, err := opentelekomcloud.NewLtsCrossAccountAccessV2(ctx, \"conn\", &opentelekomcloud.LtsCrossAccountAccessV2Args{\n\t\t\tName:                pulumi.Any(name),\n\t\t\tAgencyProjectId:     pulumi.Any(agencyProjectId),\n\t\t\tAgencyDomainName:    pulumi.Any(agencyDomainName),\n\t\t\tAgencyName:          pulumi.Any(agencyName),\n\t\t\tLogAgencyStreamName: pulumi.Any(agencyStreamName),\n\t\t\tLogAgencyStreamId:   pulumi.Any(agencyStreamId),\n\t\t\tLogAgencyGroupName:  pulumi.Any(agencyGroupName),\n\t\t\tLogAgencyGroupId:    pulumi.Any(agencyGroupId),\n\t\t\tLogStreamName:       pulumi.Any(logStreamName),\n\t\t\tLogStreamId:         pulumi.Any(logStreamId),\n\t\t\tLogGroupName:        pulumi.Any(logGroupName),\n\t\t\tLogGroupId:          pulumi.Any(logGroupId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.LtsCrossAccountAccessV2;\nimport com.pulumi.opentelekomcloud.LtsCrossAccountAccessV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\");\n        final var agencyGroupId = config.get(\"agencyGroupId\");\n        final var agencyStreamId = config.get(\"agencyStreamId\");\n        final var agencyGroupName = config.get(\"agencyGroupName\");\n        final var agencyStreamName = config.get(\"agencyStreamName\");\n        final var logGroupId = config.get(\"logGroupId\");\n        final var logStreamId = config.get(\"logStreamId\");\n        final var logGroupName = config.get(\"logGroupName\");\n        final var logStreamName = config.get(\"logStreamName\");\n        final var agencyName = config.get(\"agencyName\");\n        final var agencyDomainName = config.get(\"agencyDomainName\");\n        final var agencyProjectId = config.get(\"agencyProjectId\");\n        var conn = new LtsCrossAccountAccessV2(\"conn\", LtsCrossAccountAccessV2Args.builder()\n            .name(name)\n            .agencyProjectId(agencyProjectId)\n            .agencyDomainName(agencyDomainName)\n            .agencyName(agencyName)\n            .logAgencyStreamName(agencyStreamName)\n            .logAgencyStreamId(agencyStreamId)\n            .logAgencyGroupName(agencyGroupName)\n            .logAgencyGroupId(agencyGroupId)\n            .logStreamName(logStreamName)\n            .logStreamId(logStreamId)\n            .logGroupName(logGroupName)\n            .logGroupId(logGroupId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: dynamic\n  agencyGroupId:\n    type: dynamic\n  agencyStreamId:\n    type: dynamic\n  agencyGroupName:\n    type: dynamic\n  agencyStreamName:\n    type: dynamic\n  logGroupId:\n    type: dynamic\n  logStreamId:\n    type: dynamic\n  logGroupName:\n    type: dynamic\n  logStreamName:\n    type: dynamic\n  agencyName:\n    type: dynamic\n  agencyDomainName:\n    type: dynamic\n  agencyProjectId:\n    type: dynamic\nresources:\n  conn:\n    type: opentelekomcloud:LtsCrossAccountAccessV2\n    properties:\n      name: ${name}\n      agencyProjectId: ${agencyProjectId}\n      agencyDomainName: ${agencyDomainName}\n      agencyName: ${agencyName}\n      logAgencyStreamName: ${agencyStreamName}\n      logAgencyStreamId: ${agencyStreamId}\n      logAgencyGroupName: ${agencyGroupName}\n      logAgencyGroupId: ${agencyGroupId}\n      logStreamName: ${logStreamName}\n      logStreamId: ${logStreamId}\n      logGroupName: ${logGroupName}\n      logGroupId: ${logGroupId}\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"agencyDomainName":{"description":"Specifies the name of the delegator account to verify\nthe delegation. Changing this creates a new resource.\n","type":"string"},"agencyName":{"description":"Specifies the name of the agency created in IAM by the delegator.\nChanging this creates a new resource.\n","type":"string"},"agencyProjectId":{"description":"Specifies the delegator project ID.\nChanging this creates a new resource.\n","type":"string"},"logAgencyGroupId":{"description":"Specify the log group ID that already exists in the\ndelegated account. Changing this creates a new resource.\n","type":"string"},"logAgencyGroupName":{"description":"Specify the log group name that already exists in the\ndelegated account. Changing this creates a new resource.\n","type":"string"},"logAgencyStreamId":{"description":"Specifies the log stream ID that already exists in the\ndelegated account. Changing this creates a new resource.\n","type":"string"},"logAgencyStreamName":{"description":"Specifies the log stream name that already exists in the\ndelegated account. Changing this creates a new resource.\n","type":"string"},"logGroupId":{"description":"Specify the log group ID that already exists in the\nmain account. Changing this creates a new resource.\n","type":"string"},"logGroupName":{"description":"Specify the log group name that already exists in the\ndelegatee account. Changing this creates a new resource.\n","type":"string"},"logStreamId":{"description":"Specifies the log stream ID that already exists in the\ndelegatee account. Changing this creates a new resource.\n","type":"string"},"logStreamName":{"description":"Specifies the log stream name that already exists in the\ndelegatee account. Changing this creates a new resource.\n","type":"string"},"ltsCrossAccountAccessV2Id":{"description":"The resource ID.\n","type":"string"},"name":{"description":"Specifies the name of the cross account access.\nChanging this creates a new resource.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value pairs to associate with the cross account access.\n","type":"object"}},"properties":{"accessConfigType":{"description":"The log access configuration type.\n","type":"string"},"agencyDomainName":{"description":"Specifies the name of the delegator account to verify\nthe delegation. Changing this creates a new resource.\n","type":"string"},"agencyName":{"description":"Specifies the name of the agency created in IAM by the delegator.\nChanging this creates a new resource.\n","type":"string"},"agencyProjectId":{"description":"Specifies the delegator project ID.\nChanging this creates a new resource.\n","type":"string"},"createdAt":{"description":"The creation time of the cross account access, in RFC3339 format.\n","type":"string"},"logAgencyGroupId":{"description":"Specify the log group ID that already exists in the\ndelegated account. Changing this creates a new resource.\n","type":"string"},"logAgencyGroupName":{"description":"Specify the log group name that already exists in the\ndelegated account. Changing this creates a new resource.\n","type":"string"},"logAgencyStreamId":{"description":"Specifies the log stream ID that already exists in the\ndelegated account. Changing this creates a new resource.\n","type":"string"},"logAgencyStreamName":{"description":"Specifies the log stream name that already exists in the\ndelegated account. Changing this creates a new resource.\n","type":"string"},"logGroupId":{"description":"Specify the log group ID that already exists in the\nmain account. Changing this creates a new resource.\n","type":"string"},"logGroupName":{"description":"Specify the log group name that already exists in the\ndelegatee account. Changing this creates a new resource.\n","type":"string"},"logStreamId":{"description":"Specifies the log stream ID that already exists in the\ndelegatee account. Changing this creates a new resource.\n","type":"string"},"logStreamName":{"description":"Specifies the log stream name that already exists in the\ndelegatee account. Changing this creates a new resource.\n","type":"string"},"ltsCrossAccountAccessV2Id":{"description":"The resource ID.\n","type":"string"},"name":{"description":"Specifies the name of the cross account access.\nChanging this creates a new resource.\n","type":"string"},"region":{"description":"Shows the region in the cce access resource created.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value pairs to associate with the cross account access.\n","type":"object"}},"required":["accessConfigType","agencyDomainName","agencyName","agencyProjectId","createdAt","logAgencyGroupId","logAgencyGroupName","logAgencyStreamId","logAgencyStreamName","logGroupId","logGroupName","logStreamId","logStreamName","ltsCrossAccountAccessV2Id","name","region"],"requiredInputs":["agencyDomainName","agencyName","agencyProjectId","logAgencyGroupId","logAgencyGroupName","logAgencyStreamId","logAgencyStreamName","logGroupId","logGroupName","logStreamId","logStreamName"],"stateInputs":{"description":"Input properties used for looking up and filtering LtsCrossAccountAccessV2 resources.\n","properties":{"accessConfigType":{"description":"The log access configuration type.\n","type":"string"},"agencyDomainName":{"description":"Specifies the name of the delegator account to verify\nthe delegation. Changing this creates a new resource.\n","type":"string"},"agencyName":{"description":"Specifies the name of the agency created in IAM by the delegator.\nChanging this creates a new resource.\n","type":"string"},"agencyProjectId":{"description":"Specifies the delegator project ID.\nChanging this creates a new resource.\n","type":"string"},"createdAt":{"description":"The creation time of the cross account access, in RFC3339 format.\n","type":"string"},"logAgencyGroupId":{"description":"Specify the log group ID that already exists in the\ndelegated account. Changing this creates a new resource.\n","type":"string"},"logAgencyGroupName":{"description":"Specify the log group name that already exists in the\ndelegated account. Changing this creates a new resource.\n","type":"string"},"logAgencyStreamId":{"description":"Specifies the log stream ID that already exists in the\ndelegated account. Changing this creates a new resource.\n","type":"string"},"logAgencyStreamName":{"description":"Specifies the log stream name that already exists in the\ndelegated account. Changing this creates a new resource.\n","type":"string"},"logGroupId":{"description":"Specify the log group ID that already exists in the\nmain account. Changing this creates a new resource.\n","type":"string"},"logGroupName":{"description":"Specify the log group name that already exists in the\ndelegatee account. Changing this creates a new resource.\n","type":"string"},"logStreamId":{"description":"Specifies the log stream ID that already exists in the\ndelegatee account. Changing this creates a new resource.\n","type":"string"},"logStreamName":{"description":"Specifies the log stream name that already exists in the\ndelegatee account. Changing this creates a new resource.\n","type":"string"},"ltsCrossAccountAccessV2Id":{"description":"The resource ID.\n","type":"string"},"name":{"description":"Specifies the name of the cross account access.\nChanging this creates a new resource.\n","type":"string"},"region":{"description":"Shows the region in the cce access resource created.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value pairs to associate with the cross account access.\n","type":"object"}},"type":"object"},"type":"object"},"opentelekomcloud:index/ltsGroupV2:LtsGroupV2":{"description":"Up-to-date reference of API arguments for LTS log group you can get at\n[documentation portal](https://docs.otc.t-systems.com/log-tank-service/api-ref/apis/log_group_management/index.html)\n\nManages a log group resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = new opentelekomcloud.LtsGroupV2(\"test\", {\n    groupName: \"log_group_1\",\n    ttlInDays: 30,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.LtsGroupV2(\"test\",\n    group_name=\"log_group_1\",\n    ttl_in_days=30)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = new Opentelekomcloud.LtsGroupV2(\"test\", new()\n    {\n        GroupName = \"log_group_1\",\n        TtlInDays = 30,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewLtsGroupV2(ctx, \"test\", &opentelekomcloud.LtsGroupV2Args{\n\t\t\tGroupName: pulumi.String(\"log_group_1\"),\n\t\t\tTtlInDays: pulumi.Float64(30),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.LtsGroupV2;\nimport com.pulumi.opentelekomcloud.LtsGroupV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new LtsGroupV2(\"test\", LtsGroupV2Args.builder()\n            .groupName(\"log_group_1\")\n            .ttlInDays(30.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: opentelekomcloud:LtsGroupV2\n    properties:\n      groupName: log_group_1\n      ttlInDays: 30\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe log group can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/ltsGroupV2:LtsGroupV2 test <id>\n```\n\n","inputProperties":{"groupAlias":{"type":"string"},"groupName":{"description":"Specifies the log group name. Changing this parameter will create a new resource.\n","type":"string"},"ltsGroupV2Id":{"description":"The log group ID.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value pairs to associate with the log group.\n","type":"object"},"ttlInDays":{"description":"Specifies the log expiration time(days).\nThe value is range from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\">`365`</span>.\n","type":"number"}},"properties":{"createdAt":{"description":"The creation time of the log group.\n","type":"string"},"enterpriseProjectId":{"description":"Shows the enterprise project ID to which the log group belongs.\n","type":"string"},"groupAlias":{"type":"string"},"groupName":{"description":"Specifies the log group name. Changing this parameter will create a new resource.\n","type":"string"},"ltsGroupV2Id":{"description":"The log group ID.\n","type":"string"},"region":{"description":"Shows the region in the log group resource created.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value pairs to associate with the log group.\n","type":"object"},"ttlInDays":{"description":"Specifies the log expiration time(days).\nThe value is range from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\">`365`</span>.\n","type":"number"}},"required":["createdAt","enterpriseProjectId","groupName","ltsGroupV2Id","region","ttlInDays"],"requiredInputs":["groupName","ttlInDays"],"stateInputs":{"description":"Input properties used for looking up and filtering LtsGroupV2 resources.\n","properties":{"createdAt":{"description":"The creation time of the log group.\n","type":"string"},"enterpriseProjectId":{"description":"Shows the enterprise project ID to which the log group belongs.\n","type":"string"},"groupAlias":{"type":"string"},"groupName":{"description":"Specifies the log group name. Changing this parameter will create a new resource.\n","type":"string"},"ltsGroupV2Id":{"description":"The log group ID.\n","type":"string"},"region":{"description":"Shows the region in the log group resource created.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value pairs to associate with the log group.\n","type":"object"},"ttlInDays":{"description":"Specifies the log expiration time(days).\nThe value is range from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\">`365`</span>.\n","type":"number"}},"type":"object"},"type":"object"},"opentelekomcloud:index/ltsHostAccessV3:LtsHostAccessV3":{"description":"Manages an LTS host access resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst groupId = config.requireObject<any>(\"groupId\");\nconst streamId = config.requireObject<any>(\"streamId\");\nconst hostGroupId = config.requireObject<any>(\"hostGroupId\");\nconst acc = new opentelekomcloud.LtsHostAccessV3(\"acc\", {\n    name: \"access-demo\",\n    logGroupId: groupId,\n    logStreamId: streamId,\n    hostGroupIds: [hostGroupId],\n    accessConfig: {\n        paths: [\"/var/log/*\"],\n        blackPaths: [\"/var/log/*/a.log\"],\n        singleLogFormat: {\n            mode: \"system\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ngroup_id = config.require_object(\"groupId\")\nstream_id = config.require_object(\"streamId\")\nhost_group_id = config.require_object(\"hostGroupId\")\nacc = opentelekomcloud.LtsHostAccessV3(\"acc\",\n    name=\"access-demo\",\n    log_group_id=group_id,\n    log_stream_id=stream_id,\n    host_group_ids=[host_group_id],\n    access_config={\n        \"paths\": [\"/var/log/*\"],\n        \"black_paths\": [\"/var/log/*/a.log\"],\n        \"single_log_format\": {\n            \"mode\": \"system\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var groupId = config.RequireObject<dynamic>(\"groupId\");\n    var streamId = config.RequireObject<dynamic>(\"streamId\");\n    var hostGroupId = config.RequireObject<dynamic>(\"hostGroupId\");\n    var acc = new Opentelekomcloud.LtsHostAccessV3(\"acc\", new()\n    {\n        Name = \"access-demo\",\n        LogGroupId = groupId,\n        LogStreamId = streamId,\n        HostGroupIds = new[]\n        {\n            hostGroupId,\n        },\n        AccessConfig = new Opentelekomcloud.Inputs.LtsHostAccessV3AccessConfigArgs\n        {\n            Paths = new[]\n            {\n                \"/var/log/*\",\n            },\n            BlackPaths = new[]\n            {\n                \"/var/log/*/a.log\",\n            },\n            SingleLogFormat = new Opentelekomcloud.Inputs.LtsHostAccessV3AccessConfigSingleLogFormatArgs\n            {\n                Mode = \"system\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tgroupId := cfg.RequireObject(\"groupId\")\n\t\tstreamId := cfg.RequireObject(\"streamId\")\n\t\thostGroupId := cfg.RequireObject(\"hostGroupId\")\n\t\t_, err := opentelekomcloud.NewLtsHostAccessV3(ctx, \"acc\", &opentelekomcloud.LtsHostAccessV3Args{\n\t\t\tName:        pulumi.String(\"access-demo\"),\n\t\t\tLogGroupId:  pulumi.Any(groupId),\n\t\t\tLogStreamId: pulumi.Any(streamId),\n\t\t\tHostGroupIds: pulumi.StringArray{\n\t\t\t\thostGroupId,\n\t\t\t},\n\t\t\tAccessConfig: &opentelekomcloud.LtsHostAccessV3AccessConfigArgs{\n\t\t\t\tPaths: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"/var/log/*\"),\n\t\t\t\t},\n\t\t\t\tBlackPaths: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"/var/log/*/a.log\"),\n\t\t\t\t},\n\t\t\t\tSingleLogFormat: &opentelekomcloud.LtsHostAccessV3AccessConfigSingleLogFormatArgs{\n\t\t\t\t\tMode: pulumi.String(\"system\"),\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.opentelekomcloud.LtsHostAccessV3;\nimport com.pulumi.opentelekomcloud.LtsHostAccessV3Args;\nimport com.pulumi.opentelekomcloud.inputs.LtsHostAccessV3AccessConfigArgs;\nimport com.pulumi.opentelekomcloud.inputs.LtsHostAccessV3AccessConfigSingleLogFormatArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var groupId = config.get(\"groupId\");\n        final var streamId = config.get(\"streamId\");\n        final var hostGroupId = config.get(\"hostGroupId\");\n        var acc = new LtsHostAccessV3(\"acc\", LtsHostAccessV3Args.builder()\n            .name(\"access-demo\")\n            .logGroupId(groupId)\n            .logStreamId(streamId)\n            .hostGroupIds(hostGroupId)\n            .accessConfig(LtsHostAccessV3AccessConfigArgs.builder()\n                .paths(\"/var/log/*\")\n                .blackPaths(\"/var/log/*/a.log\")\n                .singleLogFormat(LtsHostAccessV3AccessConfigSingleLogFormatArgs.builder()\n                    .mode(\"system\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  groupId:\n    type: dynamic\n  streamId:\n    type: dynamic\n  hostGroupId:\n    type: dynamic\nresources:\n  acc:\n    type: opentelekomcloud:LtsHostAccessV3\n    properties:\n      name: access-demo\n      logGroupId: ${groupId}\n      logStreamId: ${streamId}\n      hostGroupIds:\n        - ${hostGroupId}\n      accessConfig:\n        paths:\n          - /var/log/*\n        blackPaths:\n          - /var/log/*/a.log\n        singleLogFormat:\n          mode: system\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe host access can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/ltsHostAccessV3:LtsHostAccessV3 test <id>\n```\n\n","inputProperties":{"accessConfig":{"$ref":"#/types/opentelekomcloud:index%2FLtsHostAccessV3AccessConfig:LtsHostAccessV3AccessConfig","description":"Specifies the configurations of host access.\nThe<span pulumi-lang-nodejs=\" accessConfig \" pulumi-lang-dotnet=\" AccessConfig \" pulumi-lang-go=\" accessConfig \" pulumi-lang-python=\" access_config \" pulumi-lang-yaml=\" accessConfig \" pulumi-lang-java=\" accessConfig \"> access_config </span>structure is documented below.\n"},"binaryCollect":{"description":"Specifies whether collect in binary format. Default is **false**.\n","type":"boolean"},"hostGroupIds":{"description":"Specifies the log access host group ID list.\n","items":{"type":"string"},"type":"array"},"logGroupId":{"description":"Specifies the log group ID.\nChanging this parameter will create a new resource.\n","type":"string"},"logSplit":{"description":"Specifies whether to split log. Default is false.\n\n<a name=\"HostAccessConfigSingleLogFormat\"></a>\nThe <span pulumi-lang-nodejs=\"`singleLogFormat`\" pulumi-lang-dotnet=\"`SingleLogFormat`\" pulumi-lang-go=\"`singleLogFormat`\" pulumi-lang-python=\"`single_log_format`\" pulumi-lang-yaml=\"`singleLogFormat`\" pulumi-lang-java=\"`singleLogFormat`\">`single_log_format`</span> blocks supports:\n","type":"boolean"},"logStreamId":{"description":"Specifies the log stream ID.\nChanging this parameter will create a new resource.\n","type":"string"},"ltsHostAccessV3Id":{"description":"The ID of the host access.\n","type":"string"},"name":{"description":"Specifies the host access name. The name consists of <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span> characters.\nOnly letters, digits, underscores (_), and periods (.) are allowed, and the period cannot be the first or last character.\nChanging this parameter will create a new resource.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value to attach to the host access.\n\n<a name=\"HostAccessConfigDetail\"></a>\nThe <span pulumi-lang-nodejs=\"`accessConfig`\" pulumi-lang-dotnet=\"`AccessConfig`\" pulumi-lang-go=\"`accessConfig`\" pulumi-lang-python=\"`access_config`\" pulumi-lang-yaml=\"`accessConfig`\" pulumi-lang-java=\"`accessConfig`\">`access_config`</span> block supports:\n","type":"object"}},"properties":{"accessConfig":{"$ref":"#/types/opentelekomcloud:index%2FLtsHostAccessV3AccessConfig:LtsHostAccessV3AccessConfig","description":"Specifies the configurations of host access.\nThe<span pulumi-lang-nodejs=\" accessConfig \" pulumi-lang-dotnet=\" AccessConfig \" pulumi-lang-go=\" accessConfig \" pulumi-lang-python=\" access_config \" pulumi-lang-yaml=\" accessConfig \" pulumi-lang-java=\" accessConfig \"> access_config </span>structure is documented below.\n"},"accessType":{"description":"The log access type.\n","type":"string"},"binaryCollect":{"description":"Specifies whether collect in binary format. Default is **false**.\n","type":"boolean"},"createdAt":{"description":"The creation time of the Host access, in RFC3339 format.\n","type":"string"},"hostGroupIds":{"description":"Specifies the log access host group ID list.\n","items":{"type":"string"},"type":"array"},"logGroupId":{"description":"Specifies the log group ID.\nChanging this parameter will create a new resource.\n","type":"string"},"logGroupName":{"description":"The log group name.\n","type":"string"},"logSplit":{"description":"Specifies whether to split log. Default is false.\n\n<a name=\"HostAccessConfigSingleLogFormat\"></a>\nThe <span pulumi-lang-nodejs=\"`singleLogFormat`\" pulumi-lang-dotnet=\"`SingleLogFormat`\" pulumi-lang-go=\"`singleLogFormat`\" pulumi-lang-python=\"`single_log_format`\" pulumi-lang-yaml=\"`singleLogFormat`\" pulumi-lang-java=\"`singleLogFormat`\">`single_log_format`</span> blocks supports:\n","type":"boolean"},"logStreamId":{"description":"Specifies the log stream ID.\nChanging this parameter will create a new resource.\n","type":"string"},"logStreamName":{"description":"The log stream name.\n","type":"string"},"ltsHostAccessV3Id":{"description":"The ID of the host access.\n","type":"string"},"name":{"description":"Specifies the host access name. The name consists of <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span> characters.\nOnly letters, digits, underscores (_), and periods (.) are allowed, and the period cannot be the first or last character.\nChanging this parameter will create a new resource.\n","type":"string"},"region":{"description":"Shows the region in the host access resource created.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value to attach to the host access.\n\n<a name=\"HostAccessConfigDetail\"></a>\nThe <span pulumi-lang-nodejs=\"`accessConfig`\" pulumi-lang-dotnet=\"`AccessConfig`\" pulumi-lang-go=\"`accessConfig`\" pulumi-lang-python=\"`access_config`\" pulumi-lang-yaml=\"`accessConfig`\" pulumi-lang-java=\"`accessConfig`\">`access_config`</span> block supports:\n","type":"object"}},"required":["accessConfig","accessType","binaryCollect","createdAt","hostGroupIds","logGroupId","logGroupName","logSplit","logStreamId","logStreamName","ltsHostAccessV3Id","name","region"],"requiredInputs":["accessConfig","logGroupId","logStreamId"],"stateInputs":{"description":"Input properties used for looking up and filtering LtsHostAccessV3 resources.\n","properties":{"accessConfig":{"$ref":"#/types/opentelekomcloud:index%2FLtsHostAccessV3AccessConfig:LtsHostAccessV3AccessConfig","description":"Specifies the configurations of host access.\nThe<span pulumi-lang-nodejs=\" accessConfig \" pulumi-lang-dotnet=\" AccessConfig \" pulumi-lang-go=\" accessConfig \" pulumi-lang-python=\" access_config \" pulumi-lang-yaml=\" accessConfig \" pulumi-lang-java=\" accessConfig \"> access_config </span>structure is documented below.\n"},"accessType":{"description":"The log access type.\n","type":"string"},"binaryCollect":{"description":"Specifies whether collect in binary format. Default is **false**.\n","type":"boolean"},"createdAt":{"description":"The creation time of the Host access, in RFC3339 format.\n","type":"string"},"hostGroupIds":{"description":"Specifies the log access host group ID list.\n","items":{"type":"string"},"type":"array"},"logGroupId":{"description":"Specifies the log group ID.\nChanging this parameter will create a new resource.\n","type":"string"},"logGroupName":{"description":"The log group name.\n","type":"string"},"logSplit":{"description":"Specifies whether to split log. Default is false.\n\n<a name=\"HostAccessConfigSingleLogFormat\"></a>\nThe <span pulumi-lang-nodejs=\"`singleLogFormat`\" pulumi-lang-dotnet=\"`SingleLogFormat`\" pulumi-lang-go=\"`singleLogFormat`\" pulumi-lang-python=\"`single_log_format`\" pulumi-lang-yaml=\"`singleLogFormat`\" pulumi-lang-java=\"`singleLogFormat`\">`single_log_format`</span> blocks supports:\n","type":"boolean"},"logStreamId":{"description":"Specifies the log stream ID.\nChanging this parameter will create a new resource.\n","type":"string"},"logStreamName":{"description":"The log stream name.\n","type":"string"},"ltsHostAccessV3Id":{"description":"The ID of the host access.\n","type":"string"},"name":{"description":"Specifies the host access name. The name consists of <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span> characters.\nOnly letters, digits, underscores (_), and periods (.) are allowed, and the period cannot be the first or last character.\nChanging this parameter will create a new resource.\n","type":"string"},"region":{"description":"Shows the region in the host access resource created.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value to attach to the host access.\n\n<a name=\"HostAccessConfigDetail\"></a>\nThe <span pulumi-lang-nodejs=\"`accessConfig`\" pulumi-lang-dotnet=\"`AccessConfig`\" pulumi-lang-go=\"`accessConfig`\" pulumi-lang-python=\"`access_config`\" pulumi-lang-yaml=\"`accessConfig`\" pulumi-lang-java=\"`accessConfig`\">`access_config`</span> block supports:\n","type":"object"}},"type":"object"},"type":"object"},"opentelekomcloud:index/ltsHostGroupV3:LtsHostGroupV3":{"description":"Up-to-date reference of API arguments for LTS host group you can get at\n[documentation portal](https://docs.otc.t-systems.com/log-tank-service/api-ref/apis/host_group_management/index.html)\n\nManages an LTS host group resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst groupName = config.requireObject<any>(\"groupName\");\nconst hostIds = config.requireObject<Array<string>>(\"hostIds\");\nconst test = new opentelekomcloud.LtsHostGroupV3(\"test\", {\n    name: groupName,\n    type: \"linux\",\n    hostIds: hostIds,\n    tags: {\n        foo: \"bar\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ngroup_name = config.require_object(\"groupName\")\nhost_ids = config.require_object(\"hostIds\")\ntest = opentelekomcloud.LtsHostGroupV3(\"test\",\n    name=group_name,\n    type=\"linux\",\n    host_ids=host_ids,\n    tags={\n        \"foo\": \"bar\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var groupName = config.RequireObject<dynamic>(\"groupName\");\n    var hostIds = config.RequireObject<string[]>(\"hostIds\");\n    var test = new Opentelekomcloud.LtsHostGroupV3(\"test\", new()\n    {\n        Name = groupName,\n        Type = \"linux\",\n        HostIds = hostIds,\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tgroupName := cfg.RequireObject(\"groupName\")\n\t\thostIds := cfg.Require(\"hostIds\")\n\t\t_, err := opentelekomcloud.NewLtsHostGroupV3(ctx, \"test\", &opentelekomcloud.LtsHostGroupV3Args{\n\t\t\tName:    pulumi.Any(groupName),\n\t\t\tType:    pulumi.String(\"linux\"),\n\t\t\tHostIds: hostIds,\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.LtsHostGroupV3;\nimport com.pulumi.opentelekomcloud.LtsHostGroupV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var groupName = config.get(\"groupName\");\n        final var hostIds = config.get(\"hostIds\");\n        var test = new LtsHostGroupV3(\"test\", LtsHostGroupV3Args.builder()\n            .name(groupName)\n            .type(\"linux\")\n            .hostIds(hostIds)\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  groupName:\n    type: dynamic\n  hostIds:\n    type: list(string)\nresources:\n  test:\n    type: opentelekomcloud:LtsHostGroupV3\n    properties:\n      name: ${groupName}\n      type: linux\n      hostIds: ${hostIds}\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe host group can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/ltsHostGroupV3:LtsHostGroupV3 test <id>\n```\n\n","inputProperties":{"agentAccessType":{"description":"Specifies the type of the host group.\nThe default value is `IP`.\nThe valid values are as follows:\n+ `IP`\n+ `LABEL`\n","type":"string"},"hostIds":{"description":"Specifies the ID list of hosts to join the host group.\n","items":{"type":"string"},"type":"array"},"labels":{"description":"Specifies the custom label list of the host group.\nThis parameter is required when <span pulumi-lang-nodejs=\"`agentAccessType`\" pulumi-lang-dotnet=\"`AgentAccessType`\" pulumi-lang-go=\"`agentAccessType`\" pulumi-lang-python=\"`agent_access_type`\" pulumi-lang-yaml=\"`agentAccessType`\" pulumi-lang-java=\"`agentAccessType`\">`agent_access_type`</span> is set to **LABEL**.\n\n> Currently, a maximum of <span pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\">`10`</span> labels can be created.\n","items":{"type":"string"},"type":"array"},"ltsHostGroupV3Id":{"description":"The resource ID.\n","type":"string"},"name":{"description":"Specifies the name of the host group.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value to attach to the host group.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FLtsHostGroupV3Timeouts:LtsHostGroupV3Timeouts"},"type":{"description":"Specifies the type of the host.\nThe value can be <span pulumi-lang-nodejs=\"`linux`\" pulumi-lang-dotnet=\"`Linux`\" pulumi-lang-go=\"`linux`\" pulumi-lang-python=\"`linux`\" pulumi-lang-yaml=\"`linux`\" pulumi-lang-java=\"`linux`\">`linux`</span> and <span pulumi-lang-nodejs=\"`windows`\" pulumi-lang-dotnet=\"`Windows`\" pulumi-lang-go=\"`windows`\" pulumi-lang-python=\"`windows`\" pulumi-lang-yaml=\"`windows`\" pulumi-lang-java=\"`windows`\">`windows`</span>.\n\nChanging this parameter will create a new resource.\n","type":"string"}},"properties":{"agentAccessType":{"description":"Specifies the type of the host group.\nThe default value is `IP`.\nThe valid values are as follows:\n+ `IP`\n+ `LABEL`\n","type":"string"},"createdAt":{"description":"The creation time.\n","type":"string"},"hostIds":{"description":"Specifies the ID list of hosts to join the host group.\n","items":{"type":"string"},"type":"array"},"labels":{"description":"Specifies the custom label list of the host group.\nThis parameter is required when <span pulumi-lang-nodejs=\"`agentAccessType`\" pulumi-lang-dotnet=\"`AgentAccessType`\" pulumi-lang-go=\"`agentAccessType`\" pulumi-lang-python=\"`agent_access_type`\" pulumi-lang-yaml=\"`agentAccessType`\" pulumi-lang-java=\"`agentAccessType`\">`agent_access_type`</span> is set to **LABEL**.\n\n> Currently, a maximum of <span pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\">`10`</span> labels can be created.\n","items":{"type":"string"},"type":"array"},"ltsHostGroupV3Id":{"description":"The resource ID.\n","type":"string"},"name":{"description":"Specifies the name of the host group.\n","type":"string"},"region":{"description":"Shows the region in the host group resource created.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value to attach to the host group.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FLtsHostGroupV3Timeouts:LtsHostGroupV3Timeouts"},"type":{"description":"Specifies the type of the host.\nThe value can be <span pulumi-lang-nodejs=\"`linux`\" pulumi-lang-dotnet=\"`Linux`\" pulumi-lang-go=\"`linux`\" pulumi-lang-python=\"`linux`\" pulumi-lang-yaml=\"`linux`\" pulumi-lang-java=\"`linux`\">`linux`</span> and <span pulumi-lang-nodejs=\"`windows`\" pulumi-lang-dotnet=\"`Windows`\" pulumi-lang-go=\"`windows`\" pulumi-lang-python=\"`windows`\" pulumi-lang-yaml=\"`windows`\" pulumi-lang-java=\"`windows`\">`windows`</span>.\n\nChanging this parameter will create a new resource.\n","type":"string"},"updatedAt":{"description":"The latest update time.\n","type":"string"}},"required":["agentAccessType","createdAt","ltsHostGroupV3Id","name","region","type","updatedAt"],"requiredInputs":["type"],"stateInputs":{"description":"Input properties used for looking up and filtering LtsHostGroupV3 resources.\n","properties":{"agentAccessType":{"description":"Specifies the type of the host group.\nThe default value is `IP`.\nThe valid values are as follows:\n+ `IP`\n+ `LABEL`\n","type":"string"},"createdAt":{"description":"The creation time.\n","type":"string"},"hostIds":{"description":"Specifies the ID list of hosts to join the host group.\n","items":{"type":"string"},"type":"array"},"labels":{"description":"Specifies the custom label list of the host group.\nThis parameter is required when <span pulumi-lang-nodejs=\"`agentAccessType`\" pulumi-lang-dotnet=\"`AgentAccessType`\" pulumi-lang-go=\"`agentAccessType`\" pulumi-lang-python=\"`agent_access_type`\" pulumi-lang-yaml=\"`agentAccessType`\" pulumi-lang-java=\"`agentAccessType`\">`agent_access_type`</span> is set to **LABEL**.\n\n> Currently, a maximum of <span pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\">`10`</span> labels can be created.\n","items":{"type":"string"},"type":"array"},"ltsHostGroupV3Id":{"description":"The resource ID.\n","type":"string"},"name":{"description":"Specifies the name of the host group.\n","type":"string"},"region":{"description":"Shows the region in the host group resource created.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value to attach to the host group.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FLtsHostGroupV3Timeouts:LtsHostGroupV3Timeouts"},"type":{"description":"Specifies the type of the host.\nThe value can be <span pulumi-lang-nodejs=\"`linux`\" pulumi-lang-dotnet=\"`Linux`\" pulumi-lang-go=\"`linux`\" pulumi-lang-python=\"`linux`\" pulumi-lang-yaml=\"`linux`\" pulumi-lang-java=\"`linux`\">`linux`</span> and <span pulumi-lang-nodejs=\"`windows`\" pulumi-lang-dotnet=\"`Windows`\" pulumi-lang-go=\"`windows`\" pulumi-lang-python=\"`windows`\" pulumi-lang-yaml=\"`windows`\" pulumi-lang-java=\"`windows`\">`windows`</span>.\n\nChanging this parameter will create a new resource.\n","type":"string"},"updatedAt":{"description":"The latest update time.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/ltsKeywordsAlarmRuleV2:LtsKeywordsAlarmRuleV2":{"description":"Up-to-date reference of API arguments for LTS log group you can get at\n[documentation portal](https://docs.otc.t-systems.com/log-tank-service/api-ref/apis/keyword_alarm_rules/index.html)\n\n\nManages an LTS keywords alarm rule resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst logGroupId = config.requireObject<any>(\"logGroupId\");\nconst logStreamId = config.requireObject<any>(\"logStreamId\");\nconst topicName = config.requireObject<any>(\"topicName\");\nconst topicUrn = config.requireObject<any>(\"topicUrn\");\nconst test = new opentelekomcloud.LtsKeywordsAlarmRuleV2(\"test\", {\n    name: \"name\",\n    description: \"created by terraform\",\n    severity: \"CRITICAL\",\n    notificationFrequency: 5,\n    keywordsRequests: [{\n        keyword: \"key_words\",\n        condition: \">\",\n        number: 100,\n        logGroupId: logGroupId,\n        logStreamId: logStreamId,\n        searchTimeRangeUnit: \"minute\",\n        searchTimeRange: 5,\n    }],\n    frequency: {\n        type: \"HOURLY\",\n    },\n    notificationRule: {\n        language: \"en-us\",\n        timezone: \"xx/xx\",\n        userName: \"test\",\n        topics: [{\n            name: topicName,\n            topicUrn: topicUrn,\n        }],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nlog_group_id = config.require_object(\"logGroupId\")\nlog_stream_id = config.require_object(\"logStreamId\")\ntopic_name = config.require_object(\"topicName\")\ntopic_urn = config.require_object(\"topicUrn\")\ntest = opentelekomcloud.LtsKeywordsAlarmRuleV2(\"test\",\n    name=\"name\",\n    description=\"created by terraform\",\n    severity=\"CRITICAL\",\n    notification_frequency=5,\n    keywords_requests=[{\n        \"keyword\": \"key_words\",\n        \"condition\": \">\",\n        \"number\": 100,\n        \"log_group_id\": log_group_id,\n        \"log_stream_id\": log_stream_id,\n        \"search_time_range_unit\": \"minute\",\n        \"search_time_range\": 5,\n    }],\n    frequency={\n        \"type\": \"HOURLY\",\n    },\n    notification_rule={\n        \"language\": \"en-us\",\n        \"timezone\": \"xx/xx\",\n        \"user_name\": \"test\",\n        \"topics\": [{\n            \"name\": topic_name,\n            \"topic_urn\": topic_urn,\n        }],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var logGroupId = config.RequireObject<dynamic>(\"logGroupId\");\n    var logStreamId = config.RequireObject<dynamic>(\"logStreamId\");\n    var topicName = config.RequireObject<dynamic>(\"topicName\");\n    var topicUrn = config.RequireObject<dynamic>(\"topicUrn\");\n    var test = new Opentelekomcloud.LtsKeywordsAlarmRuleV2(\"test\", new()\n    {\n        Name = \"name\",\n        Description = \"created by terraform\",\n        Severity = \"CRITICAL\",\n        NotificationFrequency = 5,\n        KeywordsRequests = new[]\n        {\n            new Opentelekomcloud.Inputs.LtsKeywordsAlarmRuleV2KeywordsRequestArgs\n            {\n                Keyword = \"key_words\",\n                Condition = \">\",\n                Number = 100,\n                LogGroupId = logGroupId,\n                LogStreamId = logStreamId,\n                SearchTimeRangeUnit = \"minute\",\n                SearchTimeRange = 5,\n            },\n        },\n        Frequency = new Opentelekomcloud.Inputs.LtsKeywordsAlarmRuleV2FrequencyArgs\n        {\n            Type = \"HOURLY\",\n        },\n        NotificationRule = new Opentelekomcloud.Inputs.LtsKeywordsAlarmRuleV2NotificationRuleArgs\n        {\n            Language = \"en-us\",\n            Timezone = \"xx/xx\",\n            UserName = \"test\",\n            Topics = new[]\n            {\n                new Opentelekomcloud.Inputs.LtsKeywordsAlarmRuleV2NotificationRuleTopicArgs\n                {\n                    Name = topicName,\n                    TopicUrn = topicUrn,\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tlogGroupId := cfg.RequireObject(\"logGroupId\")\n\t\tlogStreamId := cfg.RequireObject(\"logStreamId\")\n\t\ttopicName := cfg.RequireObject(\"topicName\")\n\t\ttopicUrn := cfg.RequireObject(\"topicUrn\")\n\t\t_, err := opentelekomcloud.NewLtsKeywordsAlarmRuleV2(ctx, \"test\", &opentelekomcloud.LtsKeywordsAlarmRuleV2Args{\n\t\t\tName:                  pulumi.String(\"name\"),\n\t\t\tDescription:           pulumi.String(\"created by terraform\"),\n\t\t\tSeverity:              pulumi.String(\"CRITICAL\"),\n\t\t\tNotificationFrequency: pulumi.Float64(5),\n\t\t\tKeywordsRequests: opentelekomcloud.LtsKeywordsAlarmRuleV2KeywordsRequestArray{\n\t\t\t\t&opentelekomcloud.LtsKeywordsAlarmRuleV2KeywordsRequestArgs{\n\t\t\t\t\tKeyword:             pulumi.String(\"key_words\"),\n\t\t\t\t\tCondition:           pulumi.String(\">\"),\n\t\t\t\t\tNumber:              pulumi.Float64(100),\n\t\t\t\t\tLogGroupId:          pulumi.Any(logGroupId),\n\t\t\t\t\tLogStreamId:         pulumi.Any(logStreamId),\n\t\t\t\t\tSearchTimeRangeUnit: pulumi.String(\"minute\"),\n\t\t\t\t\tSearchTimeRange:     pulumi.Float64(5),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFrequency: &opentelekomcloud.LtsKeywordsAlarmRuleV2FrequencyArgs{\n\t\t\t\tType: pulumi.String(\"HOURLY\"),\n\t\t\t},\n\t\t\tNotificationRule: &opentelekomcloud.LtsKeywordsAlarmRuleV2NotificationRuleArgs{\n\t\t\t\tLanguage: pulumi.String(\"en-us\"),\n\t\t\t\tTimezone: pulumi.String(\"xx/xx\"),\n\t\t\t\tUserName: pulumi.String(\"test\"),\n\t\t\t\tTopics: opentelekomcloud.LtsKeywordsAlarmRuleV2NotificationRuleTopicArray{\n\t\t\t\t\t&opentelekomcloud.LtsKeywordsAlarmRuleV2NotificationRuleTopicArgs{\n\t\t\t\t\t\tName:     pulumi.Any(topicName),\n\t\t\t\t\t\tTopicUrn: pulumi.Any(topicUrn),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.LtsKeywordsAlarmRuleV2;\nimport com.pulumi.opentelekomcloud.LtsKeywordsAlarmRuleV2Args;\nimport com.pulumi.opentelekomcloud.inputs.LtsKeywordsAlarmRuleV2KeywordsRequestArgs;\nimport com.pulumi.opentelekomcloud.inputs.LtsKeywordsAlarmRuleV2FrequencyArgs;\nimport com.pulumi.opentelekomcloud.inputs.LtsKeywordsAlarmRuleV2NotificationRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var logGroupId = config.get(\"logGroupId\");\n        final var logStreamId = config.get(\"logStreamId\");\n        final var topicName = config.get(\"topicName\");\n        final var topicUrn = config.get(\"topicUrn\");\n        var test = new LtsKeywordsAlarmRuleV2(\"test\", LtsKeywordsAlarmRuleV2Args.builder()\n            .name(\"name\")\n            .description(\"created by terraform\")\n            .severity(\"CRITICAL\")\n            .notificationFrequency(5.0)\n            .keywordsRequests(LtsKeywordsAlarmRuleV2KeywordsRequestArgs.builder()\n                .keyword(\"key_words\")\n                .condition(\">\")\n                .number(100.0)\n                .logGroupId(logGroupId)\n                .logStreamId(logStreamId)\n                .searchTimeRangeUnit(\"minute\")\n                .searchTimeRange(5.0)\n                .build())\n            .frequency(LtsKeywordsAlarmRuleV2FrequencyArgs.builder()\n                .type(\"HOURLY\")\n                .build())\n            .notificationRule(LtsKeywordsAlarmRuleV2NotificationRuleArgs.builder()\n                .language(\"en-us\")\n                .timezone(\"xx/xx\")\n                .userName(\"test\")\n                .topics(LtsKeywordsAlarmRuleV2NotificationRuleTopicArgs.builder()\n                    .name(topicName)\n                    .topicUrn(topicUrn)\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  logGroupId:\n    type: dynamic\n  logStreamId:\n    type: dynamic\n  topicName:\n    type: dynamic\n  topicUrn:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:LtsKeywordsAlarmRuleV2\n    properties:\n      name: name\n      description: created by terraform\n      severity: CRITICAL\n      notificationFrequency: 5\n      keywordsRequests:\n        - keyword: key_words\n          condition: '>'\n          number: 100\n          logGroupId: ${logGroupId}\n          logStreamId: ${logStreamId}\n          searchTimeRangeUnit: minute\n          searchTimeRange: 5\n      frequency:\n        type: HOURLY\n      notificationRule:\n        language: en-us\n        timezone: xx/xx\n        userName: test\n        topics:\n          - name: ${topicName}\n            topicUrn: ${topicUrn}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe keywords alarm rule can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/ltsKeywordsAlarmRuleV2:LtsKeywordsAlarmRuleV2 test <id>\n```\n\nNote that the imported state may not be identical to your resource definition, due to some attributes missing from the\n\nAPI response. The missing attributes include: `notification_rule`.\n\nhcl\n\nresource \"opentelekomcloud_lts_keywords_alarm_rule_v2\" \"test\" {\n\n  lifecycle {\n\n    ignore_changes = [\n\n      notification_rule,\n\n    ]\n\n  }\n\n}\n\n","inputProperties":{"alarmActionRuleName":{"type":"string"},"description":{"description":"Specifies the description of the keywords alarm rule.\n","type":"string"},"frequency":{"$ref":"#/types/opentelekomcloud:index%2FLtsKeywordsAlarmRuleV2Frequency:LtsKeywordsAlarmRuleV2Frequency","description":"Specifies the alarm frequency configurations.\nThe Frequency structure is documented below.\n"},"keywordsRequests":{"description":"Specifies the keywords requests.\nThe KeywordsRequests structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FLtsKeywordsAlarmRuleV2KeywordsRequest:LtsKeywordsAlarmRuleV2KeywordsRequest"},"type":"array"},"ltsKeywordsAlarmRuleV2Id":{"description":"The resource ID.\n","type":"string"},"name":{"description":"Specifies the topic name.\nChanging this parameter will create a new resource.\n","type":"string"},"notificationFrequency":{"description":"Specifies notification frequency, in minutes.\n","type":"number"},"notificationRule":{"$ref":"#/types/opentelekomcloud:index%2FLtsKeywordsAlarmRuleV2NotificationRule:LtsKeywordsAlarmRuleV2NotificationRule","description":"Specifies the notification rule.\nThe NotificationRule structure is documented below.\n"},"recoveryPolicy":{"type":"number"},"sendNotifications":{"description":"Specifies whether to send notifications.\n","type":"boolean"},"sendRecoveryNotifications":{"description":"Specifies whether to send recovery notifications.\n","type":"boolean"},"severity":{"description":"Specifies the alarm level.\nThe value can be: **INFO**, **MINOR**, **MAJOR** and **CRITICAL**.\n","type":"string"},"triggerConditionCount":{"description":"Specifies the count to trigger the alarm.\nDefaults to <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>.\n","type":"number"},"triggerConditionFrequency":{"description":"Specifies the frequency to trigger the alarm.\nDefaults to <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>.\n","type":"number"}},"properties":{"alarmActionRuleName":{"type":"string"},"createdAt":{"description":"The creation time of the alarm rule.\n","type":"string"},"description":{"description":"Specifies the description of the keywords alarm rule.\n","type":"string"},"domainId":{"description":"The domain ID.\n","type":"string"},"frequency":{"$ref":"#/types/opentelekomcloud:index%2FLtsKeywordsAlarmRuleV2Frequency:LtsKeywordsAlarmRuleV2Frequency","description":"Specifies the alarm frequency configurations.\nThe Frequency structure is documented below.\n"},"keywordsRequests":{"description":"Specifies the keywords requests.\nThe KeywordsRequests structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FLtsKeywordsAlarmRuleV2KeywordsRequest:LtsKeywordsAlarmRuleV2KeywordsRequest"},"type":"array"},"ltsKeywordsAlarmRuleV2Id":{"description":"The resource ID.\n","type":"string"},"name":{"description":"Specifies the topic name.\nChanging this parameter will create a new resource.\n","type":"string"},"notificationFrequency":{"description":"Specifies notification frequency, in minutes.\n","type":"number"},"notificationRule":{"$ref":"#/types/opentelekomcloud:index%2FLtsKeywordsAlarmRuleV2NotificationRule:LtsKeywordsAlarmRuleV2NotificationRule","description":"Specifies the notification rule.\nThe NotificationRule structure is documented below.\n"},"recoveryPolicy":{"type":"number"},"region":{"description":"Shows the region in the rule resource created.\n","type":"string"},"sendNotifications":{"description":"Specifies whether to send notifications.\n","type":"boolean"},"sendRecoveryNotifications":{"description":"Specifies whether to send recovery notifications.\n","type":"boolean"},"severity":{"description":"Specifies the alarm level.\nThe value can be: **INFO**, **MINOR**, **MAJOR** and **CRITICAL**.\n","type":"string"},"status":{"description":"Status of the rule.\n","type":"string"},"triggerConditionCount":{"description":"Specifies the count to trigger the alarm.\nDefaults to <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>.\n","type":"number"},"triggerConditionFrequency":{"description":"Specifies the frequency to trigger the alarm.\nDefaults to <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>.\n","type":"number"},"updatedAt":{"description":"The last update time of the alarm rule.\n","type":"string"}},"required":["createdAt","domainId","frequency","keywordsRequests","ltsKeywordsAlarmRuleV2Id","name","notificationFrequency","recoveryPolicy","region","sendNotifications","sendRecoveryNotifications","severity","status","triggerConditionCount","triggerConditionFrequency","updatedAt"],"requiredInputs":["frequency","keywordsRequests","notificationFrequency","severity"],"stateInputs":{"description":"Input properties used for looking up and filtering LtsKeywordsAlarmRuleV2 resources.\n","properties":{"alarmActionRuleName":{"type":"string"},"createdAt":{"description":"The creation time of the alarm rule.\n","type":"string"},"description":{"description":"Specifies the description of the keywords alarm rule.\n","type":"string"},"domainId":{"description":"The domain ID.\n","type":"string"},"frequency":{"$ref":"#/types/opentelekomcloud:index%2FLtsKeywordsAlarmRuleV2Frequency:LtsKeywordsAlarmRuleV2Frequency","description":"Specifies the alarm frequency configurations.\nThe Frequency structure is documented below.\n"},"keywordsRequests":{"description":"Specifies the keywords requests.\nThe KeywordsRequests structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FLtsKeywordsAlarmRuleV2KeywordsRequest:LtsKeywordsAlarmRuleV2KeywordsRequest"},"type":"array"},"ltsKeywordsAlarmRuleV2Id":{"description":"The resource ID.\n","type":"string"},"name":{"description":"Specifies the topic name.\nChanging this parameter will create a new resource.\n","type":"string"},"notificationFrequency":{"description":"Specifies notification frequency, in minutes.\n","type":"number"},"notificationRule":{"$ref":"#/types/opentelekomcloud:index%2FLtsKeywordsAlarmRuleV2NotificationRule:LtsKeywordsAlarmRuleV2NotificationRule","description":"Specifies the notification rule.\nThe NotificationRule structure is documented below.\n"},"recoveryPolicy":{"type":"number"},"region":{"description":"Shows the region in the rule resource created.\n","type":"string"},"sendNotifications":{"description":"Specifies whether to send notifications.\n","type":"boolean"},"sendRecoveryNotifications":{"description":"Specifies whether to send recovery notifications.\n","type":"boolean"},"severity":{"description":"Specifies the alarm level.\nThe value can be: **INFO**, **MINOR**, **MAJOR** and **CRITICAL**.\n","type":"string"},"status":{"description":"Status of the rule.\n","type":"string"},"triggerConditionCount":{"description":"Specifies the count to trigger the alarm.\nDefaults to <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>.\n","type":"number"},"triggerConditionFrequency":{"description":"Specifies the frequency to trigger the alarm.\nDefaults to <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>.\n","type":"number"},"updatedAt":{"description":"The last update time of the alarm rule.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/ltsNotificationTemplateV2:LtsNotificationTemplateV2":{"description":"Up-to-date reference of API arguments for LTS log group you can get at\n[documentation portal](https://docs.otc.t-systems.com/log-tank-service/api-ref/apis/message_template_management/index.html)\n\nManages an LTS notification template resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```yaml\nresources:\n  test:\n    type: opentelekomcloud:LtsNotificationTemplateV2\n    properties:\n      name: my_template\n      description: test\n      source: LTS\n      locale: en-us\n      templates:\n        - subType: sms\n          content: |\n            Account:$${domain_name};\n            Alarm Rules:<a href=\\\"$event.annotations.alarm_rule_url\\\">$${event_name}</a>;\n            Alarm Status:$event.annotations.alarm_status;\n            Severity:<span style=\\\"color: red\\\">$${event_severity}</span>;\n            Occurred:$${starts_at};\n            Type:Keywords;\n            Condition Expression:$event.annotations.condition_expression;\n            Current Value:$event.annotations.current_value;\n            Frequency:$event.annotations.frequency;\n            Log Group/Stream Name:$event.annotations.results[0].resource_id;\n            Query Time:$event.annotations.results[0].time;\n            Query URL:<a href=\\\"$event.annotations.results[0].url\\\">details</a>;\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe LTS notification template can be imported using the `id` which equals `name`, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/ltsNotificationTemplateV2:LtsNotificationTemplateV2 test <id>\n```\n\n","inputProperties":{"description":{"description":"The description of the notification template.\n\n<a name=\"NotificationTemplate\"></a>\nThe <span pulumi-lang-nodejs=\"`templates`\" pulumi-lang-dotnet=\"`Templates`\" pulumi-lang-go=\"`templates`\" pulumi-lang-python=\"`templates`\" pulumi-lang-yaml=\"`templates`\" pulumi-lang-java=\"`templates`\">`templates`</span> block supports:\n","type":"string"},"language":{"type":"string"},"ltsNotificationTemplateV2Id":{"description":"The resource ID which equals <span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span>.\n","type":"string"},"name":{"description":"The name of the notification template.\nChanging this parameter will create a new resource.\n","type":"string"},"source":{"description":"The source of the notification template.\nCurrently, this parameter is mandatory to `LTS`.\n","type":"string"},"templates":{"description":"The list of notification template body.\nThe templates structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FLtsNotificationTemplateV2Template:LtsNotificationTemplateV2Template"},"type":"array"}},"properties":{"description":{"description":"The description of the notification template.\n\n<a name=\"NotificationTemplate\"></a>\nThe <span pulumi-lang-nodejs=\"`templates`\" pulumi-lang-dotnet=\"`Templates`\" pulumi-lang-go=\"`templates`\" pulumi-lang-python=\"`templates`\" pulumi-lang-yaml=\"`templates`\" pulumi-lang-java=\"`templates`\">`templates`</span> block supports:\n","type":"string"},"language":{"type":"string"},"ltsNotificationTemplateV2Id":{"description":"The resource ID which equals <span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span>.\n","type":"string"},"name":{"description":"The name of the notification template.\nChanging this parameter will create a new resource.\n","type":"string"},"region":{"description":"Shows the region in the template resource created.\n","type":"string"},"source":{"description":"The source of the notification template.\nCurrently, this parameter is mandatory to `LTS`.\n","type":"string"},"templates":{"description":"The list of notification template body.\nThe templates structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FLtsNotificationTemplateV2Template:LtsNotificationTemplateV2Template"},"type":"array"}},"required":["description","language","ltsNotificationTemplateV2Id","name","region","source","templates"],"requiredInputs":["language","source","templates"],"stateInputs":{"description":"Input properties used for looking up and filtering LtsNotificationTemplateV2 resources.\n","properties":{"description":{"description":"The description of the notification template.\n\n<a name=\"NotificationTemplate\"></a>\nThe <span pulumi-lang-nodejs=\"`templates`\" pulumi-lang-dotnet=\"`Templates`\" pulumi-lang-go=\"`templates`\" pulumi-lang-python=\"`templates`\" pulumi-lang-yaml=\"`templates`\" pulumi-lang-java=\"`templates`\">`templates`</span> block supports:\n","type":"string"},"language":{"type":"string"},"ltsNotificationTemplateV2Id":{"description":"The resource ID which equals <span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span>.\n","type":"string"},"name":{"description":"The name of the notification template.\nChanging this parameter will create a new resource.\n","type":"string"},"region":{"description":"Shows the region in the template resource created.\n","type":"string"},"source":{"description":"The source of the notification template.\nCurrently, this parameter is mandatory to `LTS`.\n","type":"string"},"templates":{"description":"The list of notification template body.\nThe templates structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FLtsNotificationTemplateV2Template:LtsNotificationTemplateV2Template"},"type":"array"}},"type":"object"},"type":"object"},"opentelekomcloud:index/ltsQuickSearchCriteriaV1:LtsQuickSearchCriteriaV1":{"description":"Up-to-date reference of API arguments for LTS log group you can get at\n[documentation portal](https://docs.otc.t-systems.com/log-tank-service/api-ref/apis/quick_search/index.html)\n\nManages an LTS quick search criteria resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst logGroupId = config.requireObject<any>(\"logGroupId\");\nconst logStreamId = config.requireObject<any>(\"logStreamId\");\nconst qsc = new opentelekomcloud.LtsQuickSearchCriteriaV1(\"qsc\", {\n    logGroupId: logGroupId,\n    logStreamId: logStreamId,\n    criteria: \"content:test\",\n    name: \"search_criteria_test\",\n    type: \"ORIGINALLOG\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nlog_group_id = config.require_object(\"logGroupId\")\nlog_stream_id = config.require_object(\"logStreamId\")\nqsc = opentelekomcloud.LtsQuickSearchCriteriaV1(\"qsc\",\n    log_group_id=log_group_id,\n    log_stream_id=log_stream_id,\n    criteria=\"content:test\",\n    name=\"search_criteria_test\",\n    type=\"ORIGINALLOG\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var logGroupId = config.RequireObject<dynamic>(\"logGroupId\");\n    var logStreamId = config.RequireObject<dynamic>(\"logStreamId\");\n    var qsc = new Opentelekomcloud.LtsQuickSearchCriteriaV1(\"qsc\", new()\n    {\n        LogGroupId = logGroupId,\n        LogStreamId = logStreamId,\n        Criteria = \"content:test\",\n        Name = \"search_criteria_test\",\n        Type = \"ORIGINALLOG\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tlogGroupId := cfg.RequireObject(\"logGroupId\")\n\t\tlogStreamId := cfg.RequireObject(\"logStreamId\")\n\t\t_, err := opentelekomcloud.NewLtsQuickSearchCriteriaV1(ctx, \"qsc\", &opentelekomcloud.LtsQuickSearchCriteriaV1Args{\n\t\t\tLogGroupId:  pulumi.Any(logGroupId),\n\t\t\tLogStreamId: pulumi.Any(logStreamId),\n\t\t\tCriteria:    pulumi.String(\"content:test\"),\n\t\t\tName:        pulumi.String(\"search_criteria_test\"),\n\t\t\tType:        pulumi.String(\"ORIGINALLOG\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.LtsQuickSearchCriteriaV1;\nimport com.pulumi.opentelekomcloud.LtsQuickSearchCriteriaV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var logGroupId = config.get(\"logGroupId\");\n        final var logStreamId = config.get(\"logStreamId\");\n        var qsc = new LtsQuickSearchCriteriaV1(\"qsc\", LtsQuickSearchCriteriaV1Args.builder()\n            .logGroupId(logGroupId)\n            .logStreamId(logStreamId)\n            .criteria(\"content:test\")\n            .name(\"search_criteria_test\")\n            .type(\"ORIGINALLOG\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  logGroupId:\n    type: dynamic\n  logStreamId:\n    type: dynamic\nresources:\n  qsc:\n    type: opentelekomcloud:LtsQuickSearchCriteriaV1\n    properties:\n      logGroupId: ${logGroupId}\n      logStreamId: ${logStreamId}\n      criteria: content:test\n      name: search_criteria_test\n      type: ORIGINALLOG\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe search criteria can be imported using the group ID, stream ID, and resource ID separated by the slashes, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/ltsQuickSearchCriteriaV1:LtsQuickSearchCriteriaV1 test <log_group_id>/<log_stream_id>/<id>\n```\n\n","inputProperties":{"criteria":{"description":"Specifies the content of search criteria.\n\nChanging this parameter will create a new resource.\n","type":"string"},"logGroupId":{"description":"Specifies the ID of a log group.\n\nChanging this parameter will create a new resource.\n","type":"string"},"logStreamId":{"description":"Specifies the ID of a log stream.\n\nChanging this parameter will create a new resource.\n","type":"string"},"ltsQuickSearchCriteriaV1Id":{"description":"The resource ID.\n","type":"string"},"name":{"description":"Specifies the name of the search criteria. The name can only contain English\nletters, numbers, hyphens, underscores, and periods. It cannot start with a period or underscore\nor end with a period.\n\nChanging this parameter will create a new resource.\n","type":"string"},"type":{"description":"Specifies the type of the search criteria. Available types are\n`ORIGINALLOG` (for raw logs).\n\nChanging this parameter will create a new resource.\n","type":"string"}},"properties":{"criteria":{"description":"Specifies the content of search criteria.\n\nChanging this parameter will create a new resource.\n","type":"string"},"logGroupId":{"description":"Specifies the ID of a log group.\n\nChanging this parameter will create a new resource.\n","type":"string"},"logStreamId":{"description":"Specifies the ID of a log stream.\n\nChanging this parameter will create a new resource.\n","type":"string"},"ltsQuickSearchCriteriaV1Id":{"description":"The resource ID.\n","type":"string"},"name":{"description":"Specifies the name of the search criteria. The name can only contain English\nletters, numbers, hyphens, underscores, and periods. It cannot start with a period or underscore\nor end with a period.\n\nChanging this parameter will create a new resource.\n","type":"string"},"region":{"description":"Shows the region in the search criteria resource created.\n","type":"string"},"type":{"description":"Specifies the type of the search criteria. Available types are\n`ORIGINALLOG` (for raw logs).\n\nChanging this parameter will create a new resource.\n","type":"string"}},"required":["criteria","logGroupId","logStreamId","ltsQuickSearchCriteriaV1Id","name","region","type"],"requiredInputs":["criteria","logGroupId","logStreamId","type"],"stateInputs":{"description":"Input properties used for looking up and filtering LtsQuickSearchCriteriaV1 resources.\n","properties":{"criteria":{"description":"Specifies the content of search criteria.\n\nChanging this parameter will create a new resource.\n","type":"string"},"logGroupId":{"description":"Specifies the ID of a log group.\n\nChanging this parameter will create a new resource.\n","type":"string"},"logStreamId":{"description":"Specifies the ID of a log stream.\n\nChanging this parameter will create a new resource.\n","type":"string"},"ltsQuickSearchCriteriaV1Id":{"description":"The resource ID.\n","type":"string"},"name":{"description":"Specifies the name of the search criteria. The name can only contain English\nletters, numbers, hyphens, underscores, and periods. It cannot start with a period or underscore\nor end with a period.\n\nChanging this parameter will create a new resource.\n","type":"string"},"region":{"description":"Shows the region in the search criteria resource created.\n","type":"string"},"type":{"description":"Specifies the type of the search criteria. Available types are\n`ORIGINALLOG` (for raw logs).\n\nChanging this parameter will create a new resource.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/ltsStreamV2:LtsStreamV2":{"description":"Up-to-date reference of API arguments for LTS log group you can get at\n[documentation portal](https://docs.otc.t-systems.com/log-tank-service/api-ref/apis/log_stream_management/index.html)\n\nManage a log stream resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst groupId = config.requireObject<any>(\"groupId\");\nconst test = new opentelekomcloud.LtsStreamV2(\"test\", {\n    groupId: groupId,\n    streamName: \"test_stream\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ngroup_id = config.require_object(\"groupId\")\ntest = opentelekomcloud.LtsStreamV2(\"test\",\n    group_id=group_id,\n    stream_name=\"test_stream\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var groupId = config.RequireObject<dynamic>(\"groupId\");\n    var test = new Opentelekomcloud.LtsStreamV2(\"test\", new()\n    {\n        GroupId = groupId,\n        StreamName = \"test_stream\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tgroupId := cfg.RequireObject(\"groupId\")\n\t\t_, err := opentelekomcloud.NewLtsStreamV2(ctx, \"test\", &opentelekomcloud.LtsStreamV2Args{\n\t\t\tGroupId:    pulumi.Any(groupId),\n\t\t\tStreamName: pulumi.String(\"test_stream\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.LtsStreamV2;\nimport com.pulumi.opentelekomcloud.LtsStreamV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var groupId = config.get(\"groupId\");\n        var test = new LtsStreamV2(\"test\", LtsStreamV2Args.builder()\n            .groupId(groupId)\n            .streamName(\"test_stream\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  groupId:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:LtsStreamV2\n    properties:\n      groupId: ${groupId}\n      streamName: test_stream\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe log stream can be imported using the group ID and stream ID separated by a slash, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/ltsStreamV2:LtsStreamV2 test <group_id>/<id>\n```\n\n","inputProperties":{"groupId":{"description":"Specifies the ID of a created log group. Changing this parameter will create\na new resource.\n","type":"string"},"ltsStreamV2Id":{"description":"The log stream ID.\n","type":"string"},"streamAlias":{"type":"string"},"streamName":{"description":"Specifies the log stream name. Changing this parameter will create a new\nresource.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value pairs of the log stream.\n","type":"object"},"ttlInDays":{"description":"Specifies the log expiration time (days).\nThe valid value is a non-zero integer from `-1` to <span pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\">`365`</span>, defaults to `-1` which means inherit the log group settings.\n","type":"number"}},"properties":{"createdAt":{"description":"The creation time of the log stream.\n","type":"string"},"enterpriseProjectId":{"description":"Shows the enterprise project ID to which the log stream belongs.\n","type":"string"},"filterCount":{"description":"Number of log stream filters.\n","type":"number"},"groupId":{"description":"Specifies the ID of a created log group. Changing this parameter will create\na new resource.\n","type":"string"},"ltsStreamV2Id":{"description":"The log stream ID.\n","type":"string"},"region":{"description":"Shows the region in the log group resource created.\n","type":"string"},"streamAlias":{"type":"string"},"streamName":{"description":"Specifies the log stream name. Changing this parameter will create a new\nresource.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value pairs of the log stream.\n","type":"object"},"ttlInDays":{"description":"Specifies the log expiration time (days).\nThe valid value is a non-zero integer from `-1` to <span pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\">`365`</span>, defaults to `-1` which means inherit the log group settings.\n","type":"number"}},"required":["createdAt","enterpriseProjectId","filterCount","groupId","ltsStreamV2Id","region","streamName","ttlInDays"],"requiredInputs":["groupId","streamName"],"stateInputs":{"description":"Input properties used for looking up and filtering LtsStreamV2 resources.\n","properties":{"createdAt":{"description":"The creation time of the log stream.\n","type":"string"},"enterpriseProjectId":{"description":"Shows the enterprise project ID to which the log stream belongs.\n","type":"string"},"filterCount":{"description":"Number of log stream filters.\n","type":"number"},"groupId":{"description":"Specifies the ID of a created log group. Changing this parameter will create\na new resource.\n","type":"string"},"ltsStreamV2Id":{"description":"The log stream ID.\n","type":"string"},"region":{"description":"Shows the region in the log group resource created.\n","type":"string"},"streamAlias":{"type":"string"},"streamName":{"description":"Specifies the log stream name. Changing this parameter will create a new\nresource.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the key/value pairs of the log stream.\n","type":"object"},"ttlInDays":{"description":"Specifies the log expiration time (days).\nThe valid value is a non-zero integer from `-1` to <span pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\">`365`</span>, defaults to `-1` which means inherit the log group settings.\n","type":"number"}},"type":"object"},"type":"object"},"opentelekomcloud:index/ltsTransferV2:LtsTransferV2":{"description":"Up-to-date reference of API arguments for LTS log transfer you can get at\n[documentation portal](https://docs.otc.t-systems.com/log-tank-service/api-ref/apis/log_transfer/index.html)\n\nManages an LTS transfer task resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Create an OBS transfer task\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst ltsGroupId = config.requireObject<any>(\"ltsGroupId\");\nconst ltsStreamId = config.requireObject<any>(\"ltsStreamId\");\nconst obsBuket = config.requireObject<any>(\"obsBuket\");\nconst test = new opentelekomcloud.LtsTransferV2(\"test\", {\n    logGroupId: ltsGroupId,\n    logStreams: [{\n        logStreamId: ltsStreamId,\n    }],\n    logTransferInfo: {\n        logTransferType: \"OBS\",\n        logTransferMode: \"cycle\",\n        logStorageFormat: \"RAW\",\n        logTransferStatus: \"ENABLE\",\n        logTransferDetail: {\n            obsPeriod: 3,\n            obsPeriodUnit: \"hour\",\n            obsBucketName: obsBuket,\n            obsDirPrefixName: \"dir_prefix_\",\n            obsPrefixName: \"prefix_\",\n            obsTimeZone: \"UTC\",\n            obsTimeZoneId: \"Etc/GMT\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nlts_group_id = config.require_object(\"ltsGroupId\")\nlts_stream_id = config.require_object(\"ltsStreamId\")\nobs_buket = config.require_object(\"obsBuket\")\ntest = opentelekomcloud.LtsTransferV2(\"test\",\n    log_group_id=lts_group_id,\n    log_streams=[{\n        \"log_stream_id\": lts_stream_id,\n    }],\n    log_transfer_info={\n        \"log_transfer_type\": \"OBS\",\n        \"log_transfer_mode\": \"cycle\",\n        \"log_storage_format\": \"RAW\",\n        \"log_transfer_status\": \"ENABLE\",\n        \"log_transfer_detail\": {\n            \"obs_period\": 3,\n            \"obs_period_unit\": \"hour\",\n            \"obs_bucket_name\": obs_buket,\n            \"obs_dir_prefix_name\": \"dir_prefix_\",\n            \"obs_prefix_name\": \"prefix_\",\n            \"obs_time_zone\": \"UTC\",\n            \"obs_time_zone_id\": \"Etc/GMT\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var ltsGroupId = config.RequireObject<dynamic>(\"ltsGroupId\");\n    var ltsStreamId = config.RequireObject<dynamic>(\"ltsStreamId\");\n    var obsBuket = config.RequireObject<dynamic>(\"obsBuket\");\n    var test = new Opentelekomcloud.LtsTransferV2(\"test\", new()\n    {\n        LogGroupId = ltsGroupId,\n        LogStreams = new[]\n        {\n            new Opentelekomcloud.Inputs.LtsTransferV2LogStreamArgs\n            {\n                LogStreamId = ltsStreamId,\n            },\n        },\n        LogTransferInfo = new Opentelekomcloud.Inputs.LtsTransferV2LogTransferInfoArgs\n        {\n            LogTransferType = \"OBS\",\n            LogTransferMode = \"cycle\",\n            LogStorageFormat = \"RAW\",\n            LogTransferStatus = \"ENABLE\",\n            LogTransferDetail = new Opentelekomcloud.Inputs.LtsTransferV2LogTransferInfoLogTransferDetailArgs\n            {\n                ObsPeriod = 3,\n                ObsPeriodUnit = \"hour\",\n                ObsBucketName = obsBuket,\n                ObsDirPrefixName = \"dir_prefix_\",\n                ObsPrefixName = \"prefix_\",\n                ObsTimeZone = \"UTC\",\n                ObsTimeZoneId = \"Etc/GMT\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tltsGroupId := cfg.RequireObject(\"ltsGroupId\")\n\t\tltsStreamId := cfg.RequireObject(\"ltsStreamId\")\n\t\tobsBuket := cfg.RequireObject(\"obsBuket\")\n\t\t_, err := opentelekomcloud.NewLtsTransferV2(ctx, \"test\", &opentelekomcloud.LtsTransferV2Args{\n\t\t\tLogGroupId: pulumi.Any(ltsGroupId),\n\t\t\tLogStreams: opentelekomcloud.LtsTransferV2LogStreamArray{\n\t\t\t\t&opentelekomcloud.LtsTransferV2LogStreamArgs{\n\t\t\t\t\tLogStreamId: pulumi.Any(ltsStreamId),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLogTransferInfo: &opentelekomcloud.LtsTransferV2LogTransferInfoArgs{\n\t\t\t\tLogTransferType:   pulumi.String(\"OBS\"),\n\t\t\t\tLogTransferMode:   pulumi.String(\"cycle\"),\n\t\t\t\tLogStorageFormat:  pulumi.String(\"RAW\"),\n\t\t\t\tLogTransferStatus: pulumi.String(\"ENABLE\"),\n\t\t\t\tLogTransferDetail: &opentelekomcloud.LtsTransferV2LogTransferInfoLogTransferDetailArgs{\n\t\t\t\t\tObsPeriod:        pulumi.Float64(3),\n\t\t\t\t\tObsPeriodUnit:    pulumi.String(\"hour\"),\n\t\t\t\t\tObsBucketName:    pulumi.Any(obsBuket),\n\t\t\t\t\tObsDirPrefixName: pulumi.String(\"dir_prefix_\"),\n\t\t\t\t\tObsPrefixName:    pulumi.String(\"prefix_\"),\n\t\t\t\t\tObsTimeZone:      pulumi.String(\"UTC\"),\n\t\t\t\t\tObsTimeZoneId:    pulumi.String(\"Etc/GMT\"),\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.opentelekomcloud.LtsTransferV2;\nimport com.pulumi.opentelekomcloud.LtsTransferV2Args;\nimport com.pulumi.opentelekomcloud.inputs.LtsTransferV2LogStreamArgs;\nimport com.pulumi.opentelekomcloud.inputs.LtsTransferV2LogTransferInfoArgs;\nimport com.pulumi.opentelekomcloud.inputs.LtsTransferV2LogTransferInfoLogTransferDetailArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var ltsGroupId = config.get(\"ltsGroupId\");\n        final var ltsStreamId = config.get(\"ltsStreamId\");\n        final var obsBuket = config.get(\"obsBuket\");\n        var test = new LtsTransferV2(\"test\", LtsTransferV2Args.builder()\n            .logGroupId(ltsGroupId)\n            .logStreams(LtsTransferV2LogStreamArgs.builder()\n                .logStreamId(ltsStreamId)\n                .build())\n            .logTransferInfo(LtsTransferV2LogTransferInfoArgs.builder()\n                .logTransferType(\"OBS\")\n                .logTransferMode(\"cycle\")\n                .logStorageFormat(\"RAW\")\n                .logTransferStatus(\"ENABLE\")\n                .logTransferDetail(LtsTransferV2LogTransferInfoLogTransferDetailArgs.builder()\n                    .obsPeriod(3.0)\n                    .obsPeriodUnit(\"hour\")\n                    .obsBucketName(obsBuket)\n                    .obsDirPrefixName(\"dir_prefix_\")\n                    .obsPrefixName(\"prefix_\")\n                    .obsTimeZone(\"UTC\")\n                    .obsTimeZoneId(\"Etc/GMT\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  ltsGroupId:\n    type: dynamic\n  ltsStreamId:\n    type: dynamic\n  obsBuket:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:LtsTransferV2\n    properties:\n      logGroupId: ${ltsGroupId}\n      logStreams:\n        - logStreamId: ${ltsStreamId}\n      logTransferInfo:\n        logTransferType: OBS\n        logTransferMode: cycle\n        logStorageFormat: RAW\n        logTransferStatus: ENABLE\n        logTransferDetail:\n          obsPeriod: 3\n          obsPeriodUnit: hour\n          obsBucketName: ${obsBuket}\n          obsDirPrefixName: dir_prefix_\n          obsPrefixName: prefix_\n          obsTimeZone: UTC\n          obsTimeZoneId: Etc/GMT\n```\n<!--End PulumiCodeChooser -->\n\n### Create a delegated OBS transfer task\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst ltsGroupId = config.requireObject<any>(\"ltsGroupId\");\nconst ltsStreamId = config.requireObject<any>(\"ltsStreamId\");\nconst obsBuket = config.requireObject<any>(\"obsBuket\");\nconst agencyDomainId = config.requireObject<any>(\"agencyDomainId\");\nconst agencyDomainName = config.requireObject<any>(\"agencyDomainName\");\nconst agencyName = config.requireObject<any>(\"agencyName\");\nconst agencyProjectId = config.requireObject<any>(\"agencyProjectId\");\nconst obsAgency = new opentelekomcloud.LtsTransferV2(\"obs_agency\", {\n    logGroupId: ltsGroupId,\n    logStreams: [{\n        logStreamId: ltsStreamId,\n    }],\n    logTransferInfo: {\n        logTransferType: \"OBS\",\n        logTransferMode: \"cycle\",\n        logStorageFormat: \"RAW\",\n        logTransferStatus: \"ENABLE\",\n        logTransferDetail: {\n            obsPeriod: 3,\n            obsPeriodUnit: \"hour\",\n            obsBucketName: obsBuket,\n            obsDirPrefixName: \"dir_prefix_\",\n            obsPrefixName: \"prefix_\",\n            obsTimeZone: \"UTC\",\n            obsTimeZoneId: \"Etc/GMT\",\n        },\n        logAgencyTransfer: {\n            agencyDomainId: agencyDomainId,\n            agencyDomainName: agencyDomainName,\n            agencyName: agencyName,\n            agencyProjectId: agencyProjectId,\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nlts_group_id = config.require_object(\"ltsGroupId\")\nlts_stream_id = config.require_object(\"ltsStreamId\")\nobs_buket = config.require_object(\"obsBuket\")\nagency_domain_id = config.require_object(\"agencyDomainId\")\nagency_domain_name = config.require_object(\"agencyDomainName\")\nagency_name = config.require_object(\"agencyName\")\nagency_project_id = config.require_object(\"agencyProjectId\")\nobs_agency = opentelekomcloud.LtsTransferV2(\"obs_agency\",\n    log_group_id=lts_group_id,\n    log_streams=[{\n        \"log_stream_id\": lts_stream_id,\n    }],\n    log_transfer_info={\n        \"log_transfer_type\": \"OBS\",\n        \"log_transfer_mode\": \"cycle\",\n        \"log_storage_format\": \"RAW\",\n        \"log_transfer_status\": \"ENABLE\",\n        \"log_transfer_detail\": {\n            \"obs_period\": 3,\n            \"obs_period_unit\": \"hour\",\n            \"obs_bucket_name\": obs_buket,\n            \"obs_dir_prefix_name\": \"dir_prefix_\",\n            \"obs_prefix_name\": \"prefix_\",\n            \"obs_time_zone\": \"UTC\",\n            \"obs_time_zone_id\": \"Etc/GMT\",\n        },\n        \"log_agency_transfer\": {\n            \"agency_domain_id\": agency_domain_id,\n            \"agency_domain_name\": agency_domain_name,\n            \"agency_name\": agency_name,\n            \"agency_project_id\": agency_project_id,\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var ltsGroupId = config.RequireObject<dynamic>(\"ltsGroupId\");\n    var ltsStreamId = config.RequireObject<dynamic>(\"ltsStreamId\");\n    var obsBuket = config.RequireObject<dynamic>(\"obsBuket\");\n    var agencyDomainId = config.RequireObject<dynamic>(\"agencyDomainId\");\n    var agencyDomainName = config.RequireObject<dynamic>(\"agencyDomainName\");\n    var agencyName = config.RequireObject<dynamic>(\"agencyName\");\n    var agencyProjectId = config.RequireObject<dynamic>(\"agencyProjectId\");\n    var obsAgency = new Opentelekomcloud.LtsTransferV2(\"obs_agency\", new()\n    {\n        LogGroupId = ltsGroupId,\n        LogStreams = new[]\n        {\n            new Opentelekomcloud.Inputs.LtsTransferV2LogStreamArgs\n            {\n                LogStreamId = ltsStreamId,\n            },\n        },\n        LogTransferInfo = new Opentelekomcloud.Inputs.LtsTransferV2LogTransferInfoArgs\n        {\n            LogTransferType = \"OBS\",\n            LogTransferMode = \"cycle\",\n            LogStorageFormat = \"RAW\",\n            LogTransferStatus = \"ENABLE\",\n            LogTransferDetail = new Opentelekomcloud.Inputs.LtsTransferV2LogTransferInfoLogTransferDetailArgs\n            {\n                ObsPeriod = 3,\n                ObsPeriodUnit = \"hour\",\n                ObsBucketName = obsBuket,\n                ObsDirPrefixName = \"dir_prefix_\",\n                ObsPrefixName = \"prefix_\",\n                ObsTimeZone = \"UTC\",\n                ObsTimeZoneId = \"Etc/GMT\",\n            },\n            LogAgencyTransfer = new Opentelekomcloud.Inputs.LtsTransferV2LogTransferInfoLogAgencyTransferArgs\n            {\n                AgencyDomainId = agencyDomainId,\n                AgencyDomainName = agencyDomainName,\n                AgencyName = agencyName,\n                AgencyProjectId = agencyProjectId,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tltsGroupId := cfg.RequireObject(\"ltsGroupId\")\n\t\tltsStreamId := cfg.RequireObject(\"ltsStreamId\")\n\t\tobsBuket := cfg.RequireObject(\"obsBuket\")\n\t\tagencyDomainId := cfg.RequireObject(\"agencyDomainId\")\n\t\tagencyDomainName := cfg.RequireObject(\"agencyDomainName\")\n\t\tagencyName := cfg.RequireObject(\"agencyName\")\n\t\tagencyProjectId := cfg.RequireObject(\"agencyProjectId\")\n\t\t_, err := opentelekomcloud.NewLtsTransferV2(ctx, \"obs_agency\", &opentelekomcloud.LtsTransferV2Args{\n\t\t\tLogGroupId: pulumi.Any(ltsGroupId),\n\t\t\tLogStreams: opentelekomcloud.LtsTransferV2LogStreamArray{\n\t\t\t\t&opentelekomcloud.LtsTransferV2LogStreamArgs{\n\t\t\t\t\tLogStreamId: pulumi.Any(ltsStreamId),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLogTransferInfo: &opentelekomcloud.LtsTransferV2LogTransferInfoArgs{\n\t\t\t\tLogTransferType:   pulumi.String(\"OBS\"),\n\t\t\t\tLogTransferMode:   pulumi.String(\"cycle\"),\n\t\t\t\tLogStorageFormat:  pulumi.String(\"RAW\"),\n\t\t\t\tLogTransferStatus: pulumi.String(\"ENABLE\"),\n\t\t\t\tLogTransferDetail: &opentelekomcloud.LtsTransferV2LogTransferInfoLogTransferDetailArgs{\n\t\t\t\t\tObsPeriod:        pulumi.Float64(3),\n\t\t\t\t\tObsPeriodUnit:    pulumi.String(\"hour\"),\n\t\t\t\t\tObsBucketName:    pulumi.Any(obsBuket),\n\t\t\t\t\tObsDirPrefixName: pulumi.String(\"dir_prefix_\"),\n\t\t\t\t\tObsPrefixName:    pulumi.String(\"prefix_\"),\n\t\t\t\t\tObsTimeZone:      pulumi.String(\"UTC\"),\n\t\t\t\t\tObsTimeZoneId:    pulumi.String(\"Etc/GMT\"),\n\t\t\t\t},\n\t\t\t\tLogAgencyTransfer: &opentelekomcloud.LtsTransferV2LogTransferInfoLogAgencyTransferArgs{\n\t\t\t\t\tAgencyDomainId:   pulumi.Any(agencyDomainId),\n\t\t\t\t\tAgencyDomainName: pulumi.Any(agencyDomainName),\n\t\t\t\t\tAgencyName:       pulumi.Any(agencyName),\n\t\t\t\t\tAgencyProjectId:  pulumi.Any(agencyProjectId),\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.opentelekomcloud.LtsTransferV2;\nimport com.pulumi.opentelekomcloud.LtsTransferV2Args;\nimport com.pulumi.opentelekomcloud.inputs.LtsTransferV2LogStreamArgs;\nimport com.pulumi.opentelekomcloud.inputs.LtsTransferV2LogTransferInfoArgs;\nimport com.pulumi.opentelekomcloud.inputs.LtsTransferV2LogTransferInfoLogTransferDetailArgs;\nimport com.pulumi.opentelekomcloud.inputs.LtsTransferV2LogTransferInfoLogAgencyTransferArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var ltsGroupId = config.get(\"ltsGroupId\");\n        final var ltsStreamId = config.get(\"ltsStreamId\");\n        final var obsBuket = config.get(\"obsBuket\");\n        final var agencyDomainId = config.get(\"agencyDomainId\");\n        final var agencyDomainName = config.get(\"agencyDomainName\");\n        final var agencyName = config.get(\"agencyName\");\n        final var agencyProjectId = config.get(\"agencyProjectId\");\n        var obsAgency = new LtsTransferV2(\"obsAgency\", LtsTransferV2Args.builder()\n            .logGroupId(ltsGroupId)\n            .logStreams(LtsTransferV2LogStreamArgs.builder()\n                .logStreamId(ltsStreamId)\n                .build())\n            .logTransferInfo(LtsTransferV2LogTransferInfoArgs.builder()\n                .logTransferType(\"OBS\")\n                .logTransferMode(\"cycle\")\n                .logStorageFormat(\"RAW\")\n                .logTransferStatus(\"ENABLE\")\n                .logTransferDetail(LtsTransferV2LogTransferInfoLogTransferDetailArgs.builder()\n                    .obsPeriod(3.0)\n                    .obsPeriodUnit(\"hour\")\n                    .obsBucketName(obsBuket)\n                    .obsDirPrefixName(\"dir_prefix_\")\n                    .obsPrefixName(\"prefix_\")\n                    .obsTimeZone(\"UTC\")\n                    .obsTimeZoneId(\"Etc/GMT\")\n                    .build())\n                .logAgencyTransfer(LtsTransferV2LogTransferInfoLogAgencyTransferArgs.builder()\n                    .agencyDomainId(agencyDomainId)\n                    .agencyDomainName(agencyDomainName)\n                    .agencyName(agencyName)\n                    .agencyProjectId(agencyProjectId)\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  ltsGroupId:\n    type: dynamic\n  ltsStreamId:\n    type: dynamic\n  obsBuket:\n    type: dynamic\n  agencyDomainId:\n    type: dynamic\n  agencyDomainName:\n    type: dynamic\n  agencyName:\n    type: dynamic\n  agencyProjectId:\n    type: dynamic\nresources:\n  obsAgency:\n    type: opentelekomcloud:LtsTransferV2\n    name: obs_agency\n    properties:\n      logGroupId: ${ltsGroupId}\n      logStreams:\n        - logStreamId: ${ltsStreamId}\n      logTransferInfo:\n        logTransferType: OBS\n        logTransferMode: cycle\n        logStorageFormat: RAW\n        logTransferStatus: ENABLE\n        logTransferDetail:\n          obsPeriod: 3\n          obsPeriodUnit: hour\n          obsBucketName: ${obsBuket}\n          obsDirPrefixName: dir_prefix_\n          obsPrefixName: prefix_\n          obsTimeZone: UTC\n          obsTimeZoneId: Etc/GMT\n        logAgencyTransfer:\n          agencyDomainId: ${agencyDomainId}\n          agencyDomainName: ${agencyDomainName}\n          agencyName: ${agencyName}\n          agencyProjectId: ${agencyProjectId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe LTS transfer task can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/ltsTransferV2:LtsTransferV2 test <id>\n```\n\n","inputProperties":{"logGroupId":{"description":"Log group ID.\n\nChanging this parameter will create a new resource.\n","type":"string"},"logStreams":{"description":"The list of log streams.\n\nChanging this parameter will create a new resource.\nThe<span pulumi-lang-nodejs=\" logStreams \" pulumi-lang-dotnet=\" LogStreams \" pulumi-lang-go=\" logStreams \" pulumi-lang-python=\" log_streams \" pulumi-lang-yaml=\" logStreams \" pulumi-lang-java=\" logStreams \"> log_streams </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FLtsTransferV2LogStream:LtsTransferV2LogStream"},"type":"array"},"logTransferInfo":{"$ref":"#/types/opentelekomcloud:index%2FLtsTransferV2LogTransferInfo:LtsTransferV2LogTransferInfo","description":"Log transfer information.\nThe<span pulumi-lang-nodejs=\" logTransferInfo \" pulumi-lang-dotnet=\" LogTransferInfo \" pulumi-lang-go=\" logTransferInfo \" pulumi-lang-python=\" log_transfer_info \" pulumi-lang-yaml=\" logTransferInfo \" pulumi-lang-java=\" logTransferInfo \"> log_transfer_info </span>structure is documented below.\n\n<a name=\"LtsTransfer_LogStreams\"></a>\nThe <span pulumi-lang-nodejs=\"`logStreams`\" pulumi-lang-dotnet=\"`LogStreams`\" pulumi-lang-go=\"`logStreams`\" pulumi-lang-python=\"`log_streams`\" pulumi-lang-yaml=\"`logStreams`\" pulumi-lang-java=\"`logStreams`\">`log_streams`</span> block supports:\n"},"ltsTransferV2Id":{"description":"The resource ID.\n","type":"string"}},"properties":{"logGroupId":{"description":"Log group ID.\n\nChanging this parameter will create a new resource.\n","type":"string"},"logGroupName":{"description":"Log group name.\n","type":"string"},"logStreams":{"description":"The list of log streams.\n\nChanging this parameter will create a new resource.\nThe<span pulumi-lang-nodejs=\" logStreams \" pulumi-lang-dotnet=\" LogStreams \" pulumi-lang-go=\" logStreams \" pulumi-lang-python=\" log_streams \" pulumi-lang-yaml=\" logStreams \" pulumi-lang-java=\" logStreams \"> log_streams </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FLtsTransferV2LogStream:LtsTransferV2LogStream"},"type":"array"},"logTransferInfo":{"$ref":"#/types/opentelekomcloud:index%2FLtsTransferV2LogTransferInfo:LtsTransferV2LogTransferInfo","description":"Log transfer information.\nThe<span pulumi-lang-nodejs=\" logTransferInfo \" pulumi-lang-dotnet=\" LogTransferInfo \" pulumi-lang-go=\" logTransferInfo \" pulumi-lang-python=\" log_transfer_info \" pulumi-lang-yaml=\" logTransferInfo \" pulumi-lang-java=\" logTransferInfo \"> log_transfer_info </span>structure is documented below.\n\n<a name=\"LtsTransfer_LogStreams\"></a>\nThe <span pulumi-lang-nodejs=\"`logStreams`\" pulumi-lang-dotnet=\"`LogStreams`\" pulumi-lang-go=\"`logStreams`\" pulumi-lang-python=\"`log_streams`\" pulumi-lang-yaml=\"`logStreams`\" pulumi-lang-java=\"`logStreams`\">`log_streams`</span> block supports:\n"},"ltsTransferV2Id":{"description":"The resource ID.\n","type":"string"},"region":{"description":"Shows the region in the log group resource created.\n","type":"string"}},"required":["logGroupId","logGroupName","logStreams","logTransferInfo","ltsTransferV2Id","region"],"requiredInputs":["logGroupId","logStreams","logTransferInfo"],"stateInputs":{"description":"Input properties used for looking up and filtering LtsTransferV2 resources.\n","properties":{"logGroupId":{"description":"Log group ID.\n\nChanging this parameter will create a new resource.\n","type":"string"},"logGroupName":{"description":"Log group name.\n","type":"string"},"logStreams":{"description":"The list of log streams.\n\nChanging this parameter will create a new resource.\nThe<span pulumi-lang-nodejs=\" logStreams \" pulumi-lang-dotnet=\" LogStreams \" pulumi-lang-go=\" logStreams \" pulumi-lang-python=\" log_streams \" pulumi-lang-yaml=\" logStreams \" pulumi-lang-java=\" logStreams \"> log_streams </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FLtsTransferV2LogStream:LtsTransferV2LogStream"},"type":"array"},"logTransferInfo":{"$ref":"#/types/opentelekomcloud:index%2FLtsTransferV2LogTransferInfo:LtsTransferV2LogTransferInfo","description":"Log transfer information.\nThe<span pulumi-lang-nodejs=\" logTransferInfo \" pulumi-lang-dotnet=\" LogTransferInfo \" pulumi-lang-go=\" logTransferInfo \" pulumi-lang-python=\" log_transfer_info \" pulumi-lang-yaml=\" logTransferInfo \" pulumi-lang-java=\" logTransferInfo \"> log_transfer_info </span>structure is documented below.\n\n<a name=\"LtsTransfer_LogStreams\"></a>\nThe <span pulumi-lang-nodejs=\"`logStreams`\" pulumi-lang-dotnet=\"`LogStreams`\" pulumi-lang-go=\"`logStreams`\" pulumi-lang-python=\"`log_streams`\" pulumi-lang-yaml=\"`logStreams`\" pulumi-lang-java=\"`logStreams`\">`log_streams`</span> block supports:\n"},"ltsTransferV2Id":{"description":"The resource ID.\n","type":"string"},"region":{"description":"Shows the region in the log group resource created.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/mrsClusterV1:MrsClusterV1":{"description":"Up-to-date reference of API arguments for MRS cluster you can get at\n[documentation portal](https://docs.otc.t-systems.com/mapreduce-service/api-ref/apis/cluster_management_apis_v1)\n\nManages resource cluster within OpenTelekomCloud MRS.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst az = config.requireObject<any>(\"az\");\nconst vpcId = config.requireObject<any>(\"vpcId\");\nconst networkId = config.requireObject<any>(\"networkId\");\nconst keyname = config.requireObject<any>(\"keyname\");\nconst _this = new opentelekomcloud.MrsClusterV1(\"this\", {\n    clusterName: \"mrs-cluster\",\n    billingType: 12,\n    masterNodeNum: 2,\n    coreNodeNum: 3,\n    masterNodeSize: \"c4.4xlarge.4.linux.mrs\",\n    coreNodeSize: \"c4.4xlarge.4.linux.mrs\",\n    availableZoneId: az,\n    vpcId: vpcId,\n    subnetId: networkId,\n    clusterVersion: \"MRS 3.1.2-LTS.6\",\n    volumeType: \"SAS\",\n    volumeSize: 100,\n    clusterType: 0,\n    safeMode: 1,\n    nodePublicCertName: keyname,\n    clusterAdminSecret: \"Qwerty!123\",\n    componentLists: [\n        {\n            componentName: \"Hadoop\",\n        },\n        {\n            componentName: \"Spark\",\n        },\n        {\n            componentName: \"HBase\",\n        },\n        {\n            componentName: \"Hive\",\n        },\n        {\n            componentName: \"Flink\",\n        },\n    ],\n    bootstrapScripts: [{\n        name: \"Modify os config\",\n        uri: \"s3a://bootstrap/modify_os_config.sh\",\n        parameters: \"param1 param2\",\n        nodes: [\n            \"master\",\n            \"core\",\n            \"task\",\n        ],\n        activeMaster: true,\n        beforeComponentStart: true,\n        failAction: \"continue\",\n    }],\n    tags: {\n        foo: \"bar\",\n        key: \"value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\naz = config.require_object(\"az\")\nvpc_id = config.require_object(\"vpcId\")\nnetwork_id = config.require_object(\"networkId\")\nkeyname = config.require_object(\"keyname\")\nthis = opentelekomcloud.MrsClusterV1(\"this\",\n    cluster_name=\"mrs-cluster\",\n    billing_type=12,\n    master_node_num=2,\n    core_node_num=3,\n    master_node_size=\"c4.4xlarge.4.linux.mrs\",\n    core_node_size=\"c4.4xlarge.4.linux.mrs\",\n    available_zone_id=az,\n    vpc_id=vpc_id,\n    subnet_id=network_id,\n    cluster_version=\"MRS 3.1.2-LTS.6\",\n    volume_type=\"SAS\",\n    volume_size=100,\n    cluster_type=0,\n    safe_mode=1,\n    node_public_cert_name=keyname,\n    cluster_admin_secret=\"Qwerty!123\",\n    component_lists=[\n        {\n            \"component_name\": \"Hadoop\",\n        },\n        {\n            \"component_name\": \"Spark\",\n        },\n        {\n            \"component_name\": \"HBase\",\n        },\n        {\n            \"component_name\": \"Hive\",\n        },\n        {\n            \"component_name\": \"Flink\",\n        },\n    ],\n    bootstrap_scripts=[{\n        \"name\": \"Modify os config\",\n        \"uri\": \"s3a://bootstrap/modify_os_config.sh\",\n        \"parameters\": \"param1 param2\",\n        \"nodes\": [\n            \"master\",\n            \"core\",\n            \"task\",\n        ],\n        \"active_master\": True,\n        \"before_component_start\": True,\n        \"fail_action\": \"continue\",\n    }],\n    tags={\n        \"foo\": \"bar\",\n        \"key\": \"value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var az = config.RequireObject<dynamic>(\"az\");\n    var vpcId = config.RequireObject<dynamic>(\"vpcId\");\n    var networkId = config.RequireObject<dynamic>(\"networkId\");\n    var keyname = config.RequireObject<dynamic>(\"keyname\");\n    var @this = new Opentelekomcloud.MrsClusterV1(\"this\", new()\n    {\n        ClusterName = \"mrs-cluster\",\n        BillingType = 12,\n        MasterNodeNum = 2,\n        CoreNodeNum = 3,\n        MasterNodeSize = \"c4.4xlarge.4.linux.mrs\",\n        CoreNodeSize = \"c4.4xlarge.4.linux.mrs\",\n        AvailableZoneId = az,\n        VpcId = vpcId,\n        SubnetId = networkId,\n        ClusterVersion = \"MRS 3.1.2-LTS.6\",\n        VolumeType = \"SAS\",\n        VolumeSize = 100,\n        ClusterType = 0,\n        SafeMode = 1,\n        NodePublicCertName = keyname,\n        ClusterAdminSecret = \"Qwerty!123\",\n        ComponentLists = new[]\n        {\n            new Opentelekomcloud.Inputs.MrsClusterV1ComponentListArgs\n            {\n                ComponentName = \"Hadoop\",\n            },\n            new Opentelekomcloud.Inputs.MrsClusterV1ComponentListArgs\n            {\n                ComponentName = \"Spark\",\n            },\n            new Opentelekomcloud.Inputs.MrsClusterV1ComponentListArgs\n            {\n                ComponentName = \"HBase\",\n            },\n            new Opentelekomcloud.Inputs.MrsClusterV1ComponentListArgs\n            {\n                ComponentName = \"Hive\",\n            },\n            new Opentelekomcloud.Inputs.MrsClusterV1ComponentListArgs\n            {\n                ComponentName = \"Flink\",\n            },\n        },\n        BootstrapScripts = new[]\n        {\n            new Opentelekomcloud.Inputs.MrsClusterV1BootstrapScriptArgs\n            {\n                Name = \"Modify os config\",\n                Uri = \"s3a://bootstrap/modify_os_config.sh\",\n                Parameters = \"param1 param2\",\n                Nodes = new[]\n                {\n                    \"master\",\n                    \"core\",\n                    \"task\",\n                },\n                ActiveMaster = true,\n                BeforeComponentStart = true,\n                FailAction = \"continue\",\n            },\n        },\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"key\", \"value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\taz := cfg.RequireObject(\"az\")\n\t\tvpcId := cfg.RequireObject(\"vpcId\")\n\t\tnetworkId := cfg.RequireObject(\"networkId\")\n\t\tkeyname := cfg.RequireObject(\"keyname\")\n\t\t_, err := opentelekomcloud.NewMrsClusterV1(ctx, \"this\", &opentelekomcloud.MrsClusterV1Args{\n\t\t\tClusterName:        pulumi.String(\"mrs-cluster\"),\n\t\t\tBillingType:        pulumi.Float64(12),\n\t\t\tMasterNodeNum:      pulumi.Float64(2),\n\t\t\tCoreNodeNum:        pulumi.Float64(3),\n\t\t\tMasterNodeSize:     pulumi.String(\"c4.4xlarge.4.linux.mrs\"),\n\t\t\tCoreNodeSize:       pulumi.String(\"c4.4xlarge.4.linux.mrs\"),\n\t\t\tAvailableZoneId:    pulumi.Any(az),\n\t\t\tVpcId:              pulumi.Any(vpcId),\n\t\t\tSubnetId:           pulumi.Any(networkId),\n\t\t\tClusterVersion:     pulumi.String(\"MRS 3.1.2-LTS.6\"),\n\t\t\tVolumeType:         pulumi.String(\"SAS\"),\n\t\t\tVolumeSize:         pulumi.Float64(100),\n\t\t\tClusterType:        pulumi.Float64(0),\n\t\t\tSafeMode:           pulumi.Float64(1),\n\t\t\tNodePublicCertName: pulumi.Any(keyname),\n\t\t\tClusterAdminSecret: pulumi.String(\"Qwerty!123\"),\n\t\t\tComponentLists: opentelekomcloud.MrsClusterV1ComponentListArray{\n\t\t\t\t&opentelekomcloud.MrsClusterV1ComponentListArgs{\n\t\t\t\t\tComponentName: pulumi.String(\"Hadoop\"),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.MrsClusterV1ComponentListArgs{\n\t\t\t\t\tComponentName: pulumi.String(\"Spark\"),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.MrsClusterV1ComponentListArgs{\n\t\t\t\t\tComponentName: pulumi.String(\"HBase\"),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.MrsClusterV1ComponentListArgs{\n\t\t\t\t\tComponentName: pulumi.String(\"Hive\"),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.MrsClusterV1ComponentListArgs{\n\t\t\t\t\tComponentName: pulumi.String(\"Flink\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBootstrapScripts: opentelekomcloud.MrsClusterV1BootstrapScriptArray{\n\t\t\t\t&opentelekomcloud.MrsClusterV1BootstrapScriptArgs{\n\t\t\t\t\tName:       pulumi.String(\"Modify os config\"),\n\t\t\t\t\tUri:        pulumi.String(\"s3a://bootstrap/modify_os_config.sh\"),\n\t\t\t\t\tParameters: pulumi.String(\"param1 param2\"),\n\t\t\t\t\tNodes: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"master\"),\n\t\t\t\t\t\tpulumi.String(\"core\"),\n\t\t\t\t\t\tpulumi.String(\"task\"),\n\t\t\t\t\t},\n\t\t\t\t\tActiveMaster:         pulumi.Bool(true),\n\t\t\t\t\tBeforeComponentStart: pulumi.Bool(true),\n\t\t\t\t\tFailAction:           pulumi.String(\"continue\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.MrsClusterV1;\nimport com.pulumi.opentelekomcloud.MrsClusterV1Args;\nimport com.pulumi.opentelekomcloud.inputs.MrsClusterV1ComponentListArgs;\nimport com.pulumi.opentelekomcloud.inputs.MrsClusterV1BootstrapScriptArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var az = config.get(\"az\");\n        final var vpcId = config.get(\"vpcId\");\n        final var networkId = config.get(\"networkId\");\n        final var keyname = config.get(\"keyname\");\n        var this_ = new MrsClusterV1(\"this\", MrsClusterV1Args.builder()\n            .clusterName(\"mrs-cluster\")\n            .billingType(12.0)\n            .masterNodeNum(2.0)\n            .coreNodeNum(3.0)\n            .masterNodeSize(\"c4.4xlarge.4.linux.mrs\")\n            .coreNodeSize(\"c4.4xlarge.4.linux.mrs\")\n            .availableZoneId(az)\n            .vpcId(vpcId)\n            .subnetId(networkId)\n            .clusterVersion(\"MRS 3.1.2-LTS.6\")\n            .volumeType(\"SAS\")\n            .volumeSize(100.0)\n            .clusterType(0.0)\n            .safeMode(1.0)\n            .nodePublicCertName(keyname)\n            .clusterAdminSecret(\"Qwerty!123\")\n            .componentLists(            \n                MrsClusterV1ComponentListArgs.builder()\n                    .componentName(\"Hadoop\")\n                    .build(),\n                MrsClusterV1ComponentListArgs.builder()\n                    .componentName(\"Spark\")\n                    .build(),\n                MrsClusterV1ComponentListArgs.builder()\n                    .componentName(\"HBase\")\n                    .build(),\n                MrsClusterV1ComponentListArgs.builder()\n                    .componentName(\"Hive\")\n                    .build(),\n                MrsClusterV1ComponentListArgs.builder()\n                    .componentName(\"Flink\")\n                    .build())\n            .bootstrapScripts(MrsClusterV1BootstrapScriptArgs.builder()\n                .name(\"Modify os config\")\n                .uri(\"s3a://bootstrap/modify_os_config.sh\")\n                .parameters(\"param1 param2\")\n                .nodes(                \n                    \"master\",\n                    \"core\",\n                    \"task\")\n                .activeMaster(true)\n                .beforeComponentStart(true)\n                .failAction(\"continue\")\n                .build())\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  az:\n    type: dynamic\n  vpcId:\n    type: dynamic\n  networkId:\n    type: dynamic\n  keyname:\n    type: dynamic\nresources:\n  this:\n    type: opentelekomcloud:MrsClusterV1\n    properties:\n      clusterName: mrs-cluster\n      billingType: 12\n      masterNodeNum: 2\n      coreNodeNum: 3\n      masterNodeSize: c4.4xlarge.4.linux.mrs\n      coreNodeSize: c4.4xlarge.4.linux.mrs\n      availableZoneId: ${az}\n      vpcId: ${vpcId}\n      subnetId: ${networkId}\n      clusterVersion: MRS 3.1.2-LTS.6\n      volumeType: SAS\n      volumeSize: 100\n      clusterType: 0\n      safeMode: 1\n      nodePublicCertName: ${keyname}\n      clusterAdminSecret: Qwerty!123\n      componentLists:\n        - componentName: Hadoop\n        - componentName: Spark\n        - componentName: HBase\n        - componentName: Hive\n        - componentName: Flink\n      bootstrapScripts:\n        - name: Modify os config\n          uri: s3a://bootstrap/modify_os_config.sh\n          parameters: param1 param2\n          nodes:\n            - master\n            - core\n            - task\n          activeMaster: true\n          beforeComponentStart: true\n          failAction: continue\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nCluster can be imported using the `cluster_id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/mrsClusterV1:MrsClusterV1 cluster_1 4729ab1c-7c1a-4411-a02e-93dfc361b32d\n```\n\n","inputProperties":{"addJobs":{"description":"You can submit a job when you create a cluster to save time and use MRS easily. Only one job can be added.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FMrsClusterV1AddJob:MrsClusterV1AddJob"},"type":"array"},"availableZoneId":{"description":"ID of an available zone. Obtain the value from Regions and Endpoints.\n","type":"string"},"billingType":{"description":"The value is <span pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\">`12`</span>, indicating on-demand payment.\n","type":"number"},"bootstrapScripts":{"description":"Bootstrap action scripts. For details, see<span pulumi-lang-nodejs=\" bootstrapScripts \" pulumi-lang-dotnet=\" BootstrapScripts \" pulumi-lang-go=\" bootstrapScripts \" pulumi-lang-python=\" bootstrap_scripts \" pulumi-lang-yaml=\" bootstrapScripts \" pulumi-lang-java=\" bootstrapScripts \"> bootstrap_scripts </span>block below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FMrsClusterV1BootstrapScript:MrsClusterV1BootstrapScript"},"type":"array"},"clusterAdminSecret":{"description":"Indicates the password of the MRS Manager administrator. The password must contain <span pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\">`8`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> characters. Must contain at least two types of the following: Lowercase letters, Uppercase letters, Digits, Special characters `~!@#$%^&*()-_=+\\|[{}];:'\",<.>/?` and spaces.\n","type":"string"},"clusterName":{"description":"Cluster name, which is globally unique and contains only <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span> letters, digits, hyphens (-), and underscores (_).\n","type":"string"},"clusterType":{"description":"Type of clusters. <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>: analysis cluster, <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>: streaming cluster The default value is <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>.\n","type":"number"},"clusterVersion":{"description":"Version of the clusters. Please refer to `Table 1` in the [API document](https://docs.otc.t-systems.com/mapreduce-service/api-ref/apis/cluster_management_apis_v1/creating_a_cluster_and_running_a_job.html) for supported versions.\n","type":"string"},"componentLists":{"description":"Service component list.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FMrsClusterV1ComponentList:MrsClusterV1ComponentList"},"type":"array"},"coreDataVolumeCount":{"description":"Number of data disks of the Core node. Value range: <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\">`10`</span>.\n","type":"number"},"coreDataVolumeSize":{"description":"Data disk size of the Core node. Value range: <span pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\">`100`</span> GB to <span pulumi-lang-nodejs=\"`32000`\" pulumi-lang-dotnet=\"`32000`\" pulumi-lang-go=\"`32000`\" pulumi-lang-python=\"`32000`\" pulumi-lang-yaml=\"`32000`\" pulumi-lang-java=\"`32000`\">`32000`</span> GB.\n","type":"number"},"coreDataVolumeType":{"description":"Data disk storage type of the Core node.  Supported values: `SAS` (High I/O), `SSD` (Ultra-high I/O).\n","type":"string"},"coreNodeNum":{"description":"Number of Core nodes Value range: <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\">`500`</span>. A maximum of <span pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\">`500`</span> Core nodes are supported by default. If more than <span pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\">`500`</span> Core nodes are required, contact technical support engineers or invoke background APIs to modify the database.\n","type":"number"},"coreNodeSize":{"description":"Instance specification of a Core node Configuration method of this parameter is identical to that of <span pulumi-lang-nodejs=\"`masterNodeSize`\" pulumi-lang-dotnet=\"`MasterNodeSize`\" pulumi-lang-go=\"`masterNodeSize`\" pulumi-lang-python=\"`master_node_size`\" pulumi-lang-yaml=\"`masterNodeSize`\" pulumi-lang-java=\"`masterNodeSize`\">`master_node_size`</span>.\n","type":"string"},"logCollection":{"description":"Indicates whether logs are collected when cluster installation fails. <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>: not collected. <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>: collected. The default value is <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>. If <span pulumi-lang-nodejs=\"`logCollection`\" pulumi-lang-dotnet=\"`LogCollection`\" pulumi-lang-go=\"`logCollection`\" pulumi-lang-python=\"`log_collection`\" pulumi-lang-yaml=\"`logCollection`\" pulumi-lang-java=\"`logCollection`\">`log_collection`</span> is set to <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>, OBS buckets will be created to collect the MRS logs. These buckets will be charged.\n","type":"number"},"masterDataVolumeCount":{"description":"Number of data disks of the Master node. The value can be set to <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> only.\n","type":"number"},"masterDataVolumeSize":{"description":"Data disk size of the Master node. Value range: <span pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\">`100`</span> GB to <span pulumi-lang-nodejs=\"`32000`\" pulumi-lang-dotnet=\"`32000`\" pulumi-lang-go=\"`32000`\" pulumi-lang-python=\"`32000`\" pulumi-lang-yaml=\"`32000`\" pulumi-lang-java=\"`32000`\">`32000`</span> GB.\n","type":"number"},"masterDataVolumeType":{"description":"Data disk storage type of the Master node. Supported values: `SAS` (High I/O), `SSD` (Ultra-high I/O).\n","type":"string"},"masterNodeNum":{"description":"Number of Master nodes.\n","type":"number"},"masterNodeSize":{"description":"Instance specifications of the Master node, for example, `c6.4xlarge.4linux.mrs`. MRS supports host specifications determined by CPU, memory, and disk space. For details about instance specifications, see [ECS Specifications Used by MRS](https://docs.otc.t-systems.com/mapreduce-service/api-ref/appendix/ecs_specifications_used_by_mrs.html#mrs-01-9005).\n","type":"string"},"mrsClusterV1Id":{"type":"string"},"nodePublicCertName":{"description":"Name of a key pair You can use a key to log in to the Master node in the cluster.\n","type":"string"},"region":{"type":"string"},"safeMode":{"description":"MRS cluster running mode <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>: common mode. The value indicates that the Kerberos authentication is disabled. Users can use all functions provided by the cluster. <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>: safe mode. The value indicates that the Kerberos authentication is enabled. Common users cannot use the file management or job management functions of an MRS cluster and cannot view cluster resource usage or the job records of Hadoop and Spark. To use these functions, the users must obtain the relevant permissions from the MRS Manager administrator. The request has the <span pulumi-lang-nodejs=\"`clusterAdminSecret`\" pulumi-lang-dotnet=\"`ClusterAdminSecret`\" pulumi-lang-go=\"`clusterAdminSecret`\" pulumi-lang-python=\"`cluster_admin_secret`\" pulumi-lang-yaml=\"`clusterAdminSecret`\" pulumi-lang-java=\"`clusterAdminSecret`\">`cluster_admin_secret`</span> parameter only when <span pulumi-lang-nodejs=\"`safeMode`\" pulumi-lang-dotnet=\"`SafeMode`\" pulumi-lang-go=\"`safeMode`\" pulumi-lang-python=\"`safe_mode`\" pulumi-lang-yaml=\"`safeMode`\" pulumi-lang-java=\"`safeMode`\">`safe_mode`</span> is set to <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>.\n","type":"number"},"subnetId":{"description":"Subnet ID Obtain the subnet ID from the management console as follows: Register an account and log in to the management console. Click Virtual Private Cloud and select Virtual Private Cloud from the left list. On the Virtual Private Cloud page, obtain the subnet ID from the list.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the cluster.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FMrsClusterV1Timeouts:MrsClusterV1Timeouts"},"volumeSize":{"description":"Data disk storage space of a Core node Users can add disks to expand storage capacity when creating a cluster. There are the following scenarios: Separation of data storage and computing: Data is stored in the OBS system. Costs of clusters are relatively low but computing performance is poor. The clusters can be deleted at any time. It is recommended when data computing is not frequently performed. Integration of data storage and computing: Data is stored in the HDFS system. Costs of clusters are relatively high but computing performance is good. The clusters cannot be deleted in a short term. It is recommended when data computing is frequently performed. Value range: <span pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\">`100`</span> GB to <span pulumi-lang-nodejs=\"`32000`\" pulumi-lang-dotnet=\"`32000`\" pulumi-lang-go=\"`32000`\" pulumi-lang-python=\"`32000`\" pulumi-lang-yaml=\"`32000`\" pulumi-lang-java=\"`32000`\">`32000`</span> GB.\n","type":"number"},"volumeType":{"description":"Type of disks. Supported values: `SAS` (High I/O), `SSD` (Ultra-high I/O).\n","type":"string"},"vpcId":{"description":"ID of the VPC where the subnet locates Obtain the VPC ID from the management console as follows: Register an account and log in to the management console. Click Virtual Private Cloud and select Virtual Private Cloud from the left list. On the Virtual Private Cloud page, obtain the VPC ID from the list.\n","type":"string"}},"properties":{"addJobs":{"description":"You can submit a job when you create a cluster to save time and use MRS easily. Only one job can be added.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FMrsClusterV1AddJob:MrsClusterV1AddJob"},"type":"array"},"availableZoneId":{"description":"ID of an available zone. Obtain the value from Regions and Endpoints.\n","type":"string"},"availableZoneName":{"description":"Name of an availability zone.\n","type":"string"},"billingType":{"description":"The value is <span pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\">`12`</span>, indicating on-demand payment.\n","type":"number"},"bootstrapScripts":{"description":"Bootstrap action scripts. For details, see<span pulumi-lang-nodejs=\" bootstrapScripts \" pulumi-lang-dotnet=\" BootstrapScripts \" pulumi-lang-go=\" bootstrapScripts \" pulumi-lang-python=\" bootstrap_scripts \" pulumi-lang-yaml=\" bootstrapScripts \" pulumi-lang-java=\" bootstrapScripts \"> bootstrap_scripts </span>block below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FMrsClusterV1BootstrapScript:MrsClusterV1BootstrapScript"},"type":"array"},"chargingStartTime":{"description":"Time when charging starts.\n","type":"string"},"clusterAdminSecret":{"description":"Indicates the password of the MRS Manager administrator. The password must contain <span pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\">`8`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> characters. Must contain at least two types of the following: Lowercase letters, Uppercase letters, Digits, Special characters `~!@#$%^&*()-_=+\\|[{}];:'\",<.>/?` and spaces.\n","type":"string"},"clusterId":{"description":"Cluster ID.\n","type":"string"},"clusterName":{"description":"Cluster name, which is globally unique and contains only <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span> letters, digits, hyphens (-), and underscores (_).\n","type":"string"},"clusterState":{"description":"Cluster status. Valid values include: existing history: <span pulumi-lang-nodejs=\"`starting`\" pulumi-lang-dotnet=\"`Starting`\" pulumi-lang-go=\"`starting`\" pulumi-lang-python=\"`starting`\" pulumi-lang-yaml=\"`starting`\" pulumi-lang-java=\"`starting`\">`starting`</span>,\n<span pulumi-lang-nodejs=\"`running`\" pulumi-lang-dotnet=\"`Running`\" pulumi-lang-go=\"`running`\" pulumi-lang-python=\"`running`\" pulumi-lang-yaml=\"`running`\" pulumi-lang-java=\"`running`\">`running`</span>, <span pulumi-lang-nodejs=\"`terminated`\" pulumi-lang-dotnet=\"`Terminated`\" pulumi-lang-go=\"`terminated`\" pulumi-lang-python=\"`terminated`\" pulumi-lang-yaml=\"`terminated`\" pulumi-lang-java=\"`terminated`\">`terminated`</span>, <span pulumi-lang-nodejs=\"`failed`\" pulumi-lang-dotnet=\"`Failed`\" pulumi-lang-go=\"`failed`\" pulumi-lang-python=\"`failed`\" pulumi-lang-yaml=\"`failed`\" pulumi-lang-java=\"`failed`\">`failed`</span>, <span pulumi-lang-nodejs=\"`abnormal`\" pulumi-lang-dotnet=\"`Abnormal`\" pulumi-lang-go=\"`abnormal`\" pulumi-lang-python=\"`abnormal`\" pulumi-lang-yaml=\"`abnormal`\" pulumi-lang-java=\"`abnormal`\">`abnormal`</span>, <span pulumi-lang-nodejs=\"`terminating`\" pulumi-lang-dotnet=\"`Terminating`\" pulumi-lang-go=\"`terminating`\" pulumi-lang-python=\"`terminating`\" pulumi-lang-yaml=\"`terminating`\" pulumi-lang-java=\"`terminating`\">`terminating`</span>, <span pulumi-lang-nodejs=\"`rebooting`\" pulumi-lang-dotnet=\"`Rebooting`\" pulumi-lang-go=\"`rebooting`\" pulumi-lang-python=\"`rebooting`\" pulumi-lang-yaml=\"`rebooting`\" pulumi-lang-java=\"`rebooting`\">`rebooting`</span>,\n<span pulumi-lang-nodejs=\"`shutdown`\" pulumi-lang-dotnet=\"`Shutdown`\" pulumi-lang-go=\"`shutdown`\" pulumi-lang-python=\"`shutdown`\" pulumi-lang-yaml=\"`shutdown`\" pulumi-lang-java=\"`shutdown`\">`shutdown`</span>, <span pulumi-lang-nodejs=\"`frozen`\" pulumi-lang-dotnet=\"`Frozen`\" pulumi-lang-go=\"`frozen`\" pulumi-lang-python=\"`frozen`\" pulumi-lang-yaml=\"`frozen`\" pulumi-lang-java=\"`frozen`\">`frozen`</span>, `scaling-out`, `scaling-in`, `scaling-error`.\n","type":"string"},"clusterType":{"description":"Type of clusters. <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>: analysis cluster, <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>: streaming cluster The default value is <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>.\n","type":"number"},"clusterVersion":{"description":"Version of the clusters. Please refer to `Table 1` in the [API document](https://docs.otc.t-systems.com/mapreduce-service/api-ref/apis/cluster_management_apis_v1/creating_a_cluster_and_running_a_job.html) for supported versions.\n","type":"string"},"componentLists":{"description":"Service component list.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FMrsClusterV1ComponentList:MrsClusterV1ComponentList"},"type":"array"},"coreDataVolumeCount":{"description":"Number of data disks of the Core node. Value range: <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\">`10`</span>.\n","type":"number"},"coreDataVolumeSize":{"description":"Data disk size of the Core node. Value range: <span pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\">`100`</span> GB to <span pulumi-lang-nodejs=\"`32000`\" pulumi-lang-dotnet=\"`32000`\" pulumi-lang-go=\"`32000`\" pulumi-lang-python=\"`32000`\" pulumi-lang-yaml=\"`32000`\" pulumi-lang-java=\"`32000`\">`32000`</span> GB.\n","type":"number"},"coreDataVolumeType":{"description":"Data disk storage type of the Core node.  Supported values: `SAS` (High I/O), `SSD` (Ultra-high I/O).\n","type":"string"},"coreNodeNum":{"description":"Number of Core nodes Value range: <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\">`500`</span>. A maximum of <span pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\">`500`</span> Core nodes are supported by default. If more than <span pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\">`500`</span> Core nodes are required, contact technical support engineers or invoke background APIs to modify the database.\n","type":"number"},"coreNodeProductId":{"description":"Product ID of a Core node.\n","type":"string"},"coreNodeSize":{"description":"Instance specification of a Core node Configuration method of this parameter is identical to that of <span pulumi-lang-nodejs=\"`masterNodeSize`\" pulumi-lang-dotnet=\"`MasterNodeSize`\" pulumi-lang-go=\"`masterNodeSize`\" pulumi-lang-python=\"`master_node_size`\" pulumi-lang-yaml=\"`masterNodeSize`\" pulumi-lang-java=\"`masterNodeSize`\">`master_node_size`</span>.\n","type":"string"},"coreNodeSpecId":{"description":"Specification ID of a Core node.\n","type":"string"},"createAt":{"description":"Cluster creation time.\n","type":"string"},"deploymentId":{"description":"Deployment ID of a cluster.\n","type":"string"},"errorInfo":{"description":"Error information.\n","type":"string"},"externalAlternateIp":{"description":"Backup external IP address.\n","type":"string"},"externalIp":{"description":"External IP address.\n","type":"string"},"fee":{"description":"Cluster creation fee, which is automatically calculated.\n","type":"string"},"hadoopVersion":{"description":"Hadoop version.\n","type":"string"},"instanceId":{"description":"Instance ID.\n","type":"string"},"internalIp":{"type":"string"},"logCollection":{"description":"Indicates whether logs are collected when cluster installation fails. <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>: not collected. <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>: collected. The default value is <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>. If <span pulumi-lang-nodejs=\"`logCollection`\" pulumi-lang-dotnet=\"`LogCollection`\" pulumi-lang-go=\"`logCollection`\" pulumi-lang-python=\"`log_collection`\" pulumi-lang-yaml=\"`logCollection`\" pulumi-lang-java=\"`logCollection`\">`log_collection`</span> is set to <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>, OBS buckets will be created to collect the MRS logs. These buckets will be charged.\n","type":"number"},"masterDataVolumeCount":{"description":"Number of data disks of the Master node. The value can be set to <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> only.\n","type":"number"},"masterDataVolumeSize":{"description":"Data disk size of the Master node. Value range: <span pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\">`100`</span> GB to <span pulumi-lang-nodejs=\"`32000`\" pulumi-lang-dotnet=\"`32000`\" pulumi-lang-go=\"`32000`\" pulumi-lang-python=\"`32000`\" pulumi-lang-yaml=\"`32000`\" pulumi-lang-java=\"`32000`\">`32000`</span> GB.\n","type":"number"},"masterDataVolumeType":{"description":"Data disk storage type of the Master node. Supported values: `SAS` (High I/O), `SSD` (Ultra-high I/O).\n","type":"string"},"masterNodeIp":{"description":"IP address of a Master node.\n","type":"string"},"masterNodeNum":{"description":"Number of Master nodes.\n","type":"number"},"masterNodeProductId":{"description":"Product ID of a Master node.\n","type":"string"},"masterNodeSize":{"description":"Instance specifications of the Master node, for example, `c6.4xlarge.4linux.mrs`. MRS supports host specifications determined by CPU, memory, and disk space. For details about instance specifications, see [ECS Specifications Used by MRS](https://docs.otc.t-systems.com/mapreduce-service/api-ref/appendix/ecs_specifications_used_by_mrs.html#mrs-01-9005).\n","type":"string"},"masterNodeSpecId":{"description":"Specification ID of a Master node.\n","type":"string"},"mrsClusterV1Id":{"type":"string"},"nodePublicCertName":{"description":"Name of a key pair You can use a key to log in to the Master node in the cluster.\n","type":"string"},"orderId":{"description":"Order ID for creating clusters.\n","type":"string"},"privateIpFirst":{"description":"Primary private IP address.\n","type":"string"},"region":{"type":"string"},"remark":{"description":"Remarks of a cluster.\n","type":"string"},"safeMode":{"description":"MRS cluster running mode <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>: common mode. The value indicates that the Kerberos authentication is disabled. Users can use all functions provided by the cluster. <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>: safe mode. The value indicates that the Kerberos authentication is enabled. Common users cannot use the file management or job management functions of an MRS cluster and cannot view cluster resource usage or the job records of Hadoop and Spark. To use these functions, the users must obtain the relevant permissions from the MRS Manager administrator. The request has the <span pulumi-lang-nodejs=\"`clusterAdminSecret`\" pulumi-lang-dotnet=\"`ClusterAdminSecret`\" pulumi-lang-go=\"`clusterAdminSecret`\" pulumi-lang-python=\"`cluster_admin_secret`\" pulumi-lang-yaml=\"`clusterAdminSecret`\" pulumi-lang-java=\"`clusterAdminSecret`\">`cluster_admin_secret`</span> parameter only when <span pulumi-lang-nodejs=\"`safeMode`\" pulumi-lang-dotnet=\"`SafeMode`\" pulumi-lang-go=\"`safeMode`\" pulumi-lang-python=\"`safe_mode`\" pulumi-lang-yaml=\"`safeMode`\" pulumi-lang-java=\"`safeMode`\">`safe_mode`</span> is set to <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>.\n","type":"number"},"securityGroupsId":{"description":"Security group ID.\n","type":"string"},"slaveSecurityGroupsId":{"description":"Standby security group ID.\n","type":"string"},"subnetId":{"description":"Subnet ID Obtain the subnet ID from the management console as follows: Register an account and log in to the management console. Click Virtual Private Cloud and select Virtual Private Cloud from the left list. On the Virtual Private Cloud page, obtain the subnet ID from the list.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the cluster.\n","type":"object"},"tenantId":{"description":"Project ID.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FMrsClusterV1Timeouts:MrsClusterV1Timeouts"},"updateAt":{"description":"Cluster update time.\n","type":"string"},"vnc":{"description":"URI address for remote login of the elastic cloud server.\n","type":"string"},"volumeSize":{"description":"Data disk storage space of a Core node Users can add disks to expand storage capacity when creating a cluster. There are the following scenarios: Separation of data storage and computing: Data is stored in the OBS system. Costs of clusters are relatively low but computing performance is poor. The clusters can be deleted at any time. It is recommended when data computing is not frequently performed. Integration of data storage and computing: Data is stored in the HDFS system. Costs of clusters are relatively high but computing performance is good. The clusters cannot be deleted in a short term. It is recommended when data computing is frequently performed. Value range: <span pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\">`100`</span> GB to <span pulumi-lang-nodejs=\"`32000`\" pulumi-lang-dotnet=\"`32000`\" pulumi-lang-go=\"`32000`\" pulumi-lang-python=\"`32000`\" pulumi-lang-yaml=\"`32000`\" pulumi-lang-java=\"`32000`\">`32000`</span> GB.\n","type":"number"},"volumeType":{"description":"Type of disks. Supported values: `SAS` (High I/O), `SSD` (Ultra-high I/O).\n","type":"string"},"vpcId":{"description":"ID of the VPC where the subnet locates Obtain the VPC ID from the management console as follows: Register an account and log in to the management console. Click Virtual Private Cloud and select Virtual Private Cloud from the left list. On the Virtual Private Cloud page, obtain the VPC ID from the list.\n","type":"string"}},"required":["availableZoneId","availableZoneName","billingType","chargingStartTime","clusterAdminSecret","clusterId","clusterName","clusterState","clusterType","clusterVersion","componentLists","coreDataVolumeCount","coreDataVolumeSize","coreDataVolumeType","coreNodeNum","coreNodeProductId","coreNodeSize","coreNodeSpecId","createAt","deploymentId","errorInfo","externalAlternateIp","externalIp","fee","hadoopVersion","instanceId","internalIp","logCollection","masterDataVolumeCount","masterDataVolumeSize","masterDataVolumeType","masterNodeIp","masterNodeNum","masterNodeProductId","masterNodeSize","masterNodeSpecId","mrsClusterV1Id","nodePublicCertName","orderId","privateIpFirst","region","remark","safeMode","securityGroupsId","slaveSecurityGroupsId","subnetId","tenantId","updateAt","vnc","volumeSize","volumeType","vpcId"],"requiredInputs":["availableZoneId","billingType","clusterName","clusterVersion","componentLists","coreNodeNum","coreNodeSize","masterNodeNum","masterNodeSize","nodePublicCertName","safeMode","subnetId","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering MrsClusterV1 resources.\n","properties":{"addJobs":{"description":"You can submit a job when you create a cluster to save time and use MRS easily. Only one job can be added.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FMrsClusterV1AddJob:MrsClusterV1AddJob"},"type":"array"},"availableZoneId":{"description":"ID of an available zone. Obtain the value from Regions and Endpoints.\n","type":"string"},"availableZoneName":{"description":"Name of an availability zone.\n","type":"string"},"billingType":{"description":"The value is <span pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\">`12`</span>, indicating on-demand payment.\n","type":"number"},"bootstrapScripts":{"description":"Bootstrap action scripts. For details, see<span pulumi-lang-nodejs=\" bootstrapScripts \" pulumi-lang-dotnet=\" BootstrapScripts \" pulumi-lang-go=\" bootstrapScripts \" pulumi-lang-python=\" bootstrap_scripts \" pulumi-lang-yaml=\" bootstrapScripts \" pulumi-lang-java=\" bootstrapScripts \"> bootstrap_scripts </span>block below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FMrsClusterV1BootstrapScript:MrsClusterV1BootstrapScript"},"type":"array"},"chargingStartTime":{"description":"Time when charging starts.\n","type":"string"},"clusterAdminSecret":{"description":"Indicates the password of the MRS Manager administrator. The password must contain <span pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\">`8`</span> to <span pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\">`32`</span> characters. Must contain at least two types of the following: Lowercase letters, Uppercase letters, Digits, Special characters `~!@#$%^&*()-_=+\\|[{}];:'\",<.>/?` and spaces.\n","type":"string"},"clusterId":{"description":"Cluster ID.\n","type":"string"},"clusterName":{"description":"Cluster name, which is globally unique and contains only <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span> letters, digits, hyphens (-), and underscores (_).\n","type":"string"},"clusterState":{"description":"Cluster status. Valid values include: existing history: <span pulumi-lang-nodejs=\"`starting`\" pulumi-lang-dotnet=\"`Starting`\" pulumi-lang-go=\"`starting`\" pulumi-lang-python=\"`starting`\" pulumi-lang-yaml=\"`starting`\" pulumi-lang-java=\"`starting`\">`starting`</span>,\n<span pulumi-lang-nodejs=\"`running`\" pulumi-lang-dotnet=\"`Running`\" pulumi-lang-go=\"`running`\" pulumi-lang-python=\"`running`\" pulumi-lang-yaml=\"`running`\" pulumi-lang-java=\"`running`\">`running`</span>, <span pulumi-lang-nodejs=\"`terminated`\" pulumi-lang-dotnet=\"`Terminated`\" pulumi-lang-go=\"`terminated`\" pulumi-lang-python=\"`terminated`\" pulumi-lang-yaml=\"`terminated`\" pulumi-lang-java=\"`terminated`\">`terminated`</span>, <span pulumi-lang-nodejs=\"`failed`\" pulumi-lang-dotnet=\"`Failed`\" pulumi-lang-go=\"`failed`\" pulumi-lang-python=\"`failed`\" pulumi-lang-yaml=\"`failed`\" pulumi-lang-java=\"`failed`\">`failed`</span>, <span pulumi-lang-nodejs=\"`abnormal`\" pulumi-lang-dotnet=\"`Abnormal`\" pulumi-lang-go=\"`abnormal`\" pulumi-lang-python=\"`abnormal`\" pulumi-lang-yaml=\"`abnormal`\" pulumi-lang-java=\"`abnormal`\">`abnormal`</span>, <span pulumi-lang-nodejs=\"`terminating`\" pulumi-lang-dotnet=\"`Terminating`\" pulumi-lang-go=\"`terminating`\" pulumi-lang-python=\"`terminating`\" pulumi-lang-yaml=\"`terminating`\" pulumi-lang-java=\"`terminating`\">`terminating`</span>, <span pulumi-lang-nodejs=\"`rebooting`\" pulumi-lang-dotnet=\"`Rebooting`\" pulumi-lang-go=\"`rebooting`\" pulumi-lang-python=\"`rebooting`\" pulumi-lang-yaml=\"`rebooting`\" pulumi-lang-java=\"`rebooting`\">`rebooting`</span>,\n<span pulumi-lang-nodejs=\"`shutdown`\" pulumi-lang-dotnet=\"`Shutdown`\" pulumi-lang-go=\"`shutdown`\" pulumi-lang-python=\"`shutdown`\" pulumi-lang-yaml=\"`shutdown`\" pulumi-lang-java=\"`shutdown`\">`shutdown`</span>, <span pulumi-lang-nodejs=\"`frozen`\" pulumi-lang-dotnet=\"`Frozen`\" pulumi-lang-go=\"`frozen`\" pulumi-lang-python=\"`frozen`\" pulumi-lang-yaml=\"`frozen`\" pulumi-lang-java=\"`frozen`\">`frozen`</span>, `scaling-out`, `scaling-in`, `scaling-error`.\n","type":"string"},"clusterType":{"description":"Type of clusters. <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>: analysis cluster, <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>: streaming cluster The default value is <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>.\n","type":"number"},"clusterVersion":{"description":"Version of the clusters. Please refer to `Table 1` in the [API document](https://docs.otc.t-systems.com/mapreduce-service/api-ref/apis/cluster_management_apis_v1/creating_a_cluster_and_running_a_job.html) for supported versions.\n","type":"string"},"componentLists":{"description":"Service component list.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FMrsClusterV1ComponentList:MrsClusterV1ComponentList"},"type":"array"},"coreDataVolumeCount":{"description":"Number of data disks of the Core node. Value range: <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\">`10`</span>.\n","type":"number"},"coreDataVolumeSize":{"description":"Data disk size of the Core node. Value range: <span pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\">`100`</span> GB to <span pulumi-lang-nodejs=\"`32000`\" pulumi-lang-dotnet=\"`32000`\" pulumi-lang-go=\"`32000`\" pulumi-lang-python=\"`32000`\" pulumi-lang-yaml=\"`32000`\" pulumi-lang-java=\"`32000`\">`32000`</span> GB.\n","type":"number"},"coreDataVolumeType":{"description":"Data disk storage type of the Core node.  Supported values: `SAS` (High I/O), `SSD` (Ultra-high I/O).\n","type":"string"},"coreNodeNum":{"description":"Number of Core nodes Value range: <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\">`500`</span>. A maximum of <span pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\">`500`</span> Core nodes are supported by default. If more than <span pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\">`500`</span> Core nodes are required, contact technical support engineers or invoke background APIs to modify the database.\n","type":"number"},"coreNodeProductId":{"description":"Product ID of a Core node.\n","type":"string"},"coreNodeSize":{"description":"Instance specification of a Core node Configuration method of this parameter is identical to that of <span pulumi-lang-nodejs=\"`masterNodeSize`\" pulumi-lang-dotnet=\"`MasterNodeSize`\" pulumi-lang-go=\"`masterNodeSize`\" pulumi-lang-python=\"`master_node_size`\" pulumi-lang-yaml=\"`masterNodeSize`\" pulumi-lang-java=\"`masterNodeSize`\">`master_node_size`</span>.\n","type":"string"},"coreNodeSpecId":{"description":"Specification ID of a Core node.\n","type":"string"},"createAt":{"description":"Cluster creation time.\n","type":"string"},"deploymentId":{"description":"Deployment ID of a cluster.\n","type":"string"},"errorInfo":{"description":"Error information.\n","type":"string"},"externalAlternateIp":{"description":"Backup external IP address.\n","type":"string"},"externalIp":{"description":"External IP address.\n","type":"string"},"fee":{"description":"Cluster creation fee, which is automatically calculated.\n","type":"string"},"hadoopVersion":{"description":"Hadoop version.\n","type":"string"},"instanceId":{"description":"Instance ID.\n","type":"string"},"internalIp":{"type":"string"},"logCollection":{"description":"Indicates whether logs are collected when cluster installation fails. <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>: not collected. <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>: collected. The default value is <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>. If <span pulumi-lang-nodejs=\"`logCollection`\" pulumi-lang-dotnet=\"`LogCollection`\" pulumi-lang-go=\"`logCollection`\" pulumi-lang-python=\"`log_collection`\" pulumi-lang-yaml=\"`logCollection`\" pulumi-lang-java=\"`logCollection`\">`log_collection`</span> is set to <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>, OBS buckets will be created to collect the MRS logs. These buckets will be charged.\n","type":"number"},"masterDataVolumeCount":{"description":"Number of data disks of the Master node. The value can be set to <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> only.\n","type":"number"},"masterDataVolumeSize":{"description":"Data disk size of the Master node. Value range: <span pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\">`100`</span> GB to <span pulumi-lang-nodejs=\"`32000`\" pulumi-lang-dotnet=\"`32000`\" pulumi-lang-go=\"`32000`\" pulumi-lang-python=\"`32000`\" pulumi-lang-yaml=\"`32000`\" pulumi-lang-java=\"`32000`\">`32000`</span> GB.\n","type":"number"},"masterDataVolumeType":{"description":"Data disk storage type of the Master node. Supported values: `SAS` (High I/O), `SSD` (Ultra-high I/O).\n","type":"string"},"masterNodeIp":{"description":"IP address of a Master node.\n","type":"string"},"masterNodeNum":{"description":"Number of Master nodes.\n","type":"number"},"masterNodeProductId":{"description":"Product ID of a Master node.\n","type":"string"},"masterNodeSize":{"description":"Instance specifications of the Master node, for example, `c6.4xlarge.4linux.mrs`. MRS supports host specifications determined by CPU, memory, and disk space. For details about instance specifications, see [ECS Specifications Used by MRS](https://docs.otc.t-systems.com/mapreduce-service/api-ref/appendix/ecs_specifications_used_by_mrs.html#mrs-01-9005).\n","type":"string"},"masterNodeSpecId":{"description":"Specification ID of a Master node.\n","type":"string"},"mrsClusterV1Id":{"type":"string"},"nodePublicCertName":{"description":"Name of a key pair You can use a key to log in to the Master node in the cluster.\n","type":"string"},"orderId":{"description":"Order ID for creating clusters.\n","type":"string"},"privateIpFirst":{"description":"Primary private IP address.\n","type":"string"},"region":{"type":"string"},"remark":{"description":"Remarks of a cluster.\n","type":"string"},"safeMode":{"description":"MRS cluster running mode <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>: common mode. The value indicates that the Kerberos authentication is disabled. Users can use all functions provided by the cluster. <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>: safe mode. The value indicates that the Kerberos authentication is enabled. Common users cannot use the file management or job management functions of an MRS cluster and cannot view cluster resource usage or the job records of Hadoop and Spark. To use these functions, the users must obtain the relevant permissions from the MRS Manager administrator. The request has the <span pulumi-lang-nodejs=\"`clusterAdminSecret`\" pulumi-lang-dotnet=\"`ClusterAdminSecret`\" pulumi-lang-go=\"`clusterAdminSecret`\" pulumi-lang-python=\"`cluster_admin_secret`\" pulumi-lang-yaml=\"`clusterAdminSecret`\" pulumi-lang-java=\"`clusterAdminSecret`\">`cluster_admin_secret`</span> parameter only when <span pulumi-lang-nodejs=\"`safeMode`\" pulumi-lang-dotnet=\"`SafeMode`\" pulumi-lang-go=\"`safeMode`\" pulumi-lang-python=\"`safe_mode`\" pulumi-lang-yaml=\"`safeMode`\" pulumi-lang-java=\"`safeMode`\">`safe_mode`</span> is set to <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>.\n","type":"number"},"securityGroupsId":{"description":"Security group ID.\n","type":"string"},"slaveSecurityGroupsId":{"description":"Standby security group ID.\n","type":"string"},"subnetId":{"description":"Subnet ID Obtain the subnet ID from the management console as follows: Register an account and log in to the management console. Click Virtual Private Cloud and select Virtual Private Cloud from the left list. On the Virtual Private Cloud page, obtain the subnet ID from the list.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the cluster.\n","type":"object"},"tenantId":{"description":"Project ID.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FMrsClusterV1Timeouts:MrsClusterV1Timeouts"},"updateAt":{"description":"Cluster update time.\n","type":"string"},"vnc":{"description":"URI address for remote login of the elastic cloud server.\n","type":"string"},"volumeSize":{"description":"Data disk storage space of a Core node Users can add disks to expand storage capacity when creating a cluster. There are the following scenarios: Separation of data storage and computing: Data is stored in the OBS system. Costs of clusters are relatively low but computing performance is poor. The clusters can be deleted at any time. It is recommended when data computing is not frequently performed. Integration of data storage and computing: Data is stored in the HDFS system. Costs of clusters are relatively high but computing performance is good. The clusters cannot be deleted in a short term. It is recommended when data computing is frequently performed. Value range: <span pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\">`100`</span> GB to <span pulumi-lang-nodejs=\"`32000`\" pulumi-lang-dotnet=\"`32000`\" pulumi-lang-go=\"`32000`\" pulumi-lang-python=\"`32000`\" pulumi-lang-yaml=\"`32000`\" pulumi-lang-java=\"`32000`\">`32000`</span> GB.\n","type":"number"},"volumeType":{"description":"Type of disks. Supported values: `SAS` (High I/O), `SSD` (Ultra-high I/O).\n","type":"string"},"vpcId":{"description":"ID of the VPC where the subnet locates Obtain the VPC ID from the management console as follows: Register an account and log in to the management console. Click Virtual Private Cloud and select Virtual Private Cloud from the left list. On the Virtual Private Cloud page, obtain the VPC ID from the list.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/mrsJobV1:MrsJobV1":{"description":"Up-to-date reference of API arguments for MRS job you can get at\n[documentation portal](https://docs.otc.t-systems.com/mapreduce-service/api-ref/apis/job_object_apis_v1_not_recommended)\n\nManages resource job within OpenTelekomCloud MRS.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst job1 = new opentelekomcloud.MrsJobV1(\"job1\", {\n    jobType: 1,\n    jobName: \"test_mapreduce_job1\",\n    clusterId: \"ef43d2ff-1ecf-4f13-bd0c-0004c429a058\",\n    jarPath: \"s3a://wordcount/program/hadoop-mapreduce-examples-2.7.5.jar\",\n    input: \"s3a://wordcount/input/\",\n    output: \"s3a://wordcount/output/\",\n    jobLog: \"s3a://wordcount/log/\",\n    arguments: \"wordcount\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\njob1 = opentelekomcloud.MrsJobV1(\"job1\",\n    job_type=1,\n    job_name=\"test_mapreduce_job1\",\n    cluster_id=\"ef43d2ff-1ecf-4f13-bd0c-0004c429a058\",\n    jar_path=\"s3a://wordcount/program/hadoop-mapreduce-examples-2.7.5.jar\",\n    input=\"s3a://wordcount/input/\",\n    output=\"s3a://wordcount/output/\",\n    job_log=\"s3a://wordcount/log/\",\n    arguments=\"wordcount\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var job1 = new Opentelekomcloud.MrsJobV1(\"job1\", new()\n    {\n        JobType = 1,\n        JobName = \"test_mapreduce_job1\",\n        ClusterId = \"ef43d2ff-1ecf-4f13-bd0c-0004c429a058\",\n        JarPath = \"s3a://wordcount/program/hadoop-mapreduce-examples-2.7.5.jar\",\n        Input = \"s3a://wordcount/input/\",\n        Output = \"s3a://wordcount/output/\",\n        JobLog = \"s3a://wordcount/log/\",\n        Arguments = \"wordcount\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewMrsJobV1(ctx, \"job1\", &opentelekomcloud.MrsJobV1Args{\n\t\t\tJobType:   pulumi.Float64(1),\n\t\t\tJobName:   pulumi.String(\"test_mapreduce_job1\"),\n\t\t\tClusterId: pulumi.String(\"ef43d2ff-1ecf-4f13-bd0c-0004c429a058\"),\n\t\t\tJarPath:   pulumi.String(\"s3a://wordcount/program/hadoop-mapreduce-examples-2.7.5.jar\"),\n\t\t\tInput:     pulumi.String(\"s3a://wordcount/input/\"),\n\t\t\tOutput:    pulumi.String(\"s3a://wordcount/output/\"),\n\t\t\tJobLog:    pulumi.String(\"s3a://wordcount/log/\"),\n\t\t\tArguments: pulumi.String(\"wordcount\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.MrsJobV1;\nimport com.pulumi.opentelekomcloud.MrsJobV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var job1 = new MrsJobV1(\"job1\", MrsJobV1Args.builder()\n            .jobType(1.0)\n            .jobName(\"test_mapreduce_job1\")\n            .clusterId(\"ef43d2ff-1ecf-4f13-bd0c-0004c429a058\")\n            .jarPath(\"s3a://wordcount/program/hadoop-mapreduce-examples-2.7.5.jar\")\n            .input(\"s3a://wordcount/input/\")\n            .output(\"s3a://wordcount/output/\")\n            .jobLog(\"s3a://wordcount/log/\")\n            .arguments(\"wordcount\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  job1:\n    type: opentelekomcloud:MrsJobV1\n    properties:\n      jobType: 1\n      jobName: test_mapreduce_job1\n      clusterId: ef43d2ff-1ecf-4f13-bd0c-0004c429a058\n      jarPath: s3a://wordcount/program/hadoop-mapreduce-examples-2.7.5.jar\n      input: s3a://wordcount/input/\n      output: s3a://wordcount/output/\n      jobLog: s3a://wordcount/log/\n      arguments: wordcount\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"arguments":{"description":"Key parameter for program execution. The parameter\nis specified by the function of the user's program. MRS is only responsible\nfor loading the parameter. The parameter contains a maximum of 2047 characters,\nexcluding special characters such as ;|&>'<$, and can be empty.\n","type":"string"},"clusterId":{"description":"Cluster ID\n","type":"string"},"hiveScriptPath":{"description":"SQL program path This parameter is needed\nby Spark Script and Hive Script jobs only and must meet the following requirements:\nContains a maximum of 1023 characters, excluding special characters such as\n;|&><'$. The address cannot be empty or full of spaces. Starts with / or s3a://.\nEnds with .sql. sql is case-insensitive.\n","type":"string"},"input":{"description":"Path for inputting data, which must start with / or s3a://.\nA correct OBS path is required. The parameter contains a maximum of 1023 characters,\nexcluding special characters such as ;|&>'<$, and can be empty.\n","type":"string"},"isProtected":{"description":"Whether a job is protected true false The current\nversion does not support this function.\n","type":"boolean"},"isPublic":{"description":"Whether a job is public true false The current version\ndoes not support this function.\n","type":"boolean"},"jarPath":{"description":"Path of the .jar package or .sql file for program\nexecution The parameter must meet the following requirements: Contains a maximum\nof 1023 characters, excluding special characters such as ;|&><'$. The address\ncannot be empty or full of spaces. Starts with / or s3a://. Spark Script must\nend with .sql; while MapReduce and Spark Jar must end with .jar. sql and jar\nare case-insensitive.\n","type":"string"},"jobLog":{"description":"Path for storing job logs that record job running status.\nThis path must start with / or s3a://. A correct OBS path is required. The parameter\ncontains a maximum of 1023 characters, excluding special characters such as\n;|&>'<$, and can be empty.\n","type":"string"},"jobName":{"description":"Job name Contains only 1 to 64 letters, digits, hyphens\n(-), and underscores (_).\n\n> **Note:** Identical job names are allowed but not recommended.\n","type":"string"},"jobType":{"description":"Job type\n* 1: MapReduce\n* 2: Spark\n* 3: Hive Script\n* 4: HiveQL (not supported currently)\n* 5: DistCp, importing and exporting data.\n* 6: Spark Script\n* 7: Spark SQL, submitting Spark SQL statements. (not supported in this  API currently)\n\n> **Note:** Spark and Hive jobs can be added to only clusters including Spark and Hive components.\n","type":"number"},"mrsJobV1Id":{"type":"string"},"output":{"description":"Path for outputting data, which must start with / or\ns3a://. A correct OBS path is required. If the path does not exist, the system\nautomatically creates it. The parameter contains a maximum of 1023 characters,\nexcluding special characters such as ;|&>'<$, and can be empty.\n","type":"string"},"region":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FMrsJobV1Timeouts:MrsJobV1Timeouts"}},"properties":{"arguments":{"description":"Key parameter for program execution. The parameter\nis specified by the function of the user's program. MRS is only responsible\nfor loading the parameter. The parameter contains a maximum of 2047 characters,\nexcluding special characters such as ;|&>'<$, and can be empty.\n","type":"string"},"clusterId":{"description":"Cluster ID\n","type":"string"},"hiveScriptPath":{"description":"SQL program path This parameter is needed\nby Spark Script and Hive Script jobs only and must meet the following requirements:\nContains a maximum of 1023 characters, excluding special characters such as\n;|&><'$. The address cannot be empty or full of spaces. Starts with / or s3a://.\nEnds with .sql. sql is case-insensitive.\n","type":"string"},"input":{"description":"Path for inputting data, which must start with / or s3a://.\nA correct OBS path is required. The parameter contains a maximum of 1023 characters,\nexcluding special characters such as ;|&>'<$, and can be empty.\n","type":"string"},"isProtected":{"description":"Whether a job is protected true false The current\nversion does not support this function.\n","type":"boolean"},"isPublic":{"description":"Whether a job is public true false The current version\ndoes not support this function.\n","type":"boolean"},"jarPath":{"description":"Path of the .jar package or .sql file for program\nexecution The parameter must meet the following requirements: Contains a maximum\nof 1023 characters, excluding special characters such as ;|&><'$. The address\ncannot be empty or full of spaces. Starts with / or s3a://. Spark Script must\nend with .sql; while MapReduce and Spark Jar must end with .jar. sql and jar\nare case-insensitive.\n","type":"string"},"jobLog":{"description":"Path for storing job logs that record job running status.\nThis path must start with / or s3a://. A correct OBS path is required. The parameter\ncontains a maximum of 1023 characters, excluding special characters such as\n;|&>'<$, and can be empty.\n","type":"string"},"jobName":{"description":"Job name Contains only 1 to 64 letters, digits, hyphens\n(-), and underscores (_).\n\n> **Note:** Identical job names are allowed but not recommended.\n","type":"string"},"jobState":{"type":"string"},"jobType":{"description":"Job type\n* 1: MapReduce\n* 2: Spark\n* 3: Hive Script\n* 4: HiveQL (not supported currently)\n* 5: DistCp, importing and exporting data.\n* 6: Spark Script\n* 7: Spark SQL, submitting Spark SQL statements. (not supported in this  API currently)\n\n> **Note:** Spark and Hive jobs can be added to only clusters including Spark and Hive components.\n","type":"number"},"mrsJobV1Id":{"type":"string"},"output":{"description":"Path for outputting data, which must start with / or\ns3a://. A correct OBS path is required. If the path does not exist, the system\nautomatically creates it. The parameter contains a maximum of 1023 characters,\nexcluding special characters such as ;|&>'<$, and can be empty.\n","type":"string"},"region":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FMrsJobV1Timeouts:MrsJobV1Timeouts"}},"required":["arguments","clusterId","hiveScriptPath","input","isProtected","isPublic","jarPath","jobLog","jobName","jobState","jobType","mrsJobV1Id","output","region"],"requiredInputs":["clusterId","jarPath","jobName","jobType"],"stateInputs":{"description":"Input properties used for looking up and filtering MrsJobV1 resources.\n","properties":{"arguments":{"description":"Key parameter for program execution. The parameter\nis specified by the function of the user's program. MRS is only responsible\nfor loading the parameter. The parameter contains a maximum of 2047 characters,\nexcluding special characters such as ;|&>'<$, and can be empty.\n","type":"string"},"clusterId":{"description":"Cluster ID\n","type":"string"},"hiveScriptPath":{"description":"SQL program path This parameter is needed\nby Spark Script and Hive Script jobs only and must meet the following requirements:\nContains a maximum of 1023 characters, excluding special characters such as\n;|&><'$. The address cannot be empty or full of spaces. Starts with / or s3a://.\nEnds with .sql. sql is case-insensitive.\n","type":"string"},"input":{"description":"Path for inputting data, which must start with / or s3a://.\nA correct OBS path is required. The parameter contains a maximum of 1023 characters,\nexcluding special characters such as ;|&>'<$, and can be empty.\n","type":"string"},"isProtected":{"description":"Whether a job is protected true false The current\nversion does not support this function.\n","type":"boolean"},"isPublic":{"description":"Whether a job is public true false The current version\ndoes not support this function.\n","type":"boolean"},"jarPath":{"description":"Path of the .jar package or .sql file for program\nexecution The parameter must meet the following requirements: Contains a maximum\nof 1023 characters, excluding special characters such as ;|&><'$. The address\ncannot be empty or full of spaces. Starts with / or s3a://. Spark Script must\nend with .sql; while MapReduce and Spark Jar must end with .jar. sql and jar\nare case-insensitive.\n","type":"string"},"jobLog":{"description":"Path for storing job logs that record job running status.\nThis path must start with / or s3a://. A correct OBS path is required. The parameter\ncontains a maximum of 1023 characters, excluding special characters such as\n;|&>'<$, and can be empty.\n","type":"string"},"jobName":{"description":"Job name Contains only 1 to 64 letters, digits, hyphens\n(-), and underscores (_).\n\n> **Note:** Identical job names are allowed but not recommended.\n","type":"string"},"jobState":{"type":"string"},"jobType":{"description":"Job type\n* 1: MapReduce\n* 2: Spark\n* 3: Hive Script\n* 4: HiveQL (not supported currently)\n* 5: DistCp, importing and exporting data.\n* 6: Spark Script\n* 7: Spark SQL, submitting Spark SQL statements. (not supported in this  API currently)\n\n> **Note:** Spark and Hive jobs can be added to only clusters including Spark and Hive components.\n","type":"number"},"mrsJobV1Id":{"type":"string"},"output":{"description":"Path for outputting data, which must start with / or\ns3a://. A correct OBS path is required. If the path does not exist, the system\nautomatically creates it. The parameter contains a maximum of 1023 characters,\nexcluding special characters such as ;|&>'<$, and can be empty.\n","type":"string"},"region":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FMrsJobV1Timeouts:MrsJobV1Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/natDnatRuleV2:NatDnatRuleV2":{"description":"Up-to-date reference of API arguments for NAT DNAT you can get at\n[documentation portal](https://docs.otc.t-systems.com/nat-gateway/api-ref/api_v2.0/dnat_rules)\n\nManages a V2 DNAT rule resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst natGwId = config.requireObject<any>(\"natGwId\");\nconst floatingIpId = config.requireObject<any>(\"floatingIpId\");\nconst privateIp = config.requireObject<any>(\"privateIp\");\nconst dnat1 = new opentelekomcloud.NatDnatRuleV2(\"dnat_1\", {\n    floatingIpId: floatingIpId,\n    natGatewayId: natGwId,\n    privateIp: privateId,\n    internalServicePort: 993,\n    protocol: \"tcp\",\n    externalServicePort: 242,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nnat_gw_id = config.require_object(\"natGwId\")\nfloating_ip_id = config.require_object(\"floatingIpId\")\nprivate_ip = config.require_object(\"privateIp\")\ndnat1 = opentelekomcloud.NatDnatRuleV2(\"dnat_1\",\n    floating_ip_id=floating_ip_id,\n    nat_gateway_id=nat_gw_id,\n    private_ip=private_id,\n    internal_service_port=993,\n    protocol=\"tcp\",\n    external_service_port=242)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var natGwId = config.RequireObject<dynamic>(\"natGwId\");\n    var floatingIpId = config.RequireObject<dynamic>(\"floatingIpId\");\n    var privateIp = config.RequireObject<dynamic>(\"privateIp\");\n    var dnat1 = new Opentelekomcloud.NatDnatRuleV2(\"dnat_1\", new()\n    {\n        FloatingIpId = floatingIpId,\n        NatGatewayId = natGwId,\n        PrivateIp = privateId,\n        InternalServicePort = 993,\n        Protocol = \"tcp\",\n        ExternalServicePort = 242,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tnatGwId := cfg.RequireObject(\"natGwId\")\n\t\tfloatingIpId := cfg.RequireObject(\"floatingIpId\")\n\t\tprivateIp := cfg.RequireObject(\"privateIp\")\n\t\t_, err := opentelekomcloud.NewNatDnatRuleV2(ctx, \"dnat_1\", &opentelekomcloud.NatDnatRuleV2Args{\n\t\t\tFloatingIpId:        pulumi.Any(floatingIpId),\n\t\t\tNatGatewayId:        pulumi.Any(natGwId),\n\t\t\tPrivateIp:           pulumi.Any(privateId),\n\t\t\tInternalServicePort: pulumi.Float64(993),\n\t\t\tProtocol:            pulumi.String(\"tcp\"),\n\t\t\tExternalServicePort: pulumi.Float64(242),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.NatDnatRuleV2;\nimport com.pulumi.opentelekomcloud.NatDnatRuleV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var natGwId = config.get(\"natGwId\");\n        final var floatingIpId = config.get(\"floatingIpId\");\n        final var privateIp = config.get(\"privateIp\");\n        var dnat1 = new NatDnatRuleV2(\"dnat1\", NatDnatRuleV2Args.builder()\n            .floatingIpId(floatingIpId)\n            .natGatewayId(natGwId)\n            .privateIp(privateId)\n            .internalServicePort(993.0)\n            .protocol(\"tcp\")\n            .externalServicePort(242.0)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  natGwId:\n    type: dynamic\n  floatingIpId:\n    type: dynamic\n  privateIp:\n    type: dynamic\nresources:\n  dnat1:\n    type: opentelekomcloud:NatDnatRuleV2\n    name: dnat_1\n    properties:\n      floatingIpId: ${floatingIpId}\n      natGatewayId: ${natGwId}\n      privateIp: ${privateId}\n      internalServicePort: 993\n      protocol: tcp\n      externalServicePort: 242\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nDNAT can be imported using the following format:\n\n```sh\n$ pulumi import opentelekomcloud:index/natDnatRuleV2:NatDnatRuleV2 dnat_1 f4f783a7-b908-4215-b018-724960e5df4a\n```\n\n","inputProperties":{"description":{"description":"Provides supplementary information about the DNAT rule.\nChanging this creates a new DNAT rule.\n","type":"string"},"externalServicePort":{"description":"Specifies port used by ECSs or\nBMSs to provide services for external systems. Changing this creates a new DNAT rule.\n","type":"number"},"floatingIpId":{"description":"Specifies the ID of the floating IP address.\nChanging this creates a new resource.\n","type":"string"},"internalServicePort":{"description":"Specifies port used by ECSs or BMSs\nto provide services for external systems. Changing this creates a new resource.\n","type":"number"},"natDnatRuleV2Id":{"type":"string"},"natGatewayId":{"description":"ID of the NAT gateway this DNAT rule belongs to.\nChanging this creates a new DNAT rule.\n\n> You can create a DNAT rule only when status of the NAT gateway is set to `ACTIVE`\nand <span pulumi-lang-nodejs=\"`adminStateUp`\" pulumi-lang-dotnet=\"`AdminStateUp`\" pulumi-lang-go=\"`adminStateUp`\" pulumi-lang-python=\"`admin_state_up`\" pulumi-lang-yaml=\"`adminStateUp`\" pulumi-lang-java=\"`adminStateUp`\">`admin_state_up`</span> of the NAT gateway administrator to `True`.\n","type":"string"},"portId":{"description":"Specifies the port ID of an ECS or a BMS.\nThis parameter and <span pulumi-lang-nodejs=\"`privateIp`\" pulumi-lang-dotnet=\"`PrivateIp`\" pulumi-lang-go=\"`privateIp`\" pulumi-lang-python=\"`private_ip`\" pulumi-lang-yaml=\"`privateIp`\" pulumi-lang-java=\"`privateIp`\">`private_ip`</span> are alternative. Changing this creates a\nnew DNAT rule.\n\n->\nWhen the DNAT rule is used in the **VPC** scenario, use <span pulumi-lang-nodejs=\"`portId`\" pulumi-lang-dotnet=\"`PortId`\" pulumi-lang-go=\"`portId`\" pulumi-lang-python=\"`port_id`\" pulumi-lang-yaml=\"`portId`\" pulumi-lang-java=\"`portId`\">`port_id`</span> parameter.\n","type":"string"},"privateIp":{"description":"Specifies the private IP address of a\nuser, for example, the IP address of a VPC for dedicated connection.\nThis parameter and <span pulumi-lang-nodejs=\"`portId`\" pulumi-lang-dotnet=\"`PortId`\" pulumi-lang-go=\"`portId`\" pulumi-lang-python=\"`port_id`\" pulumi-lang-yaml=\"`portId`\" pulumi-lang-java=\"`portId`\">`port_id`</span> are alternative. Changing this creates a new DNAT rule.\n\n->\nWhen the DNAT rule is used in the **Direct Connect** scenario, use <span pulumi-lang-nodejs=\"`privateIp`\" pulumi-lang-dotnet=\"`PrivateIp`\" pulumi-lang-go=\"`privateIp`\" pulumi-lang-python=\"`private_ip`\" pulumi-lang-yaml=\"`privateIp`\" pulumi-lang-java=\"`privateIp`\">`private_ip`</span> parameter.\n","type":"string"},"protocol":{"description":"Specifies the protocol type. Currently,\n<span pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\">`tcp`</span>, <span pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\">`udp`</span>, and <span pulumi-lang-nodejs=\"`any`\" pulumi-lang-dotnet=\"`Any`\" pulumi-lang-go=\"`any`\" pulumi-lang-python=\"`any`\" pulumi-lang-yaml=\"`any`\" pulumi-lang-java=\"`any`\">`any`</span> are supported. Changing this creates a new DNAT rule.\n\n> If you create a rule that applies to all port types, set <span pulumi-lang-nodejs=\"`internalServicePort`\" pulumi-lang-dotnet=\"`InternalServicePort`\" pulumi-lang-go=\"`internalServicePort`\" pulumi-lang-python=\"`internal_service_port`\" pulumi-lang-yaml=\"`internalServicePort`\" pulumi-lang-java=\"`internalServicePort`\">`internal_service_port`</span> to <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>,\n<span pulumi-lang-nodejs=\"`externalServicePort`\" pulumi-lang-dotnet=\"`ExternalServicePort`\" pulumi-lang-go=\"`externalServicePort`\" pulumi-lang-python=\"`external_service_port`\" pulumi-lang-yaml=\"`externalServicePort`\" pulumi-lang-java=\"`externalServicePort`\">`external_service_port`</span> to <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>, and <span pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\">`protocol`</span> to <span pulumi-lang-nodejs=\"`any`\" pulumi-lang-dotnet=\"`Any`\" pulumi-lang-go=\"`any`\" pulumi-lang-python=\"`any`\" pulumi-lang-yaml=\"`any`\" pulumi-lang-java=\"`any`\">`any`</span>.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNatDnatRuleV2Timeouts:NatDnatRuleV2Timeouts"}},"properties":{"createdAt":{"description":"DNAT rule creation time.\n","type":"string"},"description":{"description":"Provides supplementary information about the DNAT rule.\nChanging this creates a new DNAT rule.\n","type":"string"},"externalServicePort":{"description":"Specifies port used by ECSs or\nBMSs to provide services for external systems. Changing this creates a new DNAT rule.\n","type":"number"},"floatingIpAddress":{"description":"The actual floating IP address.\n","type":"string"},"floatingIpId":{"description":"Specifies the ID of the floating IP address.\nChanging this creates a new resource.\n","type":"string"},"internalServicePort":{"description":"Specifies port used by ECSs or BMSs\nto provide services for external systems. Changing this creates a new resource.\n","type":"number"},"natDnatRuleV2Id":{"type":"string"},"natGatewayId":{"description":"ID of the NAT gateway this DNAT rule belongs to.\nChanging this creates a new DNAT rule.\n\n> You can create a DNAT rule only when status of the NAT gateway is set to `ACTIVE`\nand <span pulumi-lang-nodejs=\"`adminStateUp`\" pulumi-lang-dotnet=\"`AdminStateUp`\" pulumi-lang-go=\"`adminStateUp`\" pulumi-lang-python=\"`admin_state_up`\" pulumi-lang-yaml=\"`adminStateUp`\" pulumi-lang-java=\"`adminStateUp`\">`admin_state_up`</span> of the NAT gateway administrator to `True`.\n","type":"string"},"portId":{"description":"Specifies the port ID of an ECS or a BMS.\nThis parameter and <span pulumi-lang-nodejs=\"`privateIp`\" pulumi-lang-dotnet=\"`PrivateIp`\" pulumi-lang-go=\"`privateIp`\" pulumi-lang-python=\"`private_ip`\" pulumi-lang-yaml=\"`privateIp`\" pulumi-lang-java=\"`privateIp`\">`private_ip`</span> are alternative. Changing this creates a\nnew DNAT rule.\n\n->\nWhen the DNAT rule is used in the **VPC** scenario, use <span pulumi-lang-nodejs=\"`portId`\" pulumi-lang-dotnet=\"`PortId`\" pulumi-lang-go=\"`portId`\" pulumi-lang-python=\"`port_id`\" pulumi-lang-yaml=\"`portId`\" pulumi-lang-java=\"`portId`\">`port_id`</span> parameter.\n","type":"string"},"privateIp":{"description":"Specifies the private IP address of a\nuser, for example, the IP address of a VPC for dedicated connection.\nThis parameter and <span pulumi-lang-nodejs=\"`portId`\" pulumi-lang-dotnet=\"`PortId`\" pulumi-lang-go=\"`portId`\" pulumi-lang-python=\"`port_id`\" pulumi-lang-yaml=\"`portId`\" pulumi-lang-java=\"`portId`\">`port_id`</span> are alternative. Changing this creates a new DNAT rule.\n\n->\nWhen the DNAT rule is used in the **Direct Connect** scenario, use <span pulumi-lang-nodejs=\"`privateIp`\" pulumi-lang-dotnet=\"`PrivateIp`\" pulumi-lang-go=\"`privateIp`\" pulumi-lang-python=\"`private_ip`\" pulumi-lang-yaml=\"`privateIp`\" pulumi-lang-java=\"`privateIp`\">`private_ip`</span> parameter.\n","type":"string"},"protocol":{"description":"Specifies the protocol type. Currently,\n<span pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\">`tcp`</span>, <span pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\">`udp`</span>, and <span pulumi-lang-nodejs=\"`any`\" pulumi-lang-dotnet=\"`Any`\" pulumi-lang-go=\"`any`\" pulumi-lang-python=\"`any`\" pulumi-lang-yaml=\"`any`\" pulumi-lang-java=\"`any`\">`any`</span> are supported. Changing this creates a new DNAT rule.\n\n> If you create a rule that applies to all port types, set <span pulumi-lang-nodejs=\"`internalServicePort`\" pulumi-lang-dotnet=\"`InternalServicePort`\" pulumi-lang-go=\"`internalServicePort`\" pulumi-lang-python=\"`internal_service_port`\" pulumi-lang-yaml=\"`internalServicePort`\" pulumi-lang-java=\"`internalServicePort`\">`internal_service_port`</span> to <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>,\n<span pulumi-lang-nodejs=\"`externalServicePort`\" pulumi-lang-dotnet=\"`ExternalServicePort`\" pulumi-lang-go=\"`externalServicePort`\" pulumi-lang-python=\"`external_service_port`\" pulumi-lang-yaml=\"`externalServicePort`\" pulumi-lang-java=\"`externalServicePort`\">`external_service_port`</span> to <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>, and <span pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\">`protocol`</span> to <span pulumi-lang-nodejs=\"`any`\" pulumi-lang-dotnet=\"`Any`\" pulumi-lang-go=\"`any`\" pulumi-lang-python=\"`any`\" pulumi-lang-yaml=\"`any`\" pulumi-lang-java=\"`any`\">`any`</span>.\n","type":"string"},"status":{"description":"DNAT rule status.\n","type":"string"},"tenantId":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNatDnatRuleV2Timeouts:NatDnatRuleV2Timeouts"}},"required":["createdAt","externalServicePort","floatingIpAddress","floatingIpId","internalServicePort","natDnatRuleV2Id","natGatewayId","protocol","status","tenantId"],"requiredInputs":["externalServicePort","floatingIpId","internalServicePort","natGatewayId","protocol"],"stateInputs":{"description":"Input properties used for looking up and filtering NatDnatRuleV2 resources.\n","properties":{"createdAt":{"description":"DNAT rule creation time.\n","type":"string"},"description":{"description":"Provides supplementary information about the DNAT rule.\nChanging this creates a new DNAT rule.\n","type":"string"},"externalServicePort":{"description":"Specifies port used by ECSs or\nBMSs to provide services for external systems. Changing this creates a new DNAT rule.\n","type":"number"},"floatingIpAddress":{"description":"The actual floating IP address.\n","type":"string"},"floatingIpId":{"description":"Specifies the ID of the floating IP address.\nChanging this creates a new resource.\n","type":"string"},"internalServicePort":{"description":"Specifies port used by ECSs or BMSs\nto provide services for external systems. Changing this creates a new resource.\n","type":"number"},"natDnatRuleV2Id":{"type":"string"},"natGatewayId":{"description":"ID of the NAT gateway this DNAT rule belongs to.\nChanging this creates a new DNAT rule.\n\n> You can create a DNAT rule only when status of the NAT gateway is set to `ACTIVE`\nand <span pulumi-lang-nodejs=\"`adminStateUp`\" pulumi-lang-dotnet=\"`AdminStateUp`\" pulumi-lang-go=\"`adminStateUp`\" pulumi-lang-python=\"`admin_state_up`\" pulumi-lang-yaml=\"`adminStateUp`\" pulumi-lang-java=\"`adminStateUp`\">`admin_state_up`</span> of the NAT gateway administrator to `True`.\n","type":"string"},"portId":{"description":"Specifies the port ID of an ECS or a BMS.\nThis parameter and <span pulumi-lang-nodejs=\"`privateIp`\" pulumi-lang-dotnet=\"`PrivateIp`\" pulumi-lang-go=\"`privateIp`\" pulumi-lang-python=\"`private_ip`\" pulumi-lang-yaml=\"`privateIp`\" pulumi-lang-java=\"`privateIp`\">`private_ip`</span> are alternative. Changing this creates a\nnew DNAT rule.\n\n->\nWhen the DNAT rule is used in the **VPC** scenario, use <span pulumi-lang-nodejs=\"`portId`\" pulumi-lang-dotnet=\"`PortId`\" pulumi-lang-go=\"`portId`\" pulumi-lang-python=\"`port_id`\" pulumi-lang-yaml=\"`portId`\" pulumi-lang-java=\"`portId`\">`port_id`</span> parameter.\n","type":"string"},"privateIp":{"description":"Specifies the private IP address of a\nuser, for example, the IP address of a VPC for dedicated connection.\nThis parameter and <span pulumi-lang-nodejs=\"`portId`\" pulumi-lang-dotnet=\"`PortId`\" pulumi-lang-go=\"`portId`\" pulumi-lang-python=\"`port_id`\" pulumi-lang-yaml=\"`portId`\" pulumi-lang-java=\"`portId`\">`port_id`</span> are alternative. Changing this creates a new DNAT rule.\n\n->\nWhen the DNAT rule is used in the **Direct Connect** scenario, use <span pulumi-lang-nodejs=\"`privateIp`\" pulumi-lang-dotnet=\"`PrivateIp`\" pulumi-lang-go=\"`privateIp`\" pulumi-lang-python=\"`private_ip`\" pulumi-lang-yaml=\"`privateIp`\" pulumi-lang-java=\"`privateIp`\">`private_ip`</span> parameter.\n","type":"string"},"protocol":{"description":"Specifies the protocol type. Currently,\n<span pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\">`tcp`</span>, <span pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\">`udp`</span>, and <span pulumi-lang-nodejs=\"`any`\" pulumi-lang-dotnet=\"`Any`\" pulumi-lang-go=\"`any`\" pulumi-lang-python=\"`any`\" pulumi-lang-yaml=\"`any`\" pulumi-lang-java=\"`any`\">`any`</span> are supported. Changing this creates a new DNAT rule.\n\n> If you create a rule that applies to all port types, set <span pulumi-lang-nodejs=\"`internalServicePort`\" pulumi-lang-dotnet=\"`InternalServicePort`\" pulumi-lang-go=\"`internalServicePort`\" pulumi-lang-python=\"`internal_service_port`\" pulumi-lang-yaml=\"`internalServicePort`\" pulumi-lang-java=\"`internalServicePort`\">`internal_service_port`</span> to <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>,\n<span pulumi-lang-nodejs=\"`externalServicePort`\" pulumi-lang-dotnet=\"`ExternalServicePort`\" pulumi-lang-go=\"`externalServicePort`\" pulumi-lang-python=\"`external_service_port`\" pulumi-lang-yaml=\"`externalServicePort`\" pulumi-lang-java=\"`externalServicePort`\">`external_service_port`</span> to <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>, and <span pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\">`protocol`</span> to <span pulumi-lang-nodejs=\"`any`\" pulumi-lang-dotnet=\"`Any`\" pulumi-lang-go=\"`any`\" pulumi-lang-python=\"`any`\" pulumi-lang-yaml=\"`any`\" pulumi-lang-java=\"`any`\">`any`</span>.\n","type":"string"},"status":{"description":"DNAT rule status.\n","type":"string"},"tenantId":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNatDnatRuleV2Timeouts:NatDnatRuleV2Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/natGatewayV2:NatGatewayV2":{"description":"Up-to-date reference of API arguments for NAT gateway you can get at\n[documentation portal](https://docs.otc.t-systems.com/nat-gateway/api-ref/api_v2.0/nat_gateway_service)\n\nManages a V2 NAT Gateway resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst routerId = config.requireObject<any>(\"routerId\");\nconst internalNetworkId = config.requireObject<any>(\"internalNetworkId\");\nconst _this = new opentelekomcloud.NatGatewayV2(\"this\", {\n    name: \"tf_nat\",\n    description: \"NAT GW created by terraform\",\n    spec: \"0\",\n    routerId: routerId,\n    internalNetworkId: internalNetworkId,\n    tags: {\n        muh: \"kuh\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nrouter_id = config.require_object(\"routerId\")\ninternal_network_id = config.require_object(\"internalNetworkId\")\nthis = opentelekomcloud.NatGatewayV2(\"this\",\n    name=\"tf_nat\",\n    description=\"NAT GW created by terraform\",\n    spec=\"0\",\n    router_id=router_id,\n    internal_network_id=internal_network_id,\n    tags={\n        \"muh\": \"kuh\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var routerId = config.RequireObject<dynamic>(\"routerId\");\n    var internalNetworkId = config.RequireObject<dynamic>(\"internalNetworkId\");\n    var @this = new Opentelekomcloud.NatGatewayV2(\"this\", new()\n    {\n        Name = \"tf_nat\",\n        Description = \"NAT GW created by terraform\",\n        Spec = \"0\",\n        RouterId = routerId,\n        InternalNetworkId = internalNetworkId,\n        Tags = \n        {\n            { \"muh\", \"kuh\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\trouterId := cfg.RequireObject(\"routerId\")\n\t\tinternalNetworkId := cfg.RequireObject(\"internalNetworkId\")\n\t\t_, err := opentelekomcloud.NewNatGatewayV2(ctx, \"this\", &opentelekomcloud.NatGatewayV2Args{\n\t\t\tName:              pulumi.String(\"tf_nat\"),\n\t\t\tDescription:       pulumi.String(\"NAT GW created by terraform\"),\n\t\t\tSpec:              pulumi.String(\"0\"),\n\t\t\tRouterId:          pulumi.Any(routerId),\n\t\t\tInternalNetworkId: pulumi.Any(internalNetworkId),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"muh\": pulumi.String(\"kuh\"),\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.opentelekomcloud.NatGatewayV2;\nimport com.pulumi.opentelekomcloud.NatGatewayV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var routerId = config.get(\"routerId\");\n        final var internalNetworkId = config.get(\"internalNetworkId\");\n        var this_ = new NatGatewayV2(\"this\", NatGatewayV2Args.builder()\n            .name(\"tf_nat\")\n            .description(\"NAT GW created by terraform\")\n            .spec(\"0\")\n            .routerId(routerId)\n            .internalNetworkId(internalNetworkId)\n            .tags(Map.of(\"muh\", \"kuh\"))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  routerId:\n    type: dynamic\n  internalNetworkId:\n    type: dynamic\nresources:\n  this:\n    type: opentelekomcloud:NatGatewayV2\n    properties:\n      name: tf_nat\n      description: NAT GW created by terraform\n      spec: '0'\n      routerId: ${routerId}\n      internalNetworkId: ${internalNetworkId}\n      tags:\n        muh: kuh\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"description":{"description":"The description of the NAT Gateway.\n","type":"string"},"internalNetworkId":{"description":"ID of the network this NAT Gateway connects to.\nChanging this creates a new NAT Gateway.\n","type":"string"},"name":{"description":"The name of the NAT Gateway.\n","type":"string"},"natGatewayV2Id":{"type":"string"},"region":{"type":"string"},"routerId":{"description":"ID of the router (or VPC) this NAT Gateway belongs to. Changing\nthis creates a new NAT Gateway.\n","type":"string"},"spec":{"description":"The specification of the NAT Gateway, valid values are `\"0\"`,`\"1\"`, `\"2\"`, `\"3\"`, `\"4\"`.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the NAT Gateway.\n","type":"object"},"tenantId":{"description":"The target tenant ID in which to allocate the NAT\nGateway. Changing this creates a new NAT Gateway.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNatGatewayV2Timeouts:NatGatewayV2Timeouts"}},"properties":{"description":{"description":"The description of the NAT Gateway.\n","type":"string"},"internalNetworkId":{"description":"ID of the network this NAT Gateway connects to.\nChanging this creates a new NAT Gateway.\n","type":"string"},"name":{"description":"The name of the NAT Gateway.\n","type":"string"},"natGatewayV2Id":{"type":"string"},"region":{"type":"string"},"routerId":{"description":"ID of the router (or VPC) this NAT Gateway belongs to. Changing\nthis creates a new NAT Gateway.\n","type":"string"},"spec":{"description":"The specification of the NAT Gateway, valid values are `\"0\"`,`\"1\"`, `\"2\"`, `\"3\"`, `\"4\"`.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the NAT Gateway.\n","type":"object"},"tenantId":{"description":"The target tenant ID in which to allocate the NAT\nGateway. Changing this creates a new NAT Gateway.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNatGatewayV2Timeouts:NatGatewayV2Timeouts"}},"required":["description","internalNetworkId","name","natGatewayV2Id","region","routerId","spec","tenantId"],"requiredInputs":["internalNetworkId","routerId","spec"],"stateInputs":{"description":"Input properties used for looking up and filtering NatGatewayV2 resources.\n","properties":{"description":{"description":"The description of the NAT Gateway.\n","type":"string"},"internalNetworkId":{"description":"ID of the network this NAT Gateway connects to.\nChanging this creates a new NAT Gateway.\n","type":"string"},"name":{"description":"The name of the NAT Gateway.\n","type":"string"},"natGatewayV2Id":{"type":"string"},"region":{"type":"string"},"routerId":{"description":"ID of the router (or VPC) this NAT Gateway belongs to. Changing\nthis creates a new NAT Gateway.\n","type":"string"},"spec":{"description":"The specification of the NAT Gateway, valid values are `\"0\"`,`\"1\"`, `\"2\"`, `\"3\"`, `\"4\"`.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the NAT Gateway.\n","type":"object"},"tenantId":{"description":"The target tenant ID in which to allocate the NAT\nGateway. Changing this creates a new NAT Gateway.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNatGatewayV2Timeouts:NatGatewayV2Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/natSnatRuleV2:NatSnatRuleV2":{"description":"Up-to-date reference of API arguments for NAT SNAT you can get at\n[documentation portal](https://docs.otc.t-systems.com/nat-gateway/api-ref/api_v2.0/snat_rules)\n\nManages a V2 snat rule resource within OpenTelekomCloud Nat.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst networkId = config.requireObject<any>(\"networkId\");\nconst vpcId = config.requireObject<any>(\"vpcId\");\nconst fip1 = new opentelekomcloud.NetworkingFloatingipV2(\"fip_1\", {});\nconst nat1 = new opentelekomcloud.NatGatewayV2(\"nat_1\", {\n    name: \"nat_1\",\n    description: \"test for terraform\",\n    spec: \"1\",\n    internalNetworkId: networkId,\n    routerId: vpcId,\n});\nconst snat1 = new opentelekomcloud.NatSnatRuleV2(\"snat_1\", {\n    natGatewayId: nat1.natGatewayV2Id,\n    floatingIpId: fip1.networkingFloatingipV2Id,\n    cidr: \"192.168.0.0/24\",\n    sourceType: 0,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nnetwork_id = config.require_object(\"networkId\")\nvpc_id = config.require_object(\"vpcId\")\nfip1 = opentelekomcloud.NetworkingFloatingipV2(\"fip_1\")\nnat1 = opentelekomcloud.NatGatewayV2(\"nat_1\",\n    name=\"nat_1\",\n    description=\"test for terraform\",\n    spec=\"1\",\n    internal_network_id=network_id,\n    router_id=vpc_id)\nsnat1 = opentelekomcloud.NatSnatRuleV2(\"snat_1\",\n    nat_gateway_id=nat1.nat_gateway_v2_id,\n    floating_ip_id=fip1.networking_floatingip_v2_id,\n    cidr=\"192.168.0.0/24\",\n    source_type=0)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var networkId = config.RequireObject<dynamic>(\"networkId\");\n    var vpcId = config.RequireObject<dynamic>(\"vpcId\");\n    var fip1 = new Opentelekomcloud.NetworkingFloatingipV2(\"fip_1\");\n\n    var nat1 = new Opentelekomcloud.NatGatewayV2(\"nat_1\", new()\n    {\n        Name = \"nat_1\",\n        Description = \"test for terraform\",\n        Spec = \"1\",\n        InternalNetworkId = networkId,\n        RouterId = vpcId,\n    });\n\n    var snat1 = new Opentelekomcloud.NatSnatRuleV2(\"snat_1\", new()\n    {\n        NatGatewayId = nat1.NatGatewayV2Id,\n        FloatingIpId = fip1.NetworkingFloatingipV2Id,\n        Cidr = \"192.168.0.0/24\",\n        SourceType = 0,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tnetworkId := cfg.RequireObject(\"networkId\")\n\t\tvpcId := cfg.RequireObject(\"vpcId\")\n\t\tfip1, err := opentelekomcloud.NewNetworkingFloatingipV2(ctx, \"fip_1\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnat1, err := opentelekomcloud.NewNatGatewayV2(ctx, \"nat_1\", &opentelekomcloud.NatGatewayV2Args{\n\t\t\tName:              pulumi.String(\"nat_1\"),\n\t\t\tDescription:       pulumi.String(\"test for terraform\"),\n\t\t\tSpec:              pulumi.String(\"1\"),\n\t\t\tInternalNetworkId: pulumi.Any(networkId),\n\t\t\tRouterId:          pulumi.Any(vpcId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewNatSnatRuleV2(ctx, \"snat_1\", &opentelekomcloud.NatSnatRuleV2Args{\n\t\t\tNatGatewayId: nat1.NatGatewayV2Id,\n\t\t\tFloatingIpId: fip1.NetworkingFloatingipV2Id,\n\t\t\tCidr:         pulumi.String(\"192.168.0.0/24\"),\n\t\t\tSourceType:   pulumi.Float64(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.opentelekomcloud.NetworkingFloatingipV2;\nimport com.pulumi.opentelekomcloud.NatGatewayV2;\nimport com.pulumi.opentelekomcloud.NatGatewayV2Args;\nimport com.pulumi.opentelekomcloud.NatSnatRuleV2;\nimport com.pulumi.opentelekomcloud.NatSnatRuleV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var networkId = config.get(\"networkId\");\n        final var vpcId = config.get(\"vpcId\");\n        var fip1 = new NetworkingFloatingipV2(\"fip1\");\n\n        var nat1 = new NatGatewayV2(\"nat1\", NatGatewayV2Args.builder()\n            .name(\"nat_1\")\n            .description(\"test for terraform\")\n            .spec(\"1\")\n            .internalNetworkId(networkId)\n            .routerId(vpcId)\n            .build());\n\n        var snat1 = new NatSnatRuleV2(\"snat1\", NatSnatRuleV2Args.builder()\n            .natGatewayId(nat1.natGatewayV2Id())\n            .floatingIpId(fip1.networkingFloatingipV2Id())\n            .cidr(\"192.168.0.0/24\")\n            .sourceType(0.0)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  networkId:\n    type: dynamic\n  vpcId:\n    type: dynamic\nresources:\n  fip1:\n    type: opentelekomcloud:NetworkingFloatingipV2\n    name: fip_1\n  nat1:\n    type: opentelekomcloud:NatGatewayV2\n    name: nat_1\n    properties:\n      name: nat_1\n      description: test for terraform\n      spec: '1'\n      internalNetworkId: ${networkId}\n      routerId: ${vpcId}\n  snat1:\n    type: opentelekomcloud:NatSnatRuleV2\n    name: snat_1\n    properties:\n      natGatewayId: ${nat1.natGatewayV2Id}\n      floatingIpId: ${fip1.networkingFloatingipV2Id}\n      cidr: 192.168.0.0/24\n      sourceType: 0\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nSNAT can be imported using the following format:\n\n```sh\n$ pulumi import opentelekomcloud:index/natSnatRuleV2:NatSnatRuleV2 snat_1 f4f783a7-b908-4215-b018-724960e5df4b\n```\n\n","inputProperties":{"cidr":{"description":"Specifies CIDR, which can be in the format of a network segment or\na host IP address. This parameter and <span pulumi-lang-nodejs=\"`networkId`\" pulumi-lang-dotnet=\"`NetworkId`\" pulumi-lang-go=\"`networkId`\" pulumi-lang-python=\"`network_id`\" pulumi-lang-yaml=\"`networkId`\" pulumi-lang-java=\"`networkId`\">`network_id`</span> are alternative. If the value of\n<span pulumi-lang-nodejs=\"`sourceType`\" pulumi-lang-dotnet=\"`SourceType`\" pulumi-lang-go=\"`sourceType`\" pulumi-lang-python=\"`source_type`\" pulumi-lang-yaml=\"`sourceType`\" pulumi-lang-java=\"`sourceType`\">`source_type`</span> is <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>, the CIDR block must be a subset of the VPC subnet CIDR block. If\nthe value of <span pulumi-lang-nodejs=\"`sourceType`\" pulumi-lang-dotnet=\"`SourceType`\" pulumi-lang-go=\"`sourceType`\" pulumi-lang-python=\"`source_type`\" pulumi-lang-yaml=\"`sourceType`\" pulumi-lang-java=\"`sourceType`\">`source_type`</span> is <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>, the CIDR block must be a CIDR block of Direct Connect\nand cannot conflict with the VPC CIDR blocks. Changing this creates a new snat rule.\n","type":"string"},"description":{"description":"Provides supplementary information about the SNAT rule.\nChanging this creates a new snat rule.\n","type":"string"},"floatingIpId":{"description":"ID of the floating ip this snat rule connects to.\nChanging this creates a new snat rule.\n","type":"string"},"natGatewayId":{"description":"ID of the nat gateway this snat rule belongs to.\nChanging this creates a new snat rule.\n","type":"string"},"natSnatRuleV2Id":{"type":"string"},"networkId":{"description":"ID of the network this snat rule connects to. This parameter\nand <span pulumi-lang-nodejs=\"`cidr`\" pulumi-lang-dotnet=\"`Cidr`\" pulumi-lang-go=\"`cidr`\" pulumi-lang-python=\"`cidr`\" pulumi-lang-yaml=\"`cidr`\" pulumi-lang-java=\"`cidr`\">`cidr`</span> are alternative. Changing this creates a new snat rule.\n","type":"string"},"region":{"type":"string"},"sourceType":{"description":"<span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>: Either <span pulumi-lang-nodejs=\"`networkId`\" pulumi-lang-dotnet=\"`NetworkId`\" pulumi-lang-go=\"`networkId`\" pulumi-lang-python=\"`network_id`\" pulumi-lang-yaml=\"`networkId`\" pulumi-lang-java=\"`networkId`\">`network_id`</span> or cidr can be specified in a VPC. <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>:\nOnly <span pulumi-lang-nodejs=\"`cidr`\" pulumi-lang-dotnet=\"`Cidr`\" pulumi-lang-go=\"`cidr`\" pulumi-lang-python=\"`cidr`\" pulumi-lang-yaml=\"`cidr`\" pulumi-lang-java=\"`cidr`\">`cidr`</span> can be specified over a dedicated network. Changing this creates a new snat rule.\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNatSnatRuleV2Timeouts:NatSnatRuleV2Timeouts"}},"properties":{"cidr":{"description":"Specifies CIDR, which can be in the format of a network segment or\na host IP address. This parameter and <span pulumi-lang-nodejs=\"`networkId`\" pulumi-lang-dotnet=\"`NetworkId`\" pulumi-lang-go=\"`networkId`\" pulumi-lang-python=\"`network_id`\" pulumi-lang-yaml=\"`networkId`\" pulumi-lang-java=\"`networkId`\">`network_id`</span> are alternative. If the value of\n<span pulumi-lang-nodejs=\"`sourceType`\" pulumi-lang-dotnet=\"`SourceType`\" pulumi-lang-go=\"`sourceType`\" pulumi-lang-python=\"`source_type`\" pulumi-lang-yaml=\"`sourceType`\" pulumi-lang-java=\"`sourceType`\">`source_type`</span> is <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>, the CIDR block must be a subset of the VPC subnet CIDR block. If\nthe value of <span pulumi-lang-nodejs=\"`sourceType`\" pulumi-lang-dotnet=\"`SourceType`\" pulumi-lang-go=\"`sourceType`\" pulumi-lang-python=\"`source_type`\" pulumi-lang-yaml=\"`sourceType`\" pulumi-lang-java=\"`sourceType`\">`source_type`</span> is <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>, the CIDR block must be a CIDR block of Direct Connect\nand cannot conflict with the VPC CIDR blocks. Changing this creates a new snat rule.\n","type":"string"},"description":{"description":"Provides supplementary information about the SNAT rule.\nChanging this creates a new snat rule.\n","type":"string"},"floatingIpId":{"description":"ID of the floating ip this snat rule connects to.\nChanging this creates a new snat rule.\n","type":"string"},"natGatewayId":{"description":"ID of the nat gateway this snat rule belongs to.\nChanging this creates a new snat rule.\n","type":"string"},"natSnatRuleV2Id":{"type":"string"},"networkId":{"description":"ID of the network this snat rule connects to. This parameter\nand <span pulumi-lang-nodejs=\"`cidr`\" pulumi-lang-dotnet=\"`Cidr`\" pulumi-lang-go=\"`cidr`\" pulumi-lang-python=\"`cidr`\" pulumi-lang-yaml=\"`cidr`\" pulumi-lang-java=\"`cidr`\">`cidr`</span> are alternative. Changing this creates a new snat rule.\n","type":"string"},"region":{"type":"string"},"sourceType":{"description":"<span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>: Either <span pulumi-lang-nodejs=\"`networkId`\" pulumi-lang-dotnet=\"`NetworkId`\" pulumi-lang-go=\"`networkId`\" pulumi-lang-python=\"`network_id`\" pulumi-lang-yaml=\"`networkId`\" pulumi-lang-java=\"`networkId`\">`network_id`</span> or cidr can be specified in a VPC. <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>:\nOnly <span pulumi-lang-nodejs=\"`cidr`\" pulumi-lang-dotnet=\"`Cidr`\" pulumi-lang-go=\"`cidr`\" pulumi-lang-python=\"`cidr`\" pulumi-lang-yaml=\"`cidr`\" pulumi-lang-java=\"`cidr`\">`cidr`</span> can be specified over a dedicated network. Changing this creates a new snat rule.\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNatSnatRuleV2Timeouts:NatSnatRuleV2Timeouts"}},"required":["floatingIpId","natGatewayId","natSnatRuleV2Id","region"],"requiredInputs":["floatingIpId","natGatewayId"],"stateInputs":{"description":"Input properties used for looking up and filtering NatSnatRuleV2 resources.\n","properties":{"cidr":{"description":"Specifies CIDR, which can be in the format of a network segment or\na host IP address. This parameter and <span pulumi-lang-nodejs=\"`networkId`\" pulumi-lang-dotnet=\"`NetworkId`\" pulumi-lang-go=\"`networkId`\" pulumi-lang-python=\"`network_id`\" pulumi-lang-yaml=\"`networkId`\" pulumi-lang-java=\"`networkId`\">`network_id`</span> are alternative. If the value of\n<span pulumi-lang-nodejs=\"`sourceType`\" pulumi-lang-dotnet=\"`SourceType`\" pulumi-lang-go=\"`sourceType`\" pulumi-lang-python=\"`source_type`\" pulumi-lang-yaml=\"`sourceType`\" pulumi-lang-java=\"`sourceType`\">`source_type`</span> is <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>, the CIDR block must be a subset of the VPC subnet CIDR block. If\nthe value of <span pulumi-lang-nodejs=\"`sourceType`\" pulumi-lang-dotnet=\"`SourceType`\" pulumi-lang-go=\"`sourceType`\" pulumi-lang-python=\"`source_type`\" pulumi-lang-yaml=\"`sourceType`\" pulumi-lang-java=\"`sourceType`\">`source_type`</span> is <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>, the CIDR block must be a CIDR block of Direct Connect\nand cannot conflict with the VPC CIDR blocks. Changing this creates a new snat rule.\n","type":"string"},"description":{"description":"Provides supplementary information about the SNAT rule.\nChanging this creates a new snat rule.\n","type":"string"},"floatingIpId":{"description":"ID of the floating ip this snat rule connects to.\nChanging this creates a new snat rule.\n","type":"string"},"natGatewayId":{"description":"ID of the nat gateway this snat rule belongs to.\nChanging this creates a new snat rule.\n","type":"string"},"natSnatRuleV2Id":{"type":"string"},"networkId":{"description":"ID of the network this snat rule connects to. This parameter\nand <span pulumi-lang-nodejs=\"`cidr`\" pulumi-lang-dotnet=\"`Cidr`\" pulumi-lang-go=\"`cidr`\" pulumi-lang-python=\"`cidr`\" pulumi-lang-yaml=\"`cidr`\" pulumi-lang-java=\"`cidr`\">`cidr`</span> are alternative. Changing this creates a new snat rule.\n","type":"string"},"region":{"type":"string"},"sourceType":{"description":"<span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>: Either <span pulumi-lang-nodejs=\"`networkId`\" pulumi-lang-dotnet=\"`NetworkId`\" pulumi-lang-go=\"`networkId`\" pulumi-lang-python=\"`network_id`\" pulumi-lang-yaml=\"`networkId`\" pulumi-lang-java=\"`networkId`\">`network_id`</span> or cidr can be specified in a VPC. <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span>:\nOnly <span pulumi-lang-nodejs=\"`cidr`\" pulumi-lang-dotnet=\"`Cidr`\" pulumi-lang-go=\"`cidr`\" pulumi-lang-python=\"`cidr`\" pulumi-lang-yaml=\"`cidr`\" pulumi-lang-java=\"`cidr`\">`cidr`</span> can be specified over a dedicated network. Changing this creates a new snat rule.\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNatSnatRuleV2Timeouts:NatSnatRuleV2Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/networkingFloatingipAssociateV2:NetworkingFloatingipAssociateV2":{"description":"Up-to-date reference of API arguments for VPC floating ip association you can get at\n[documentation portal](https://docs.otc.t-systems.com/virtual-private-cloud/api-ref/native_openstack_neutron_apis_v2.0/floating_ip_address)\n\nAssociates a floating IP to a port. This is useful for situations\nwhere you have a pre-allocated floating IP or are unable to use the\n`resource/opentelekomcloud_networking_floatingip_v2` to create a floating IP.\n\n## Example Usage\n\n### Basic FloatingIP associate\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst port1 = new opentelekomcloud.NetworkingPortV2(\"port_1\", {networkId: \"a5bbd213-e1d3-49b6-aed1-9df60ea94b9a\"});\nconst fip1 = new opentelekomcloud.NetworkingFloatingipAssociateV2(\"fip_1\", {\n    floatingIp: \"1.2.3.4\",\n    portId: port1.networkingPortV2Id,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nport1 = opentelekomcloud.NetworkingPortV2(\"port_1\", network_id=\"a5bbd213-e1d3-49b6-aed1-9df60ea94b9a\")\nfip1 = opentelekomcloud.NetworkingFloatingipAssociateV2(\"fip_1\",\n    floating_ip=\"1.2.3.4\",\n    port_id=port1.networking_port_v2_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var port1 = new Opentelekomcloud.NetworkingPortV2(\"port_1\", new()\n    {\n        NetworkId = \"a5bbd213-e1d3-49b6-aed1-9df60ea94b9a\",\n    });\n\n    var fip1 = new Opentelekomcloud.NetworkingFloatingipAssociateV2(\"fip_1\", new()\n    {\n        FloatingIp = \"1.2.3.4\",\n        PortId = port1.NetworkingPortV2Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tport1, err := opentelekomcloud.NewNetworkingPortV2(ctx, \"port_1\", &opentelekomcloud.NetworkingPortV2Args{\n\t\t\tNetworkId: pulumi.String(\"a5bbd213-e1d3-49b6-aed1-9df60ea94b9a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewNetworkingFloatingipAssociateV2(ctx, \"fip_1\", &opentelekomcloud.NetworkingFloatingipAssociateV2Args{\n\t\t\tFloatingIp: pulumi.String(\"1.2.3.4\"),\n\t\t\tPortId:     port1.NetworkingPortV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.NetworkingPortV2;\nimport com.pulumi.opentelekomcloud.NetworkingPortV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingFloatingipAssociateV2;\nimport com.pulumi.opentelekomcloud.NetworkingFloatingipAssociateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var port1 = new NetworkingPortV2(\"port1\", NetworkingPortV2Args.builder()\n            .networkId(\"a5bbd213-e1d3-49b6-aed1-9df60ea94b9a\")\n            .build());\n\n        var fip1 = new NetworkingFloatingipAssociateV2(\"fip1\", NetworkingFloatingipAssociateV2Args.builder()\n            .floatingIp(\"1.2.3.4\")\n            .portId(port1.networkingPortV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  port1:\n    type: opentelekomcloud:NetworkingPortV2\n    name: port_1\n    properties:\n      networkId: a5bbd213-e1d3-49b6-aed1-9df60ea94b9a\n  fip1:\n    type: opentelekomcloud:NetworkingFloatingipAssociateV2\n    name: fip_1\n    properties:\n      floatingIp: 1.2.3.4\n      portId: ${port1.networkingPortV2Id}\n```\n<!--End PulumiCodeChooser -->\n\n### Associate an instance with <span pulumi-lang-nodejs=\"`portId`\" pulumi-lang-dotnet=\"`PortId`\" pulumi-lang-go=\"`portId`\" pulumi-lang-python=\"`port_id`\" pulumi-lang-yaml=\"`portId`\" pulumi-lang-java=\"`portId`\">`port_id`</span>\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst keypair = config.requireObject<any>(\"keypair\");\nconst imageId = config.requireObject<any>(\"imageId\");\nconst networkName = config.requireObject<any>(\"networkName\");\nconst _this = new opentelekomcloud.NetworkingFloatingipV2(\"this\", {pool: \"admin_external_net\"});\nconst thisComputeInstanceV2 = new opentelekomcloud.ComputeInstanceV2(\"this\", {\n    name: \"example-instance\",\n    imageId: imageId,\n    flavorId: \"s2.large.4\",\n    keyPair: keypair,\n    securityGroups: [\"default\"],\n    networks: [{\n        name: networkName,\n    }],\n});\nconst thisNetworkingFloatingipAssociateV2 = new opentelekomcloud.NetworkingFloatingipAssociateV2(\"this\", {\n    floatingIp: _this.address,\n    portId: thisComputeInstanceV2.networks.apply(networks => networks?.[0]?.port),\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nkeypair = config.require_object(\"keypair\")\nimage_id = config.require_object(\"imageId\")\nnetwork_name = config.require_object(\"networkName\")\nthis = opentelekomcloud.NetworkingFloatingipV2(\"this\", pool=\"admin_external_net\")\nthis_compute_instance_v2 = opentelekomcloud.ComputeInstanceV2(\"this\",\n    name=\"example-instance\",\n    image_id=image_id,\n    flavor_id=\"s2.large.4\",\n    key_pair=keypair,\n    security_groups=[\"default\"],\n    networks=[{\n        \"name\": network_name,\n    }])\nthis_networking_floatingip_associate_v2 = opentelekomcloud.NetworkingFloatingipAssociateV2(\"this\",\n    floating_ip=this.address,\n    port_id=this_compute_instance_v2.networks[0].port)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var keypair = config.RequireObject<dynamic>(\"keypair\");\n    var imageId = config.RequireObject<dynamic>(\"imageId\");\n    var networkName = config.RequireObject<dynamic>(\"networkName\");\n    var @this = new Opentelekomcloud.NetworkingFloatingipV2(\"this\", new()\n    {\n        Pool = \"admin_external_net\",\n    });\n\n    var thisComputeInstanceV2 = new Opentelekomcloud.ComputeInstanceV2(\"this\", new()\n    {\n        Name = \"example-instance\",\n        ImageId = imageId,\n        FlavorId = \"s2.large.4\",\n        KeyPair = keypair,\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n        Networks = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Name = networkName,\n            },\n        },\n    });\n\n    var thisNetworkingFloatingipAssociateV2 = new Opentelekomcloud.NetworkingFloatingipAssociateV2(\"this\", new()\n    {\n        FloatingIp = @this.Address,\n        PortId = thisComputeInstanceV2.Networks.Apply(networks => networks[0]?.Port),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tkeypair := cfg.RequireObject(\"keypair\")\n\t\timageId := cfg.RequireObject(\"imageId\")\n\t\tnetworkName := cfg.RequireObject(\"networkName\")\n\t\tthis, err := opentelekomcloud.NewNetworkingFloatingipV2(ctx, \"this\", &opentelekomcloud.NetworkingFloatingipV2Args{\n\t\t\tPool: pulumi.String(\"admin_external_net\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthisComputeInstanceV2, err := opentelekomcloud.NewComputeInstanceV2(ctx, \"this\", &opentelekomcloud.ComputeInstanceV2Args{\n\t\t\tName:     pulumi.String(\"example-instance\"),\n\t\t\tImageId:  pulumi.Any(imageId),\n\t\t\tFlavorId: pulumi.String(\"s2.large.4\"),\n\t\t\tKeyPair:  pulumi.Any(keypair),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tNetworks: opentelekomcloud.ComputeInstanceV2NetworkArray{\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tName: pulumi.Any(networkName),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewNetworkingFloatingipAssociateV2(ctx, \"this\", &opentelekomcloud.NetworkingFloatingipAssociateV2Args{\n\t\t\tFloatingIp: this.Address,\n\t\t\tPortId: pulumi.String(thisComputeInstanceV2.Networks.ApplyT(func(networks []opentelekomcloud.ComputeInstanceV2Network) (*string, error) {\n\t\t\t\treturn &networks[0].Port, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.NetworkingFloatingipV2;\nimport com.pulumi.opentelekomcloud.NetworkingFloatingipV2Args;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2Args;\nimport com.pulumi.opentelekomcloud.inputs.ComputeInstanceV2NetworkArgs;\nimport com.pulumi.opentelekomcloud.NetworkingFloatingipAssociateV2;\nimport com.pulumi.opentelekomcloud.NetworkingFloatingipAssociateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var keypair = config.get(\"keypair\");\n        final var imageId = config.get(\"imageId\");\n        final var networkName = config.get(\"networkName\");\n        var this_ = new NetworkingFloatingipV2(\"this\", NetworkingFloatingipV2Args.builder()\n            .pool(\"admin_external_net\")\n            .build());\n\n        var thisComputeInstanceV2 = new ComputeInstanceV2(\"thisComputeInstanceV2\", ComputeInstanceV2Args.builder()\n            .name(\"example-instance\")\n            .imageId(imageId)\n            .flavorId(\"s2.large.4\")\n            .keyPair(keypair)\n            .securityGroups(\"default\")\n            .networks(ComputeInstanceV2NetworkArgs.builder()\n                .name(networkName)\n                .build())\n            .build());\n\n        var thisNetworkingFloatingipAssociateV2 = new NetworkingFloatingipAssociateV2(\"thisNetworkingFloatingipAssociateV2\", NetworkingFloatingipAssociateV2Args.builder()\n            .floatingIp(this_.address())\n            .portId(thisComputeInstanceV2.networks().applyValue(_networks -> _networks[0].port()))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  keypair:\n    type: dynamic\n  imageId:\n    type: dynamic\n  networkName:\n    type: dynamic\nresources:\n  this:\n    type: opentelekomcloud:NetworkingFloatingipV2\n    properties:\n      pool: admin_external_net\n  thisComputeInstanceV2:\n    type: opentelekomcloud:ComputeInstanceV2\n    name: this\n    properties:\n      name: example-instance\n      imageId: ${imageId}\n      flavorId: s2.large.4\n      keyPair: ${keypair}\n      securityGroups:\n        - default\n      networks:\n        - name: ${networkName}\n  thisNetworkingFloatingipAssociateV2:\n    type: opentelekomcloud:NetworkingFloatingipAssociateV2\n    name: this\n    properties:\n      floatingIp: ${this.address}\n      portId: ${thisComputeInstanceV2.networks[0].port}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nFloating IP associations can be imported using the `id` of the floating IP, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/networkingFloatingipAssociateV2:NetworkingFloatingipAssociateV2 fip 2c7f39f3-702b-48d1-940c-b50384177ee1\n```\n\n","inputProperties":{"floatingIp":{"description":"IP Address of an existing floating IP.\n","type":"string"},"networkingFloatingipAssociateV2Id":{"type":"string"},"portId":{"description":"ID of an existing port with at least one IP address to\nassociate with this floating IP.\n","type":"string"},"region":{"type":"string"}},"properties":{"floatingIp":{"description":"IP Address of an existing floating IP.\n","type":"string"},"networkingFloatingipAssociateV2Id":{"type":"string"},"portId":{"description":"ID of an existing port with at least one IP address to\nassociate with this floating IP.\n","type":"string"},"region":{"type":"string"}},"required":["floatingIp","networkingFloatingipAssociateV2Id","portId","region"],"requiredInputs":["floatingIp","portId"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkingFloatingipAssociateV2 resources.\n","properties":{"floatingIp":{"description":"IP Address of an existing floating IP.\n","type":"string"},"networkingFloatingipAssociateV2Id":{"type":"string"},"portId":{"description":"ID of an existing port with at least one IP address to\nassociate with this floating IP.\n","type":"string"},"region":{"type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/networkingFloatingipV2:NetworkingFloatingipV2":{"description":"Up-to-date reference of API arguments for VPC floating ip you can get at\n[documentation portal](https://docs.otc.t-systems.com/virtual-private-cloud/api-ref/native_openstack_neutron_apis_v2.0/floating_ip_address)\n\nManages a V2 floating IP resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst floatip1 = new opentelekomcloud.NetworkingFloatingipV2(\"floatip_1\", {});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nfloatip1 = opentelekomcloud.NetworkingFloatingipV2(\"floatip_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var floatip1 = new Opentelekomcloud.NetworkingFloatingipV2(\"floatip_1\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewNetworkingFloatingipV2(ctx, \"floatip_1\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.NetworkingFloatingipV2;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var floatip1 = new NetworkingFloatingipV2(\"floatip1\");\n\n    }\n}\n```\n```yaml\nresources:\n  floatip1:\n    type: opentelekomcloud:NetworkingFloatingipV2\n    name: floatip_1\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nFloating IPs can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/networkingFloatingipV2:NetworkingFloatingipV2 floatip_1 2c7f39f3-702b-48d1-940c-b50384177ee1\n```\n\n","inputProperties":{"fixedIp":{"description":"Fixed IP of the port to associate with this floating IP. Required if\nthe port has multiple fixed IPs.\n","type":"string"},"networkingFloatingipV2Id":{"description":"The floating IP id.\n","type":"string"},"pool":{"description":"The name of the pool from which to obtain the floating\nIP. Default value is <span pulumi-lang-nodejs=\"`adminExternalNet`\" pulumi-lang-dotnet=\"`AdminExternalNet`\" pulumi-lang-go=\"`adminExternalNet`\" pulumi-lang-python=\"`admin_external_net`\" pulumi-lang-yaml=\"`adminExternalNet`\" pulumi-lang-java=\"`adminExternalNet`\">`admin_external_net`</span>. Changing this creates a new floating IP.\n","type":"string"},"portId":{"description":"ID of an existing port with at least one IP address to\nassociate with this floating IP.\n","type":"string"},"region":{"type":"string"},"tenantId":{"description":"The target tenant ID in which to allocate the floating\nIP, if you specify this together with a <span pulumi-lang-nodejs=\"`portId`\" pulumi-lang-dotnet=\"`PortId`\" pulumi-lang-go=\"`portId`\" pulumi-lang-python=\"`port_id`\" pulumi-lang-yaml=\"`portId`\" pulumi-lang-java=\"`portId`\">`port_id`</span>, make sure the target port\nbelongs to the same tenant. Changing this creates a new floating IP (which\nmay or may not have a different address).\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingFloatingipV2Timeouts:NetworkingFloatingipV2Timeouts"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options.\n","type":"object"}},"properties":{"address":{"description":"The actual floating IP address itself.\n","type":"string"},"fixedIp":{"description":"Fixed IP of the port to associate with this floating IP. Required if\nthe port has multiple fixed IPs.\n","type":"string"},"networkingFloatingipV2Id":{"description":"The floating IP id.\n","type":"string"},"pool":{"description":"The name of the pool from which to obtain the floating\nIP. Default value is <span pulumi-lang-nodejs=\"`adminExternalNet`\" pulumi-lang-dotnet=\"`AdminExternalNet`\" pulumi-lang-go=\"`adminExternalNet`\" pulumi-lang-python=\"`admin_external_net`\" pulumi-lang-yaml=\"`adminExternalNet`\" pulumi-lang-java=\"`adminExternalNet`\">`admin_external_net`</span>. Changing this creates a new floating IP.\n","type":"string"},"portId":{"description":"ID of an existing port with at least one IP address to\nassociate with this floating IP.\n","type":"string"},"region":{"type":"string"},"tenantId":{"description":"The target tenant ID in which to allocate the floating\nIP, if you specify this together with a <span pulumi-lang-nodejs=\"`portId`\" pulumi-lang-dotnet=\"`PortId`\" pulumi-lang-go=\"`portId`\" pulumi-lang-python=\"`port_id`\" pulumi-lang-yaml=\"`portId`\" pulumi-lang-java=\"`portId`\">`port_id`</span>, make sure the target port\nbelongs to the same tenant. Changing this creates a new floating IP (which\nmay or may not have a different address).\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingFloatingipV2Timeouts:NetworkingFloatingipV2Timeouts"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options.\n","type":"object"}},"required":["address","fixedIp","networkingFloatingipV2Id","portId","region","tenantId"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkingFloatingipV2 resources.\n","properties":{"address":{"description":"The actual floating IP address itself.\n","type":"string"},"fixedIp":{"description":"Fixed IP of the port to associate with this floating IP. Required if\nthe port has multiple fixed IPs.\n","type":"string"},"networkingFloatingipV2Id":{"description":"The floating IP id.\n","type":"string"},"pool":{"description":"The name of the pool from which to obtain the floating\nIP. Default value is <span pulumi-lang-nodejs=\"`adminExternalNet`\" pulumi-lang-dotnet=\"`AdminExternalNet`\" pulumi-lang-go=\"`adminExternalNet`\" pulumi-lang-python=\"`admin_external_net`\" pulumi-lang-yaml=\"`adminExternalNet`\" pulumi-lang-java=\"`adminExternalNet`\">`admin_external_net`</span>. Changing this creates a new floating IP.\n","type":"string"},"portId":{"description":"ID of an existing port with at least one IP address to\nassociate with this floating IP.\n","type":"string"},"region":{"type":"string"},"tenantId":{"description":"The target tenant ID in which to allocate the floating\nIP, if you specify this together with a <span pulumi-lang-nodejs=\"`portId`\" pulumi-lang-dotnet=\"`PortId`\" pulumi-lang-go=\"`portId`\" pulumi-lang-python=\"`port_id`\" pulumi-lang-yaml=\"`portId`\" pulumi-lang-java=\"`portId`\">`port_id`</span>, make sure the target port\nbelongs to the same tenant. Changing this creates a new floating IP (which\nmay or may not have a different address).\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingFloatingipV2Timeouts:NetworkingFloatingipV2Timeouts"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options.\n","type":"object"}},"type":"object"},"type":"object"},"opentelekomcloud:index/networkingNetworkV2:NetworkingNetworkV2":{"description":"Up-to-date reference of API arguments for VPC network you can get at\n[documentation portal](https://docs.otc.t-systems.com/virtual-private-cloud/api-ref/native_openstack_neutron_apis_v2.0/network)\n\nManages a V2 Neutron network resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst network1 = new opentelekomcloud.NetworkingNetworkV2(\"network_1\", {\n    name: \"network_1\",\n    adminStateUp: \"true\",\n});\nconst subnet1 = new opentelekomcloud.NetworkingSubnetV2(\"subnet_1\", {\n    name: \"subnet_1\",\n    networkId: network1.networkingNetworkV2Id,\n    cidr: \"192.168.199.0/24\",\n    ipVersion: 4,\n});\nconst secgroup1 = new opentelekomcloud.ComputeSecgroupV2(\"secgroup_1\", {\n    name: \"secgroup_1\",\n    description: \"a security group\",\n    rules: [{\n        fromPort: 22,\n        toPort: 22,\n        ipProtocol: \"tcp\",\n        cidr: \"0.0.0.0/0\",\n    }],\n});\nconst port1 = new opentelekomcloud.NetworkingPortV2(\"port_1\", {\n    name: \"port_1\",\n    networkId: network1.networkingNetworkV2Id,\n    adminStateUp: true,\n    securityGroupIds: [secgroup1.computeSecgroupV2Id],\n    fixedIp: {\n        subnetId: subnet1.networkingSubnetV2Id,\n        ipAddress: \"192.168.199.10\",\n    },\n});\nconst instance1 = new opentelekomcloud.ComputeInstanceV2(\"instance_1\", {\n    name: \"instance_1\",\n    securityGroups: [secgroup1.name],\n    networks: [{\n        port: port1.networkingPortV2Id,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nnetwork1 = opentelekomcloud.NetworkingNetworkV2(\"network_1\",\n    name=\"network_1\",\n    admin_state_up=\"true\")\nsubnet1 = opentelekomcloud.NetworkingSubnetV2(\"subnet_1\",\n    name=\"subnet_1\",\n    network_id=network1.networking_network_v2_id,\n    cidr=\"192.168.199.0/24\",\n    ip_version=4)\nsecgroup1 = opentelekomcloud.ComputeSecgroupV2(\"secgroup_1\",\n    name=\"secgroup_1\",\n    description=\"a security group\",\n    rules=[{\n        \"from_port\": 22,\n        \"to_port\": 22,\n        \"ip_protocol\": \"tcp\",\n        \"cidr\": \"0.0.0.0/0\",\n    }])\nport1 = opentelekomcloud.NetworkingPortV2(\"port_1\",\n    name=\"port_1\",\n    network_id=network1.networking_network_v2_id,\n    admin_state_up=True,\n    security_group_ids=[secgroup1.compute_secgroup_v2_id],\n    fixed_ip={\n        \"subnet_id\": subnet1.networking_subnet_v2_id,\n        \"ip_address\": \"192.168.199.10\",\n    })\ninstance1 = opentelekomcloud.ComputeInstanceV2(\"instance_1\",\n    name=\"instance_1\",\n    security_groups=[secgroup1.name],\n    networks=[{\n        \"port\": port1.networking_port_v2_id,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var network1 = new Opentelekomcloud.NetworkingNetworkV2(\"network_1\", new()\n    {\n        Name = \"network_1\",\n        AdminStateUp = \"true\",\n    });\n\n    var subnet1 = new Opentelekomcloud.NetworkingSubnetV2(\"subnet_1\", new()\n    {\n        Name = \"subnet_1\",\n        NetworkId = network1.NetworkingNetworkV2Id,\n        Cidr = \"192.168.199.0/24\",\n        IpVersion = 4,\n    });\n\n    var secgroup1 = new Opentelekomcloud.ComputeSecgroupV2(\"secgroup_1\", new()\n    {\n        Name = \"secgroup_1\",\n        Description = \"a security group\",\n        Rules = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeSecgroupV2RuleArgs\n            {\n                FromPort = 22,\n                ToPort = 22,\n                IpProtocol = \"tcp\",\n                Cidr = \"0.0.0.0/0\",\n            },\n        },\n    });\n\n    var port1 = new Opentelekomcloud.NetworkingPortV2(\"port_1\", new()\n    {\n        Name = \"port_1\",\n        NetworkId = network1.NetworkingNetworkV2Id,\n        AdminStateUp = true,\n        SecurityGroupIds = new[]\n        {\n            secgroup1.ComputeSecgroupV2Id,\n        },\n        FixedIp = new Opentelekomcloud.Inputs.NetworkingPortV2FixedIpArgs\n        {\n            SubnetId = subnet1.NetworkingSubnetV2Id,\n            IpAddress = \"192.168.199.10\",\n        },\n    });\n\n    var instance1 = new Opentelekomcloud.ComputeInstanceV2(\"instance_1\", new()\n    {\n        Name = \"instance_1\",\n        SecurityGroups = new[]\n        {\n            secgroup1.Name,\n        },\n        Networks = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Port = port1.NetworkingPortV2Id,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := opentelekomcloud.NewNetworkingNetworkV2(ctx, \"network_1\", &opentelekomcloud.NetworkingNetworkV2Args{\n\t\t\tName:         pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.String(\"true\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := opentelekomcloud.NewNetworkingSubnetV2(ctx, \"subnet_1\", &opentelekomcloud.NetworkingSubnetV2Args{\n\t\t\tName:      pulumi.String(\"subnet_1\"),\n\t\t\tNetworkId: network1.NetworkingNetworkV2Id,\n\t\t\tCidr:      pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Float64(4),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecgroup1, err := opentelekomcloud.NewComputeSecgroupV2(ctx, \"secgroup_1\", &opentelekomcloud.ComputeSecgroupV2Args{\n\t\t\tName:        pulumi.String(\"secgroup_1\"),\n\t\t\tDescription: pulumi.String(\"a security group\"),\n\t\t\tRules: opentelekomcloud.ComputeSecgroupV2RuleArray{\n\t\t\t\t&opentelekomcloud.ComputeSecgroupV2RuleArgs{\n\t\t\t\t\tFromPort:   pulumi.Float64(22),\n\t\t\t\t\tToPort:     pulumi.Float64(22),\n\t\t\t\t\tIpProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tCidr:       pulumi.String(\"0.0.0.0/0\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tport1, err := opentelekomcloud.NewNetworkingPortV2(ctx, \"port_1\", &opentelekomcloud.NetworkingPortV2Args{\n\t\t\tName:         pulumi.String(\"port_1\"),\n\t\t\tNetworkId:    network1.NetworkingNetworkV2Id,\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tsecgroup1.ComputeSecgroupV2Id,\n\t\t\t},\n\t\t\tFixedIp: &opentelekomcloud.NetworkingPortV2FixedIpArgs{\n\t\t\t\tSubnetId:  subnet1.NetworkingSubnetV2Id,\n\t\t\t\tIpAddress: pulumi.String(\"192.168.199.10\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewComputeInstanceV2(ctx, \"instance_1\", &opentelekomcloud.ComputeInstanceV2Args{\n\t\t\tName: pulumi.String(\"instance_1\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tsecgroup1.Name,\n\t\t\t},\n\t\t\tNetworks: opentelekomcloud.ComputeInstanceV2NetworkArray{\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tPort: port1.NetworkingPortV2Id,\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.opentelekomcloud.NetworkingNetworkV2;\nimport com.pulumi.opentelekomcloud.NetworkingNetworkV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingSubnetV2;\nimport com.pulumi.opentelekomcloud.NetworkingSubnetV2Args;\nimport com.pulumi.opentelekomcloud.ComputeSecgroupV2;\nimport com.pulumi.opentelekomcloud.ComputeSecgroupV2Args;\nimport com.pulumi.opentelekomcloud.inputs.ComputeSecgroupV2RuleArgs;\nimport com.pulumi.opentelekomcloud.NetworkingPortV2;\nimport com.pulumi.opentelekomcloud.NetworkingPortV2Args;\nimport com.pulumi.opentelekomcloud.inputs.NetworkingPortV2FixedIpArgs;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2Args;\nimport com.pulumi.opentelekomcloud.inputs.ComputeInstanceV2NetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var network1 = new NetworkingNetworkV2(\"network1\", NetworkingNetworkV2Args.builder()\n            .name(\"network_1\")\n            .adminStateUp(\"true\")\n            .build());\n\n        var subnet1 = new NetworkingSubnetV2(\"subnet1\", NetworkingSubnetV2Args.builder()\n            .name(\"subnet_1\")\n            .networkId(network1.networkingNetworkV2Id())\n            .cidr(\"192.168.199.0/24\")\n            .ipVersion(4.0)\n            .build());\n\n        var secgroup1 = new ComputeSecgroupV2(\"secgroup1\", ComputeSecgroupV2Args.builder()\n            .name(\"secgroup_1\")\n            .description(\"a security group\")\n            .rules(ComputeSecgroupV2RuleArgs.builder()\n                .fromPort(22.0)\n                .toPort(22.0)\n                .ipProtocol(\"tcp\")\n                .cidr(\"0.0.0.0/0\")\n                .build())\n            .build());\n\n        var port1 = new NetworkingPortV2(\"port1\", NetworkingPortV2Args.builder()\n            .name(\"port_1\")\n            .networkId(network1.networkingNetworkV2Id())\n            .adminStateUp(true)\n            .securityGroupIds(secgroup1.computeSecgroupV2Id())\n            .fixedIp(NetworkingPortV2FixedIpArgs.builder()\n                .subnetId(subnet1.networkingSubnetV2Id())\n                .ipAddress(\"192.168.199.10\")\n                .build())\n            .build());\n\n        var instance1 = new ComputeInstanceV2(\"instance1\", ComputeInstanceV2Args.builder()\n            .name(\"instance_1\")\n            .securityGroups(secgroup1.name())\n            .networks(ComputeInstanceV2NetworkArgs.builder()\n                .port(port1.networkingPortV2Id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  network1:\n    type: opentelekomcloud:NetworkingNetworkV2\n    name: network_1\n    properties:\n      name: network_1\n      adminStateUp: 'true'\n  subnet1:\n    type: opentelekomcloud:NetworkingSubnetV2\n    name: subnet_1\n    properties:\n      name: subnet_1\n      networkId: ${network1.networkingNetworkV2Id}\n      cidr: 192.168.199.0/24\n      ipVersion: 4\n  secgroup1:\n    type: opentelekomcloud:ComputeSecgroupV2\n    name: secgroup_1\n    properties:\n      name: secgroup_1\n      description: a security group\n      rules:\n        - fromPort: 22\n          toPort: 22\n          ipProtocol: tcp\n          cidr: 0.0.0.0/0\n  port1:\n    type: opentelekomcloud:NetworkingPortV2\n    name: port_1\n    properties:\n      name: port_1\n      networkId: ${network1.networkingNetworkV2Id}\n      adminStateUp: 'true'\n      securityGroupIds:\n        - ${secgroup1.computeSecgroupV2Id}\n      fixedIp:\n        subnetId: ${subnet1.networkingSubnetV2Id}\n        ipAddress: 192.168.199.10\n  instance1:\n    type: opentelekomcloud:ComputeInstanceV2\n    name: instance_1\n    properties:\n      name: instance_1\n      securityGroups:\n        - ${secgroup1.name}\n      networks:\n        - port: ${port1.networkingPortV2Id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nNetworks can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/networkingNetworkV2:NetworkingNetworkV2 network_1 d90ce693-5ccf-4136-a0ed-152ce412b6b9\n```\n\n","inputProperties":{"adminStateUp":{"description":"The administrative state of the network.\nAcceptable values are \"true\" and \"false\". Changing this value updates the\nstate of the existing network.\n","type":"string"},"name":{"description":"The name of the network. Changing this updates the name of\nthe existing network.\n","type":"string"},"networkingNetworkV2Id":{"type":"string"},"region":{"type":"string"},"segments":{"description":"An array of one or more provider segment objects.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingNetworkV2Segment:NetworkingNetworkV2Segment"},"type":"array"},"shared":{"description":"Specifies whether the network resource can be accessed\nby any tenant or not. Changing this updates the sharing capabilities of the\nexisting network. Shared SNAT only available in eu-de region.\n","type":"string"},"tenantId":{"description":"The owner of the network. Required if admin wants to\ncreate a network for another tenant. Changing this creates a new network.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingNetworkV2Timeouts:NetworkingNetworkV2Timeouts"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options.\n","type":"object"}},"properties":{"adminStateUp":{"description":"The administrative state of the network.\nAcceptable values are \"true\" and \"false\". Changing this value updates the\nstate of the existing network.\n","type":"string"},"name":{"description":"The name of the network. Changing this updates the name of\nthe existing network.\n","type":"string"},"networkingNetworkV2Id":{"type":"string"},"region":{"type":"string"},"segments":{"description":"An array of one or more provider segment objects.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingNetworkV2Segment:NetworkingNetworkV2Segment"},"type":"array"},"shared":{"description":"Specifies whether the network resource can be accessed\nby any tenant or not. Changing this updates the sharing capabilities of the\nexisting network. Shared SNAT only available in eu-de region.\n","type":"string"},"tenantId":{"description":"The owner of the network. Required if admin wants to\ncreate a network for another tenant. Changing this creates a new network.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingNetworkV2Timeouts:NetworkingNetworkV2Timeouts"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options.\n","type":"object"}},"required":["adminStateUp","name","networkingNetworkV2Id","region","shared","tenantId"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkingNetworkV2 resources.\n","properties":{"adminStateUp":{"description":"The administrative state of the network.\nAcceptable values are \"true\" and \"false\". Changing this value updates the\nstate of the existing network.\n","type":"string"},"name":{"description":"The name of the network. Changing this updates the name of\nthe existing network.\n","type":"string"},"networkingNetworkV2Id":{"type":"string"},"region":{"type":"string"},"segments":{"description":"An array of one or more provider segment objects.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingNetworkV2Segment:NetworkingNetworkV2Segment"},"type":"array"},"shared":{"description":"Specifies whether the network resource can be accessed\nby any tenant or not. Changing this updates the sharing capabilities of the\nexisting network. Shared SNAT only available in eu-de region.\n","type":"string"},"tenantId":{"description":"The owner of the network. Required if admin wants to\ncreate a network for another tenant. Changing this creates a new network.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingNetworkV2Timeouts:NetworkingNetworkV2Timeouts"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options.\n","type":"object"}},"type":"object"},"type":"object"},"opentelekomcloud:index/networkingPortSecgroupAssociateV2:NetworkingPortSecgroupAssociateV2":{"description":"## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst systemPort = opentelekomcloud.getNetworkingPortV2({\n    fixedIp: \"10.0.0.10\",\n});\nconst secgroup = opentelekomcloud.getNetworkingSecgroupV2({\n    name: \"secgroup\",\n});\nconst port1 = new opentelekomcloud.NetworkingPortSecgroupAssociateV2(\"port_1\", {\n    portId: systemPort.then(systemPort => systemPort.id),\n    securityGroupIds: [secgroup.then(secgroup => secgroup.id)],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nsystem_port = opentelekomcloud.get_networking_port_v2(fixed_ip=\"10.0.0.10\")\nsecgroup = opentelekomcloud.get_networking_secgroup_v2(name=\"secgroup\")\nport1 = opentelekomcloud.NetworkingPortSecgroupAssociateV2(\"port_1\",\n    port_id=system_port.id,\n    security_group_ids=[secgroup.id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var systemPort = Opentelekomcloud.GetNetworkingPortV2.Invoke(new()\n    {\n        FixedIp = \"10.0.0.10\",\n    });\n\n    var secgroup = Opentelekomcloud.GetNetworkingSecgroupV2.Invoke(new()\n    {\n        Name = \"secgroup\",\n    });\n\n    var port1 = new Opentelekomcloud.NetworkingPortSecgroupAssociateV2(\"port_1\", new()\n    {\n        PortId = systemPort.Apply(getNetworkingPortV2Result => getNetworkingPortV2Result.Id),\n        SecurityGroupIds = new[]\n        {\n            secgroup.Apply(getNetworkingSecgroupV2Result => getNetworkingSecgroupV2Result.Id),\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsystemPort, err := opentelekomcloud.LookupNetworkingPortV2(ctx, &opentelekomcloud.LookupNetworkingPortV2Args{\n\t\t\tFixedIp: pulumi.StringRef(\"10.0.0.10\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecgroup, err := opentelekomcloud.LookupNetworkingSecgroupV2(ctx, &opentelekomcloud.LookupNetworkingSecgroupV2Args{\n\t\t\tName: pulumi.StringRef(\"secgroup\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewNetworkingPortSecgroupAssociateV2(ctx, \"port_1\", &opentelekomcloud.NetworkingPortSecgroupAssociateV2Args{\n\t\t\tPortId: pulumi.String(systemPort.Id),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(secgroup.Id),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetNetworkingPortV2Args;\nimport com.pulumi.opentelekomcloud.inputs.GetNetworkingSecgroupV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingPortSecgroupAssociateV2;\nimport com.pulumi.opentelekomcloud.NetworkingPortSecgroupAssociateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var systemPort = OpentelekomcloudFunctions.getNetworkingPortV2(GetNetworkingPortV2Args.builder()\n            .fixedIp(\"10.0.0.10\")\n            .build());\n\n        final var secgroup = OpentelekomcloudFunctions.getNetworkingSecgroupV2(GetNetworkingSecgroupV2Args.builder()\n            .name(\"secgroup\")\n            .build());\n\n        var port1 = new NetworkingPortSecgroupAssociateV2(\"port1\", NetworkingPortSecgroupAssociateV2Args.builder()\n            .portId(systemPort.id())\n            .securityGroupIds(secgroup.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  port1:\n    type: opentelekomcloud:NetworkingPortSecgroupAssociateV2\n    name: port_1\n    properties:\n      portId: ${systemPort.id}\n      securityGroupIds:\n        - ${secgroup.id}\nvariables:\n  systemPort:\n    fn::invoke:\n      function: opentelekomcloud:getNetworkingPortV2\n      arguments:\n        fixedIp: 10.0.0.10\n  secgroup:\n    fn::invoke:\n      function: opentelekomcloud:getNetworkingSecgroupV2\n      arguments:\n        name: secgroup\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nPort security group association can be imported using the `id` of the port, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/networkingPortSecgroupAssociateV2:NetworkingPortSecgroupAssociateV2 port_1 eae26a3e-1c33-4cc1-9c31-5ght78rdf12\n```\n\n  lifecycle {\n\n    ignore_changes = [\n\n      force,\n\n      security_group_ids,\n\n    ]\n\n  }\n\n","inputProperties":{"force":{"description":"Whether to replace or append the list of security\ngroups, specified in the <span pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\">`security_group_ids`</span>. Defaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"networkingPortSecgroupAssociateV2Id":{"type":"string"},"portId":{"description":"An UUID of the port to apply security groups to.\n","type":"string"},"region":{"description":"The region in which to obtain the V2 networking client.\nA networking client is needed to manage a port. If omitted, the\n<span pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\">`region`</span> argument of the provider is used. Changing this creates a new\nresource.\n","type":"string"},"securityGroupIds":{"description":"A list of security group IDs to apply to\nthe port. The security groups must be specified by ID and not name (as\nopposed to how they are configured with the Compute Instance).\n","items":{"type":"string"},"type":"array"}},"properties":{"allSecurityGroupIds":{"description":"The collection of Security Group IDs on the port\nwhich have been explicitly and implicitly added.\n","items":{"type":"string"},"type":"array"},"force":{"description":"Whether to replace or append the list of security\ngroups, specified in the <span pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\">`security_group_ids`</span>. Defaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"networkingPortSecgroupAssociateV2Id":{"type":"string"},"portId":{"description":"An UUID of the port to apply security groups to.\n","type":"string"},"region":{"description":"The region in which to obtain the V2 networking client.\nA networking client is needed to manage a port. If omitted, the\n<span pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\">`region`</span> argument of the provider is used. Changing this creates a new\nresource.\n","type":"string"},"securityGroupIds":{"description":"A list of security group IDs to apply to\nthe port. The security groups must be specified by ID and not name (as\nopposed to how they are configured with the Compute Instance).\n","items":{"type":"string"},"type":"array"}},"required":["allSecurityGroupIds","networkingPortSecgroupAssociateV2Id","portId","region","securityGroupIds"],"requiredInputs":["portId","securityGroupIds"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkingPortSecgroupAssociateV2 resources.\n","properties":{"allSecurityGroupIds":{"description":"The collection of Security Group IDs on the port\nwhich have been explicitly and implicitly added.\n","items":{"type":"string"},"type":"array"},"force":{"description":"Whether to replace or append the list of security\ngroups, specified in the <span pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\">`security_group_ids`</span>. Defaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"networkingPortSecgroupAssociateV2Id":{"type":"string"},"portId":{"description":"An UUID of the port to apply security groups to.\n","type":"string"},"region":{"description":"The region in which to obtain the V2 networking client.\nA networking client is needed to manage a port. If omitted, the\n<span pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\">`region`</span> argument of the provider is used. Changing this creates a new\nresource.\n","type":"string"},"securityGroupIds":{"description":"A list of security group IDs to apply to\nthe port. The security groups must be specified by ID and not name (as\nopposed to how they are configured with the Compute Instance).\n","items":{"type":"string"},"type":"array"}},"type":"object"},"type":"object"},"opentelekomcloud:index/networkingPortV2:NetworkingPortV2":{"description":"Up-to-date reference of API arguments for VPC port you can get at\n[documentation portal](https://docs.otc.t-systems.com/virtual-private-cloud/api-ref/native_openstack_neutron_apis_v2.0/port)\n\nManages a V2 port resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst network1 = new opentelekomcloud.NetworkingNetworkV2(\"network_1\", {\n    name: \"network_1\",\n    adminStateUp: \"true\",\n});\nconst subnet1 = new opentelekomcloud.NetworkingSubnetV2(\"subnet_1\", {\n    name: \"subnet_1\",\n    cidr: \"192.168.199.0/24\",\n    ipVersion: 4,\n    networkId: network1.networkingNetworkV2Id,\n});\nconst port1 = new opentelekomcloud.NetworkingPortV2(\"port_1\", {\n    name: \"port_1\",\n    adminStateUp: true,\n    networkId: network1.networkingNetworkV2Id,\n    fixedIp: {\n        subnetId: subnet1.networkingSubnetV2Id,\n        ipAddress: \"192.168.199.23\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nnetwork1 = opentelekomcloud.NetworkingNetworkV2(\"network_1\",\n    name=\"network_1\",\n    admin_state_up=\"true\")\nsubnet1 = opentelekomcloud.NetworkingSubnetV2(\"subnet_1\",\n    name=\"subnet_1\",\n    cidr=\"192.168.199.0/24\",\n    ip_version=4,\n    network_id=network1.networking_network_v2_id)\nport1 = opentelekomcloud.NetworkingPortV2(\"port_1\",\n    name=\"port_1\",\n    admin_state_up=True,\n    network_id=network1.networking_network_v2_id,\n    fixed_ip={\n        \"subnet_id\": subnet1.networking_subnet_v2_id,\n        \"ip_address\": \"192.168.199.23\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var network1 = new Opentelekomcloud.NetworkingNetworkV2(\"network_1\", new()\n    {\n        Name = \"network_1\",\n        AdminStateUp = \"true\",\n    });\n\n    var subnet1 = new Opentelekomcloud.NetworkingSubnetV2(\"subnet_1\", new()\n    {\n        Name = \"subnet_1\",\n        Cidr = \"192.168.199.0/24\",\n        IpVersion = 4,\n        NetworkId = network1.NetworkingNetworkV2Id,\n    });\n\n    var port1 = new Opentelekomcloud.NetworkingPortV2(\"port_1\", new()\n    {\n        Name = \"port_1\",\n        AdminStateUp = true,\n        NetworkId = network1.NetworkingNetworkV2Id,\n        FixedIp = new Opentelekomcloud.Inputs.NetworkingPortV2FixedIpArgs\n        {\n            SubnetId = subnet1.NetworkingSubnetV2Id,\n            IpAddress = \"192.168.199.23\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := opentelekomcloud.NewNetworkingNetworkV2(ctx, \"network_1\", &opentelekomcloud.NetworkingNetworkV2Args{\n\t\t\tName:         pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.String(\"true\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := opentelekomcloud.NewNetworkingSubnetV2(ctx, \"subnet_1\", &opentelekomcloud.NetworkingSubnetV2Args{\n\t\t\tName:      pulumi.String(\"subnet_1\"),\n\t\t\tCidr:      pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Float64(4),\n\t\t\tNetworkId: network1.NetworkingNetworkV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewNetworkingPortV2(ctx, \"port_1\", &opentelekomcloud.NetworkingPortV2Args{\n\t\t\tName:         pulumi.String(\"port_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t\tNetworkId:    network1.NetworkingNetworkV2Id,\n\t\t\tFixedIp: &opentelekomcloud.NetworkingPortV2FixedIpArgs{\n\t\t\t\tSubnetId:  subnet1.NetworkingSubnetV2Id,\n\t\t\t\tIpAddress: pulumi.String(\"192.168.199.23\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.NetworkingNetworkV2;\nimport com.pulumi.opentelekomcloud.NetworkingNetworkV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingSubnetV2;\nimport com.pulumi.opentelekomcloud.NetworkingSubnetV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingPortV2;\nimport com.pulumi.opentelekomcloud.NetworkingPortV2Args;\nimport com.pulumi.opentelekomcloud.inputs.NetworkingPortV2FixedIpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var network1 = new NetworkingNetworkV2(\"network1\", NetworkingNetworkV2Args.builder()\n            .name(\"network_1\")\n            .adminStateUp(\"true\")\n            .build());\n\n        var subnet1 = new NetworkingSubnetV2(\"subnet1\", NetworkingSubnetV2Args.builder()\n            .name(\"subnet_1\")\n            .cidr(\"192.168.199.0/24\")\n            .ipVersion(4.0)\n            .networkId(network1.networkingNetworkV2Id())\n            .build());\n\n        var port1 = new NetworkingPortV2(\"port1\", NetworkingPortV2Args.builder()\n            .name(\"port_1\")\n            .adminStateUp(true)\n            .networkId(network1.networkingNetworkV2Id())\n            .fixedIp(NetworkingPortV2FixedIpArgs.builder()\n                .subnetId(subnet1.networkingSubnetV2Id())\n                .ipAddress(\"192.168.199.23\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  port1:\n    type: opentelekomcloud:NetworkingPortV2\n    name: port_1\n    properties:\n      name: port_1\n      adminStateUp: 'true'\n      networkId: ${network1.networkingNetworkV2Id}\n      fixedIp:\n        subnetId: ${subnet1.networkingSubnetV2Id}\n        ipAddress: 192.168.199.23\n  network1:\n    type: opentelekomcloud:NetworkingNetworkV2\n    name: network_1\n    properties:\n      name: network_1\n      adminStateUp: 'true'\n  subnet1:\n    type: opentelekomcloud:NetworkingSubnetV2\n    name: subnet_1\n    properties:\n      name: subnet_1\n      cidr: 192.168.199.0/24\n      ipVersion: 4\n      networkId: ${network1.networkingNetworkV2Id}\n```\n<!--End PulumiCodeChooser -->\n\n## Notes\n\n> The arguments <span pulumi-lang-nodejs=\"`macAddress`\" pulumi-lang-dotnet=\"`MacAddress`\" pulumi-lang-go=\"`macAddress`\" pulumi-lang-python=\"`mac_address`\" pulumi-lang-yaml=\"`macAddress`\" pulumi-lang-java=\"`macAddress`\">`mac_address`</span> and <span pulumi-lang-nodejs=\"`tenantId`\" pulumi-lang-dotnet=\"`TenantId`\" pulumi-lang-go=\"`tenantId`\" pulumi-lang-python=\"`tenant_id`\" pulumi-lang-yaml=\"`tenantId`\" pulumi-lang-java=\"`tenantId`\">`tenant_id`</span> are no longer supported as input and are therefore removed from the argument reference.\n\n### Ports and Instances\n\nThere are some notes to consider when connecting Instances to networks using\nPorts. Please see the <span pulumi-lang-nodejs=\"`opentelekomcloud.ComputeInstanceV2`\" pulumi-lang-dotnet=\"`opentelekomcloud.ComputeInstanceV2`\" pulumi-lang-go=\"`ComputeInstanceV2`\" pulumi-lang-python=\"`ComputeInstanceV2`\" pulumi-lang-yaml=\"`opentelekomcloud.ComputeInstanceV2`\" pulumi-lang-java=\"`opentelekomcloud.ComputeInstanceV2`\">`opentelekomcloud.ComputeInstanceV2`</span> documentation for further\ndocumentation.\n\n## Import\n\nPorts can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/networkingPortV2:NetworkingPortV2 port_1 eae26a3e-1c33-4cc1-9c31-0cd729c438a1\n```\n\n","inputProperties":{"adminStateUp":{"description":"Administrative up/down status for the port\n(must be \"true\" or \"false\" if provided). Changing this updates the\n<span pulumi-lang-nodejs=\"`adminStateUp`\" pulumi-lang-dotnet=\"`AdminStateUp`\" pulumi-lang-go=\"`adminStateUp`\" pulumi-lang-python=\"`admin_state_up`\" pulumi-lang-yaml=\"`adminStateUp`\" pulumi-lang-java=\"`adminStateUp`\">`admin_state_up`</span> of an existing port.\n","type":"boolean"},"allowedAddressPairs":{"description":"An IP/MAC Address pair of additional IP\naddresses that can be active on this port. The structure is described below.\nThe <span pulumi-lang-nodejs=\"`allowedAddressPairs`\" pulumi-lang-dotnet=\"`AllowedAddressPairs`\" pulumi-lang-go=\"`allowedAddressPairs`\" pulumi-lang-python=\"`allowed_address_pairs`\" pulumi-lang-yaml=\"`allowedAddressPairs`\" pulumi-lang-java=\"`allowedAddressPairs`\">`allowed_address_pairs`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingPortV2AllowedAddressPair:NetworkingPortV2AllowedAddressPair"},"type":"array"},"deviceId":{"description":"The ID of the device attached to the port. Changing this\ncreates a new port.\n","type":"string"},"deviceOwner":{"description":"The device owner of the Port. Changing this creates\na new port.\n","type":"string"},"extraDhcpOptions":{"description":"Specifies the extended DHCP option. This is an extended attribute.\nThe <span pulumi-lang-nodejs=\"`extraDhcpOption`\" pulumi-lang-dotnet=\"`ExtraDhcpOption`\" pulumi-lang-go=\"`extraDhcpOption`\" pulumi-lang-python=\"`extra_dhcp_option`\" pulumi-lang-yaml=\"`extraDhcpOption`\" pulumi-lang-java=\"`extraDhcpOption`\">`extra_dhcp_option`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingPortV2ExtraDhcpOption:NetworkingPortV2ExtraDhcpOption"},"type":"array"},"fixedIp":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingPortV2FixedIp:NetworkingPortV2FixedIp","description":"An array of desired IPs for this port. The structure is\ndescribed below. A single <span pulumi-lang-nodejs=\"`fixedIp`\" pulumi-lang-dotnet=\"`FixedIp`\" pulumi-lang-go=\"`fixedIp`\" pulumi-lang-python=\"`fixed_ip`\" pulumi-lang-yaml=\"`fixedIp`\" pulumi-lang-java=\"`fixedIp`\">`fixed_ip`</span> entry is allowed for a port.\nThe <span pulumi-lang-nodejs=\"`fixedIp`\" pulumi-lang-dotnet=\"`FixedIp`\" pulumi-lang-go=\"`fixedIp`\" pulumi-lang-python=\"`fixed_ip`\" pulumi-lang-yaml=\"`fixedIp`\" pulumi-lang-java=\"`fixedIp`\">`fixed_ip`</span> block supports:\n"},"name":{"description":"A unique name for the port. Changing this\nupdates the <span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span> of an existing port.\n","type":"string"},"networkId":{"description":"The ID of the network to attach the port to. Changing\nthis creates a new port.\n","type":"string"},"networkingPortV2Id":{"type":"string"},"noSecurityGroups":{"description":"If set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>, then no security groups\nare applied to the port. If set to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> and no <span pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\">`security_group_ids`</span> are specified,\nthen the port will yield to the default behavior of the Networking service,\nwhich is to usually apply the `\"default\"` security group.\n","type":"boolean"},"portSecurityEnabled":{"description":"Whether to explicitly enable or disable\nport security on the port. Port Security is usually enabled by default, so\nomitting argument will usually result in a value of <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>. Setting this\nexplicitly to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> will disable port security. In order to disable port\nsecurity, the port must not have any security groups. Valid values are <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>\nand <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"region":{"type":"string"},"securityGroupIds":{"description":"A list of security group IDs to apply to the\nport. The security groups must be specified by ID and not name (as opposed\nto how they are configured with the Compute Instance).\n","items":{"type":"string"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingPortV2Timeouts:NetworkingPortV2Timeouts"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options.\n","type":"object"}},"properties":{"adminStateUp":{"description":"Administrative up/down status for the port\n(must be \"true\" or \"false\" if provided). Changing this updates the\n<span pulumi-lang-nodejs=\"`adminStateUp`\" pulumi-lang-dotnet=\"`AdminStateUp`\" pulumi-lang-go=\"`adminStateUp`\" pulumi-lang-python=\"`admin_state_up`\" pulumi-lang-yaml=\"`adminStateUp`\" pulumi-lang-java=\"`adminStateUp`\">`admin_state_up`</span> of an existing port.\n","type":"boolean"},"allFixedIps":{"items":{"type":"string"},"type":"array"},"allowedAddressPairs":{"description":"An IP/MAC Address pair of additional IP\naddresses that can be active on this port. The structure is described below.\nThe <span pulumi-lang-nodejs=\"`allowedAddressPairs`\" pulumi-lang-dotnet=\"`AllowedAddressPairs`\" pulumi-lang-go=\"`allowedAddressPairs`\" pulumi-lang-python=\"`allowed_address_pairs`\" pulumi-lang-yaml=\"`allowedAddressPairs`\" pulumi-lang-java=\"`allowedAddressPairs`\">`allowed_address_pairs`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingPortV2AllowedAddressPair:NetworkingPortV2AllowedAddressPair"},"type":"array"},"deviceId":{"description":"The ID of the device attached to the port. Changing this\ncreates a new port.\n","type":"string"},"deviceOwner":{"description":"The device owner of the Port. Changing this creates\na new port.\n","type":"string"},"extraDhcpOptions":{"description":"Specifies the extended DHCP option. This is an extended attribute.\nThe <span pulumi-lang-nodejs=\"`extraDhcpOption`\" pulumi-lang-dotnet=\"`ExtraDhcpOption`\" pulumi-lang-go=\"`extraDhcpOption`\" pulumi-lang-python=\"`extra_dhcp_option`\" pulumi-lang-yaml=\"`extraDhcpOption`\" pulumi-lang-java=\"`extraDhcpOption`\">`extra_dhcp_option`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingPortV2ExtraDhcpOption:NetworkingPortV2ExtraDhcpOption"},"type":"array"},"fixedIp":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingPortV2FixedIp:NetworkingPortV2FixedIp","description":"An array of desired IPs for this port. The structure is\ndescribed below. A single <span pulumi-lang-nodejs=\"`fixedIp`\" pulumi-lang-dotnet=\"`FixedIp`\" pulumi-lang-go=\"`fixedIp`\" pulumi-lang-python=\"`fixed_ip`\" pulumi-lang-yaml=\"`fixedIp`\" pulumi-lang-java=\"`fixedIp`\">`fixed_ip`</span> entry is allowed for a port.\nThe <span pulumi-lang-nodejs=\"`fixedIp`\" pulumi-lang-dotnet=\"`FixedIp`\" pulumi-lang-go=\"`fixedIp`\" pulumi-lang-python=\"`fixed_ip`\" pulumi-lang-yaml=\"`fixedIp`\" pulumi-lang-java=\"`fixedIp`\">`fixed_ip`</span> block supports:\n"},"macAddress":{"description":"Specifies the port MAC address.\n","type":"string"},"name":{"description":"A unique name for the port. Changing this\nupdates the <span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span> of an existing port.\n","type":"string"},"networkId":{"description":"The ID of the network to attach the port to. Changing\nthis creates a new port.\n","type":"string"},"networkingPortV2Id":{"type":"string"},"noSecurityGroups":{"description":"If set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>, then no security groups\nare applied to the port. If set to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> and no <span pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\">`security_group_ids`</span> are specified,\nthen the port will yield to the default behavior of the Networking service,\nwhich is to usually apply the `\"default\"` security group.\n","type":"boolean"},"portSecurityEnabled":{"description":"Whether to explicitly enable or disable\nport security on the port. Port Security is usually enabled by default, so\nomitting argument will usually result in a value of <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>. Setting this\nexplicitly to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> will disable port security. In order to disable port\nsecurity, the port must not have any security groups. Valid values are <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>\nand <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"region":{"type":"string"},"securityGroupIds":{"description":"A list of security group IDs to apply to the\nport. The security groups must be specified by ID and not name (as opposed\nto how they are configured with the Compute Instance).\n","items":{"type":"string"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingPortV2Timeouts:NetworkingPortV2Timeouts"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options.\n","type":"object"}},"required":["adminStateUp","allFixedIps","deviceId","deviceOwner","macAddress","name","networkId","networkingPortV2Id","region","securityGroupIds"],"requiredInputs":["networkId"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkingPortV2 resources.\n","properties":{"adminStateUp":{"description":"Administrative up/down status for the port\n(must be \"true\" or \"false\" if provided). Changing this updates the\n<span pulumi-lang-nodejs=\"`adminStateUp`\" pulumi-lang-dotnet=\"`AdminStateUp`\" pulumi-lang-go=\"`adminStateUp`\" pulumi-lang-python=\"`admin_state_up`\" pulumi-lang-yaml=\"`adminStateUp`\" pulumi-lang-java=\"`adminStateUp`\">`admin_state_up`</span> of an existing port.\n","type":"boolean"},"allFixedIps":{"items":{"type":"string"},"type":"array"},"allowedAddressPairs":{"description":"An IP/MAC Address pair of additional IP\naddresses that can be active on this port. The structure is described below.\nThe <span pulumi-lang-nodejs=\"`allowedAddressPairs`\" pulumi-lang-dotnet=\"`AllowedAddressPairs`\" pulumi-lang-go=\"`allowedAddressPairs`\" pulumi-lang-python=\"`allowed_address_pairs`\" pulumi-lang-yaml=\"`allowedAddressPairs`\" pulumi-lang-java=\"`allowedAddressPairs`\">`allowed_address_pairs`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingPortV2AllowedAddressPair:NetworkingPortV2AllowedAddressPair"},"type":"array"},"deviceId":{"description":"The ID of the device attached to the port. Changing this\ncreates a new port.\n","type":"string"},"deviceOwner":{"description":"The device owner of the Port. Changing this creates\na new port.\n","type":"string"},"extraDhcpOptions":{"description":"Specifies the extended DHCP option. This is an extended attribute.\nThe <span pulumi-lang-nodejs=\"`extraDhcpOption`\" pulumi-lang-dotnet=\"`ExtraDhcpOption`\" pulumi-lang-go=\"`extraDhcpOption`\" pulumi-lang-python=\"`extra_dhcp_option`\" pulumi-lang-yaml=\"`extraDhcpOption`\" pulumi-lang-java=\"`extraDhcpOption`\">`extra_dhcp_option`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingPortV2ExtraDhcpOption:NetworkingPortV2ExtraDhcpOption"},"type":"array"},"fixedIp":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingPortV2FixedIp:NetworkingPortV2FixedIp","description":"An array of desired IPs for this port. The structure is\ndescribed below. A single <span pulumi-lang-nodejs=\"`fixedIp`\" pulumi-lang-dotnet=\"`FixedIp`\" pulumi-lang-go=\"`fixedIp`\" pulumi-lang-python=\"`fixed_ip`\" pulumi-lang-yaml=\"`fixedIp`\" pulumi-lang-java=\"`fixedIp`\">`fixed_ip`</span> entry is allowed for a port.\nThe <span pulumi-lang-nodejs=\"`fixedIp`\" pulumi-lang-dotnet=\"`FixedIp`\" pulumi-lang-go=\"`fixedIp`\" pulumi-lang-python=\"`fixed_ip`\" pulumi-lang-yaml=\"`fixedIp`\" pulumi-lang-java=\"`fixedIp`\">`fixed_ip`</span> block supports:\n"},"macAddress":{"description":"Specifies the port MAC address.\n","type":"string"},"name":{"description":"A unique name for the port. Changing this\nupdates the <span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span> of an existing port.\n","type":"string"},"networkId":{"description":"The ID of the network to attach the port to. Changing\nthis creates a new port.\n","type":"string"},"networkingPortV2Id":{"type":"string"},"noSecurityGroups":{"description":"If set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>, then no security groups\nare applied to the port. If set to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> and no <span pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\">`security_group_ids`</span> are specified,\nthen the port will yield to the default behavior of the Networking service,\nwhich is to usually apply the `\"default\"` security group.\n","type":"boolean"},"portSecurityEnabled":{"description":"Whether to explicitly enable or disable\nport security on the port. Port Security is usually enabled by default, so\nomitting argument will usually result in a value of <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>. Setting this\nexplicitly to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> will disable port security. In order to disable port\nsecurity, the port must not have any security groups. Valid values are <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>\nand <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"region":{"type":"string"},"securityGroupIds":{"description":"A list of security group IDs to apply to the\nport. The security groups must be specified by ID and not name (as opposed\nto how they are configured with the Compute Instance).\n","items":{"type":"string"},"type":"array"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingPortV2Timeouts:NetworkingPortV2Timeouts"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options.\n","type":"object"}},"type":"object"},"type":"object"},"opentelekomcloud:index/networkingRouterInterfaceV2:NetworkingRouterInterfaceV2":{"description":"Up-to-date reference of API arguments for VPC router interface you can get at\n[documentation portal](https://docs.otc.t-systems.com/virtual-private-cloud/api-ref/native_openstack_neutron_apis_v2.0/router)\n\nManages a V2 router interface resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst network1 = new opentelekomcloud.NetworkingNetworkV2(\"network_1\", {\n    name: \"tf_test_network\",\n    adminStateUp: \"true\",\n});\nconst subnet1 = new opentelekomcloud.NetworkingSubnetV2(\"subnet_1\", {\n    networkId: network1.networkingNetworkV2Id,\n    cidr: \"192.168.199.0/24\",\n    ipVersion: 4,\n});\nconst router1 = new opentelekomcloud.NetworkingRouterV2(\"router_1\", {\n    name: \"my_router\",\n    externalGateway: \"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\",\n});\nconst routerInterface1 = new opentelekomcloud.NetworkingRouterInterfaceV2(\"router_interface_1\", {\n    routerId: router1.networkingRouterV2Id,\n    subnetId: subnet1.networkingSubnetV2Id,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nnetwork1 = opentelekomcloud.NetworkingNetworkV2(\"network_1\",\n    name=\"tf_test_network\",\n    admin_state_up=\"true\")\nsubnet1 = opentelekomcloud.NetworkingSubnetV2(\"subnet_1\",\n    network_id=network1.networking_network_v2_id,\n    cidr=\"192.168.199.0/24\",\n    ip_version=4)\nrouter1 = opentelekomcloud.NetworkingRouterV2(\"router_1\",\n    name=\"my_router\",\n    external_gateway=\"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\")\nrouter_interface1 = opentelekomcloud.NetworkingRouterInterfaceV2(\"router_interface_1\",\n    router_id=router1.networking_router_v2_id,\n    subnet_id=subnet1.networking_subnet_v2_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var network1 = new Opentelekomcloud.NetworkingNetworkV2(\"network_1\", new()\n    {\n        Name = \"tf_test_network\",\n        AdminStateUp = \"true\",\n    });\n\n    var subnet1 = new Opentelekomcloud.NetworkingSubnetV2(\"subnet_1\", new()\n    {\n        NetworkId = network1.NetworkingNetworkV2Id,\n        Cidr = \"192.168.199.0/24\",\n        IpVersion = 4,\n    });\n\n    var router1 = new Opentelekomcloud.NetworkingRouterV2(\"router_1\", new()\n    {\n        Name = \"my_router\",\n        ExternalGateway = \"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\",\n    });\n\n    var routerInterface1 = new Opentelekomcloud.NetworkingRouterInterfaceV2(\"router_interface_1\", new()\n    {\n        RouterId = router1.NetworkingRouterV2Id,\n        SubnetId = subnet1.NetworkingSubnetV2Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := opentelekomcloud.NewNetworkingNetworkV2(ctx, \"network_1\", &opentelekomcloud.NetworkingNetworkV2Args{\n\t\t\tName:         pulumi.String(\"tf_test_network\"),\n\t\t\tAdminStateUp: pulumi.String(\"true\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := opentelekomcloud.NewNetworkingSubnetV2(ctx, \"subnet_1\", &opentelekomcloud.NetworkingSubnetV2Args{\n\t\t\tNetworkId: network1.NetworkingNetworkV2Id,\n\t\t\tCidr:      pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Float64(4),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trouter1, err := opentelekomcloud.NewNetworkingRouterV2(ctx, \"router_1\", &opentelekomcloud.NetworkingRouterV2Args{\n\t\t\tName:            pulumi.String(\"my_router\"),\n\t\t\tExternalGateway: pulumi.String(\"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewNetworkingRouterInterfaceV2(ctx, \"router_interface_1\", &opentelekomcloud.NetworkingRouterInterfaceV2Args{\n\t\t\tRouterId: router1.NetworkingRouterV2Id,\n\t\t\tSubnetId: subnet1.NetworkingSubnetV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.NetworkingNetworkV2;\nimport com.pulumi.opentelekomcloud.NetworkingNetworkV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingSubnetV2;\nimport com.pulumi.opentelekomcloud.NetworkingSubnetV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingRouterV2;\nimport com.pulumi.opentelekomcloud.NetworkingRouterV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingRouterInterfaceV2;\nimport com.pulumi.opentelekomcloud.NetworkingRouterInterfaceV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var network1 = new NetworkingNetworkV2(\"network1\", NetworkingNetworkV2Args.builder()\n            .name(\"tf_test_network\")\n            .adminStateUp(\"true\")\n            .build());\n\n        var subnet1 = new NetworkingSubnetV2(\"subnet1\", NetworkingSubnetV2Args.builder()\n            .networkId(network1.networkingNetworkV2Id())\n            .cidr(\"192.168.199.0/24\")\n            .ipVersion(4.0)\n            .build());\n\n        var router1 = new NetworkingRouterV2(\"router1\", NetworkingRouterV2Args.builder()\n            .name(\"my_router\")\n            .externalGateway(\"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\")\n            .build());\n\n        var routerInterface1 = new NetworkingRouterInterfaceV2(\"routerInterface1\", NetworkingRouterInterfaceV2Args.builder()\n            .routerId(router1.networkingRouterV2Id())\n            .subnetId(subnet1.networkingSubnetV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  network1:\n    type: opentelekomcloud:NetworkingNetworkV2\n    name: network_1\n    properties:\n      name: tf_test_network\n      adminStateUp: 'true'\n  subnet1:\n    type: opentelekomcloud:NetworkingSubnetV2\n    name: subnet_1\n    properties:\n      networkId: ${network1.networkingNetworkV2Id}\n      cidr: 192.168.199.0/24\n      ipVersion: 4\n  router1:\n    type: opentelekomcloud:NetworkingRouterV2\n    name: router_1\n    properties:\n      name: my_router\n      externalGateway: f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\n  routerInterface1:\n    type: opentelekomcloud:NetworkingRouterInterfaceV2\n    name: router_interface_1\n    properties:\n      routerId: ${router1.networkingRouterV2Id}\n      subnetId: ${subnet1.networkingSubnetV2Id}\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"networkingRouterInterfaceV2Id":{"type":"string"},"portId":{"description":"ID of the port this interface connects to. Changing\nthis creates a new router interface.\n","type":"string"},"region":{"type":"string"},"routerId":{"description":"ID of the router this interface belongs to. Changing\nthis creates a new router interface.\n","type":"string"},"subnetId":{"description":"ID of the subnet this interface connects to. Changing\nthis creates a new router interface.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingRouterInterfaceV2Timeouts:NetworkingRouterInterfaceV2Timeouts"}},"properties":{"networkingRouterInterfaceV2Id":{"type":"string"},"portId":{"description":"ID of the port this interface connects to. Changing\nthis creates a new router interface.\n","type":"string"},"region":{"type":"string"},"routerId":{"description":"ID of the router this interface belongs to. Changing\nthis creates a new router interface.\n","type":"string"},"subnetId":{"description":"ID of the subnet this interface connects to. Changing\nthis creates a new router interface.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingRouterInterfaceV2Timeouts:NetworkingRouterInterfaceV2Timeouts"}},"required":["networkingRouterInterfaceV2Id","region","routerId"],"requiredInputs":["routerId"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkingRouterInterfaceV2 resources.\n","properties":{"networkingRouterInterfaceV2Id":{"type":"string"},"portId":{"description":"ID of the port this interface connects to. Changing\nthis creates a new router interface.\n","type":"string"},"region":{"type":"string"},"routerId":{"description":"ID of the router this interface belongs to. Changing\nthis creates a new router interface.\n","type":"string"},"subnetId":{"description":"ID of the subnet this interface connects to. Changing\nthis creates a new router interface.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingRouterInterfaceV2Timeouts:NetworkingRouterInterfaceV2Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/networkingRouterRouteV2:NetworkingRouterRouteV2":{"description":"Up-to-date reference of API arguments for VPC router route you can get at\n[documentation portal](https://docs.otc.t-systems.com/virtual-private-cloud/api-ref/native_openstack_neutron_apis_v2.0/router)\n\n**DEPRECATED**\nCreates a routing entry on a OpenTelekomCloud V2 router.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst router1 = new opentelekomcloud.NetworkingRouterV2(\"router_1\", {\n    name: \"router_1\",\n    adminStateUp: true,\n});\nconst network1 = new opentelekomcloud.NetworkingNetworkV2(\"network_1\", {\n    name: \"network_1\",\n    adminStateUp: \"true\",\n});\nconst subnet1 = new opentelekomcloud.NetworkingSubnetV2(\"subnet_1\", {\n    networkId: network1.networkingNetworkV2Id,\n    cidr: \"192.168.199.0/24\",\n    ipVersion: 4,\n});\nconst int1 = new opentelekomcloud.NetworkingRouterInterfaceV2(\"int_1\", {\n    routerId: router1.networkingRouterV2Id,\n    subnetId: subnet1.networkingSubnetV2Id,\n});\nconst routerRoute1 = new opentelekomcloud.NetworkingRouterRouteV2(\"router_route_1\", {\n    routerId: router1.networkingRouterV2Id,\n    destinationCidr: \"10.0.1.0/24\",\n    nextHop: \"192.168.199.254\",\n}, {\n    dependsOn: [int1],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nrouter1 = opentelekomcloud.NetworkingRouterV2(\"router_1\",\n    name=\"router_1\",\n    admin_state_up=True)\nnetwork1 = opentelekomcloud.NetworkingNetworkV2(\"network_1\",\n    name=\"network_1\",\n    admin_state_up=\"true\")\nsubnet1 = opentelekomcloud.NetworkingSubnetV2(\"subnet_1\",\n    network_id=network1.networking_network_v2_id,\n    cidr=\"192.168.199.0/24\",\n    ip_version=4)\nint1 = opentelekomcloud.NetworkingRouterInterfaceV2(\"int_1\",\n    router_id=router1.networking_router_v2_id,\n    subnet_id=subnet1.networking_subnet_v2_id)\nrouter_route1 = opentelekomcloud.NetworkingRouterRouteV2(\"router_route_1\",\n    router_id=router1.networking_router_v2_id,\n    destination_cidr=\"10.0.1.0/24\",\n    next_hop=\"192.168.199.254\",\n    opts = pulumi.ResourceOptions(depends_on=[int1]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var router1 = new Opentelekomcloud.NetworkingRouterV2(\"router_1\", new()\n    {\n        Name = \"router_1\",\n        AdminStateUp = true,\n    });\n\n    var network1 = new Opentelekomcloud.NetworkingNetworkV2(\"network_1\", new()\n    {\n        Name = \"network_1\",\n        AdminStateUp = \"true\",\n    });\n\n    var subnet1 = new Opentelekomcloud.NetworkingSubnetV2(\"subnet_1\", new()\n    {\n        NetworkId = network1.NetworkingNetworkV2Id,\n        Cidr = \"192.168.199.0/24\",\n        IpVersion = 4,\n    });\n\n    var int1 = new Opentelekomcloud.NetworkingRouterInterfaceV2(\"int_1\", new()\n    {\n        RouterId = router1.NetworkingRouterV2Id,\n        SubnetId = subnet1.NetworkingSubnetV2Id,\n    });\n\n    var routerRoute1 = new Opentelekomcloud.NetworkingRouterRouteV2(\"router_route_1\", new()\n    {\n        RouterId = router1.NetworkingRouterV2Id,\n        DestinationCidr = \"10.0.1.0/24\",\n        NextHop = \"192.168.199.254\",\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            int1,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trouter1, err := opentelekomcloud.NewNetworkingRouterV2(ctx, \"router_1\", &opentelekomcloud.NetworkingRouterV2Args{\n\t\t\tName:         pulumi.String(\"router_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnetwork1, err := opentelekomcloud.NewNetworkingNetworkV2(ctx, \"network_1\", &opentelekomcloud.NetworkingNetworkV2Args{\n\t\t\tName:         pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.String(\"true\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := opentelekomcloud.NewNetworkingSubnetV2(ctx, \"subnet_1\", &opentelekomcloud.NetworkingSubnetV2Args{\n\t\t\tNetworkId: network1.NetworkingNetworkV2Id,\n\t\t\tCidr:      pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Float64(4),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tint1, err := opentelekomcloud.NewNetworkingRouterInterfaceV2(ctx, \"int_1\", &opentelekomcloud.NetworkingRouterInterfaceV2Args{\n\t\t\tRouterId: router1.NetworkingRouterV2Id,\n\t\t\tSubnetId: subnet1.NetworkingSubnetV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewNetworkingRouterRouteV2(ctx, \"router_route_1\", &opentelekomcloud.NetworkingRouterRouteV2Args{\n\t\t\tRouterId:        router1.NetworkingRouterV2Id,\n\t\t\tDestinationCidr: pulumi.String(\"10.0.1.0/24\"),\n\t\t\tNextHop:         pulumi.String(\"192.168.199.254\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tint1,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.NetworkingRouterV2;\nimport com.pulumi.opentelekomcloud.NetworkingRouterV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingNetworkV2;\nimport com.pulumi.opentelekomcloud.NetworkingNetworkV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingSubnetV2;\nimport com.pulumi.opentelekomcloud.NetworkingSubnetV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingRouterInterfaceV2;\nimport com.pulumi.opentelekomcloud.NetworkingRouterInterfaceV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingRouterRouteV2;\nimport com.pulumi.opentelekomcloud.NetworkingRouterRouteV2Args;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var router1 = new NetworkingRouterV2(\"router1\", NetworkingRouterV2Args.builder()\n            .name(\"router_1\")\n            .adminStateUp(true)\n            .build());\n\n        var network1 = new NetworkingNetworkV2(\"network1\", NetworkingNetworkV2Args.builder()\n            .name(\"network_1\")\n            .adminStateUp(\"true\")\n            .build());\n\n        var subnet1 = new NetworkingSubnetV2(\"subnet1\", NetworkingSubnetV2Args.builder()\n            .networkId(network1.networkingNetworkV2Id())\n            .cidr(\"192.168.199.0/24\")\n            .ipVersion(4.0)\n            .build());\n\n        var int1 = new NetworkingRouterInterfaceV2(\"int1\", NetworkingRouterInterfaceV2Args.builder()\n            .routerId(router1.networkingRouterV2Id())\n            .subnetId(subnet1.networkingSubnetV2Id())\n            .build());\n\n        var routerRoute1 = new NetworkingRouterRouteV2(\"routerRoute1\", NetworkingRouterRouteV2Args.builder()\n            .routerId(router1.networkingRouterV2Id())\n            .destinationCidr(\"10.0.1.0/24\")\n            .nextHop(\"192.168.199.254\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(int1)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  router1:\n    type: opentelekomcloud:NetworkingRouterV2\n    name: router_1\n    properties:\n      name: router_1\n      adminStateUp: 'true'\n  network1:\n    type: opentelekomcloud:NetworkingNetworkV2\n    name: network_1\n    properties:\n      name: network_1\n      adminStateUp: 'true'\n  subnet1:\n    type: opentelekomcloud:NetworkingSubnetV2\n    name: subnet_1\n    properties:\n      networkId: ${network1.networkingNetworkV2Id}\n      cidr: 192.168.199.0/24\n      ipVersion: 4\n  int1:\n    type: opentelekomcloud:NetworkingRouterInterfaceV2\n    name: int_1\n    properties:\n      routerId: ${router1.networkingRouterV2Id}\n      subnetId: ${subnet1.networkingSubnetV2Id}\n  routerRoute1:\n    type: opentelekomcloud:NetworkingRouterRouteV2\n    name: router_route_1\n    properties:\n      routerId: ${router1.networkingRouterV2Id}\n      destinationCidr: 10.0.1.0/24\n      nextHop: 192.168.199.254\n    options:\n      dependsOn:\n        - ${int1}\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"destinationCidr":{"description":"CIDR block to match on the packet’s destination IP. Changing\nthis creates a new routing entry.\n","type":"string"},"networkingRouterRouteV2Id":{"type":"string"},"nextHop":{"description":"IP address of the next hop gateway.  Changing\nthis creates a new routing entry.\n","type":"string"},"region":{"type":"string"},"routerId":{"description":"ID of the router this routing entry belongs to. Changing\nthis creates a new routing entry.\n","type":"string"}},"properties":{"destinationCidr":{"description":"CIDR block to match on the packet’s destination IP. Changing\nthis creates a new routing entry.\n","type":"string"},"networkingRouterRouteV2Id":{"type":"string"},"nextHop":{"description":"IP address of the next hop gateway.  Changing\nthis creates a new routing entry.\n","type":"string"},"region":{"type":"string"},"routerId":{"description":"ID of the router this routing entry belongs to. Changing\nthis creates a new routing entry.\n","type":"string"}},"required":["destinationCidr","networkingRouterRouteV2Id","nextHop","region","routerId"],"requiredInputs":["destinationCidr","nextHop","routerId"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkingRouterRouteV2 resources.\n","properties":{"destinationCidr":{"description":"CIDR block to match on the packet’s destination IP. Changing\nthis creates a new routing entry.\n","type":"string"},"networkingRouterRouteV2Id":{"type":"string"},"nextHop":{"description":"IP address of the next hop gateway.  Changing\nthis creates a new routing entry.\n","type":"string"},"region":{"type":"string"},"routerId":{"description":"ID of the router this routing entry belongs to. Changing\nthis creates a new routing entry.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/networkingRouterV2:NetworkingRouterV2":{"description":"Up-to-date reference of API arguments for VPC router you can get at\n[documentation portal](https://docs.otc.t-systems.com/virtual-private-cloud/api-ref/native_openstack_neutron_apis_v2.0/router)\n\nManages a V2 router resource within OpenTelekomCloud. The router is the top-level resource for the VPC within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst router1 = new opentelekomcloud.NetworkingRouterV2(\"router_1\", {\n    name: \"my_router\",\n    externalGateway: \"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nrouter1 = opentelekomcloud.NetworkingRouterV2(\"router_1\",\n    name=\"my_router\",\n    external_gateway=\"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var router1 = new Opentelekomcloud.NetworkingRouterV2(\"router_1\", new()\n    {\n        Name = \"my_router\",\n        ExternalGateway = \"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewNetworkingRouterV2(ctx, \"router_1\", &opentelekomcloud.NetworkingRouterV2Args{\n\t\t\tName:            pulumi.String(\"my_router\"),\n\t\t\tExternalGateway: pulumi.String(\"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.NetworkingRouterV2;\nimport com.pulumi.opentelekomcloud.NetworkingRouterV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var router1 = new NetworkingRouterV2(\"router1\", NetworkingRouterV2Args.builder()\n            .name(\"my_router\")\n            .externalGateway(\"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  router1:\n    type: opentelekomcloud:NetworkingRouterV2\n    name: router_1\n    properties:\n      name: my_router\n      externalGateway: f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\n```\n<!--End PulumiCodeChooser -->\n\n## Enable SNAT\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst adminExternalNet = opentelekomcloud.getNetworkingNetworkV2({\n    name: \"admin_external_net\",\n});\nconst router1 = new opentelekomcloud.NetworkingRouterV2(\"router_1\", {\n    name: \"my_router\",\n    adminStateUp: true,\n    distributed: false,\n    externalGateway: adminExternalNet.then(adminExternalNet => adminExternalNet.id),\n    enableSnat: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nadmin_external_net = opentelekomcloud.get_networking_network_v2(name=\"admin_external_net\")\nrouter1 = opentelekomcloud.NetworkingRouterV2(\"router_1\",\n    name=\"my_router\",\n    admin_state_up=True,\n    distributed=False,\n    external_gateway=admin_external_net.id,\n    enable_snat=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var adminExternalNet = Opentelekomcloud.GetNetworkingNetworkV2.Invoke(new()\n    {\n        Name = \"admin_external_net\",\n    });\n\n    var router1 = new Opentelekomcloud.NetworkingRouterV2(\"router_1\", new()\n    {\n        Name = \"my_router\",\n        AdminStateUp = true,\n        Distributed = false,\n        ExternalGateway = adminExternalNet.Apply(getNetworkingNetworkV2Result => getNetworkingNetworkV2Result.Id),\n        EnableSnat = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tadminExternalNet, err := opentelekomcloud.LookupNetworkingNetworkV2(ctx, &opentelekomcloud.LookupNetworkingNetworkV2Args{\n\t\t\tName: pulumi.StringRef(\"admin_external_net\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewNetworkingRouterV2(ctx, \"router_1\", &opentelekomcloud.NetworkingRouterV2Args{\n\t\t\tName:            pulumi.String(\"my_router\"),\n\t\t\tAdminStateUp:    pulumi.Bool(true),\n\t\t\tDistributed:     pulumi.Bool(false),\n\t\t\tExternalGateway: pulumi.String(adminExternalNet.Id),\n\t\t\tEnableSnat:      pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetNetworkingNetworkV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingRouterV2;\nimport com.pulumi.opentelekomcloud.NetworkingRouterV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var adminExternalNet = OpentelekomcloudFunctions.getNetworkingNetworkV2(GetNetworkingNetworkV2Args.builder()\n            .name(\"admin_external_net\")\n            .build());\n\n        var router1 = new NetworkingRouterV2(\"router1\", NetworkingRouterV2Args.builder()\n            .name(\"my_router\")\n            .adminStateUp(true)\n            .distributed(false)\n            .externalGateway(adminExternalNet.id())\n            .enableSnat(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  router1:\n    type: opentelekomcloud:NetworkingRouterV2\n    name: router_1\n    properties:\n      name: my_router\n      adminStateUp: true\n      distributed: false\n      externalGateway: ${adminExternalNet.id}\n      enableSnat: true\nvariables:\n  adminExternalNet:\n    fn::invoke:\n      function: opentelekomcloud:getNetworkingNetworkV2\n      arguments:\n        name: admin_external_net\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"adminStateUp":{"description":"Administrative up/down status for the router\n(must be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> if provided). Changing this updates the\n<span pulumi-lang-nodejs=\"`adminStateUp`\" pulumi-lang-dotnet=\"`AdminStateUp`\" pulumi-lang-go=\"`adminStateUp`\" pulumi-lang-python=\"`admin_state_up`\" pulumi-lang-yaml=\"`adminStateUp`\" pulumi-lang-java=\"`adminStateUp`\">`admin_state_up`</span> of an existing router.\n","type":"boolean"},"distributed":{"description":"Indicates whether or not to create a\ndistributed router. The default policy setting in Neutron restricts\nusage of this property to administrative users only.\n","type":"boolean"},"enableSnat":{"description":"Enable Source NAT for the router. Valid values are\n<span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. An <span pulumi-lang-nodejs=\"`externalGateway`\" pulumi-lang-dotnet=\"`ExternalGateway`\" pulumi-lang-go=\"`externalGateway`\" pulumi-lang-python=\"`external_gateway`\" pulumi-lang-yaml=\"`externalGateway`\" pulumi-lang-java=\"`externalGateway`\">`external_gateway`</span> has to be set in order to set this\nproperty. Changing this updates the <span pulumi-lang-nodejs=\"`enableSnat`\" pulumi-lang-dotnet=\"`EnableSnat`\" pulumi-lang-go=\"`enableSnat`\" pulumi-lang-python=\"`enable_snat`\" pulumi-lang-yaml=\"`enableSnat`\" pulumi-lang-java=\"`enableSnat`\">`enable_snat`</span> of the router.\n","type":"boolean"},"externalGateway":{"description":"The network UUID of an external gateway for\nthe router. A router with an external gateway is required if any compute\ninstances or load balancers will be using floating IPs. Changing this\nupdates the <span pulumi-lang-nodejs=\"`externalGateway`\" pulumi-lang-dotnet=\"`ExternalGateway`\" pulumi-lang-go=\"`externalGateway`\" pulumi-lang-python=\"`external_gateway`\" pulumi-lang-yaml=\"`externalGateway`\" pulumi-lang-java=\"`externalGateway`\">`external_gateway`</span> of an existing router.\n","type":"string"},"name":{"description":"A unique name for the router. Changing this\nupdates the <span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span> of an existing router.\n","type":"string"},"networkingRouterV2Id":{"description":"ID of the router.\n","type":"string"},"region":{"type":"string"},"tenantId":{"description":"The owner of the floating IP. Required if admin wants\nto create a router for another tenant. Changing this creates a new router.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingRouterV2Timeouts:NetworkingRouterV2Timeouts"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional driver-specific options.\n","type":"object"}},"properties":{"adminStateUp":{"description":"Administrative up/down status for the router\n(must be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> if provided). Changing this updates the\n<span pulumi-lang-nodejs=\"`adminStateUp`\" pulumi-lang-dotnet=\"`AdminStateUp`\" pulumi-lang-go=\"`adminStateUp`\" pulumi-lang-python=\"`admin_state_up`\" pulumi-lang-yaml=\"`adminStateUp`\" pulumi-lang-java=\"`adminStateUp`\">`admin_state_up`</span> of an existing router.\n","type":"boolean"},"distributed":{"description":"Indicates whether or not to create a\ndistributed router. The default policy setting in Neutron restricts\nusage of this property to administrative users only.\n","type":"boolean"},"enableSnat":{"description":"Enable Source NAT for the router. Valid values are\n<span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. An <span pulumi-lang-nodejs=\"`externalGateway`\" pulumi-lang-dotnet=\"`ExternalGateway`\" pulumi-lang-go=\"`externalGateway`\" pulumi-lang-python=\"`external_gateway`\" pulumi-lang-yaml=\"`externalGateway`\" pulumi-lang-java=\"`externalGateway`\">`external_gateway`</span> has to be set in order to set this\nproperty. Changing this updates the <span pulumi-lang-nodejs=\"`enableSnat`\" pulumi-lang-dotnet=\"`EnableSnat`\" pulumi-lang-go=\"`enableSnat`\" pulumi-lang-python=\"`enable_snat`\" pulumi-lang-yaml=\"`enableSnat`\" pulumi-lang-java=\"`enableSnat`\">`enable_snat`</span> of the router.\n","type":"boolean"},"externalGateway":{"description":"The network UUID of an external gateway for\nthe router. A router with an external gateway is required if any compute\ninstances or load balancers will be using floating IPs. Changing this\nupdates the <span pulumi-lang-nodejs=\"`externalGateway`\" pulumi-lang-dotnet=\"`ExternalGateway`\" pulumi-lang-go=\"`externalGateway`\" pulumi-lang-python=\"`external_gateway`\" pulumi-lang-yaml=\"`externalGateway`\" pulumi-lang-java=\"`externalGateway`\">`external_gateway`</span> of an existing router.\n","type":"string"},"name":{"description":"A unique name for the router. Changing this\nupdates the <span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span> of an existing router.\n","type":"string"},"networkingRouterV2Id":{"description":"ID of the router.\n","type":"string"},"region":{"type":"string"},"tenantId":{"description":"The owner of the floating IP. Required if admin wants\nto create a router for another tenant. Changing this creates a new router.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingRouterV2Timeouts:NetworkingRouterV2Timeouts"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional driver-specific options.\n","type":"object"}},"required":["adminStateUp","distributed","enableSnat","name","networkingRouterV2Id","region","tenantId"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkingRouterV2 resources.\n","properties":{"adminStateUp":{"description":"Administrative up/down status for the router\n(must be <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> if provided). Changing this updates the\n<span pulumi-lang-nodejs=\"`adminStateUp`\" pulumi-lang-dotnet=\"`AdminStateUp`\" pulumi-lang-go=\"`adminStateUp`\" pulumi-lang-python=\"`admin_state_up`\" pulumi-lang-yaml=\"`adminStateUp`\" pulumi-lang-java=\"`adminStateUp`\">`admin_state_up`</span> of an existing router.\n","type":"boolean"},"distributed":{"description":"Indicates whether or not to create a\ndistributed router. The default policy setting in Neutron restricts\nusage of this property to administrative users only.\n","type":"boolean"},"enableSnat":{"description":"Enable Source NAT for the router. Valid values are\n<span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> or <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>. An <span pulumi-lang-nodejs=\"`externalGateway`\" pulumi-lang-dotnet=\"`ExternalGateway`\" pulumi-lang-go=\"`externalGateway`\" pulumi-lang-python=\"`external_gateway`\" pulumi-lang-yaml=\"`externalGateway`\" pulumi-lang-java=\"`externalGateway`\">`external_gateway`</span> has to be set in order to set this\nproperty. Changing this updates the <span pulumi-lang-nodejs=\"`enableSnat`\" pulumi-lang-dotnet=\"`EnableSnat`\" pulumi-lang-go=\"`enableSnat`\" pulumi-lang-python=\"`enable_snat`\" pulumi-lang-yaml=\"`enableSnat`\" pulumi-lang-java=\"`enableSnat`\">`enable_snat`</span> of the router.\n","type":"boolean"},"externalGateway":{"description":"The network UUID of an external gateway for\nthe router. A router with an external gateway is required if any compute\ninstances or load balancers will be using floating IPs. Changing this\nupdates the <span pulumi-lang-nodejs=\"`externalGateway`\" pulumi-lang-dotnet=\"`ExternalGateway`\" pulumi-lang-go=\"`externalGateway`\" pulumi-lang-python=\"`external_gateway`\" pulumi-lang-yaml=\"`externalGateway`\" pulumi-lang-java=\"`externalGateway`\">`external_gateway`</span> of an existing router.\n","type":"string"},"name":{"description":"A unique name for the router. Changing this\nupdates the <span pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\">`name`</span> of an existing router.\n","type":"string"},"networkingRouterV2Id":{"description":"ID of the router.\n","type":"string"},"region":{"type":"string"},"tenantId":{"description":"The owner of the floating IP. Required if admin wants\nto create a router for another tenant. Changing this creates a new router.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingRouterV2Timeouts:NetworkingRouterV2Timeouts"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional driver-specific options.\n","type":"object"}},"type":"object"},"type":"object"},"opentelekomcloud:index/networkingSecgroupRuleV2:NetworkingSecgroupRuleV2":{"description":"Up-to-date reference of API arguments for VPC security group rule you can get at\n[documentation portal](https://docs.otc.t-systems.com/virtual-private-cloud/api-ref/native_openstack_neutron_apis_v2.0/security_group)\n\nManages a V2 neutron security group rule resource within OpenTelekomCloud.\nUnlike Nova security groups, neutron separates the group from the rules\nand also allows an admin to target a specific tenant_id.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst secgroup1 = new opentelekomcloud.NetworkingSecgroupV2(\"secgroup_1\", {\n    name: \"secgroup_1\",\n    description: \"My neutron security group\",\n});\nconst secgroupRule1 = new opentelekomcloud.NetworkingSecgroupRuleV2(\"secgroup_rule_1\", {\n    direction: \"ingress\",\n    ethertype: \"IPv4\",\n    protocol: \"tcp\",\n    portRangeMin: 22,\n    portRangeMax: 22,\n    remoteIpPrefix: \"0.0.0.0/0\",\n    securityGroupId: secgroup1.networkingSecgroupV2Id,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nsecgroup1 = opentelekomcloud.NetworkingSecgroupV2(\"secgroup_1\",\n    name=\"secgroup_1\",\n    description=\"My neutron security group\")\nsecgroup_rule1 = opentelekomcloud.NetworkingSecgroupRuleV2(\"secgroup_rule_1\",\n    direction=\"ingress\",\n    ethertype=\"IPv4\",\n    protocol=\"tcp\",\n    port_range_min=22,\n    port_range_max=22,\n    remote_ip_prefix=\"0.0.0.0/0\",\n    security_group_id=secgroup1.networking_secgroup_v2_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var secgroup1 = new Opentelekomcloud.NetworkingSecgroupV2(\"secgroup_1\", new()\n    {\n        Name = \"secgroup_1\",\n        Description = \"My neutron security group\",\n    });\n\n    var secgroupRule1 = new Opentelekomcloud.NetworkingSecgroupRuleV2(\"secgroup_rule_1\", new()\n    {\n        Direction = \"ingress\",\n        Ethertype = \"IPv4\",\n        Protocol = \"tcp\",\n        PortRangeMin = 22,\n        PortRangeMax = 22,\n        RemoteIpPrefix = \"0.0.0.0/0\",\n        SecurityGroupId = secgroup1.NetworkingSecgroupV2Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsecgroup1, err := opentelekomcloud.NewNetworkingSecgroupV2(ctx, \"secgroup_1\", &opentelekomcloud.NetworkingSecgroupV2Args{\n\t\t\tName:        pulumi.String(\"secgroup_1\"),\n\t\t\tDescription: pulumi.String(\"My neutron security group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewNetworkingSecgroupRuleV2(ctx, \"secgroup_rule_1\", &opentelekomcloud.NetworkingSecgroupRuleV2Args{\n\t\t\tDirection:       pulumi.String(\"ingress\"),\n\t\t\tEthertype:       pulumi.String(\"IPv4\"),\n\t\t\tProtocol:        pulumi.String(\"tcp\"),\n\t\t\tPortRangeMin:    pulumi.Float64(22),\n\t\t\tPortRangeMax:    pulumi.Float64(22),\n\t\t\tRemoteIpPrefix:  pulumi.String(\"0.0.0.0/0\"),\n\t\t\tSecurityGroupId: secgroup1.NetworkingSecgroupV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.NetworkingSecgroupV2;\nimport com.pulumi.opentelekomcloud.NetworkingSecgroupV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingSecgroupRuleV2;\nimport com.pulumi.opentelekomcloud.NetworkingSecgroupRuleV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var secgroup1 = new NetworkingSecgroupV2(\"secgroup1\", NetworkingSecgroupV2Args.builder()\n            .name(\"secgroup_1\")\n            .description(\"My neutron security group\")\n            .build());\n\n        var secgroupRule1 = new NetworkingSecgroupRuleV2(\"secgroupRule1\", NetworkingSecgroupRuleV2Args.builder()\n            .direction(\"ingress\")\n            .ethertype(\"IPv4\")\n            .protocol(\"tcp\")\n            .portRangeMin(22.0)\n            .portRangeMax(22.0)\n            .remoteIpPrefix(\"0.0.0.0/0\")\n            .securityGroupId(secgroup1.networkingSecgroupV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  secgroup1:\n    type: opentelekomcloud:NetworkingSecgroupV2\n    name: secgroup_1\n    properties:\n      name: secgroup_1\n      description: My neutron security group\n  secgroupRule1:\n    type: opentelekomcloud:NetworkingSecgroupRuleV2\n    name: secgroup_rule_1\n    properties:\n      direction: ingress\n      ethertype: IPv4\n      protocol: tcp\n      portRangeMin: 22\n      portRangeMax: 22\n      remoteIpPrefix: 0.0.0.0/0\n      securityGroupId: ${secgroup1.networkingSecgroupV2Id}\n```\n<!--End PulumiCodeChooser -->\n\n## Example ICMP\n\nICMP port codes you can get at:\n`https://docs.otc.t-systems.com/virtual-private-cloud/api-ref/appendix/icmp-port_range_relationship_table.html`.\n\nBut for `Any` values must be:\n* <span pulumi-lang-nodejs=\"`portRangeMin`\" pulumi-lang-dotnet=\"`PortRangeMin`\" pulumi-lang-go=\"`portRangeMin`\" pulumi-lang-python=\"`port_range_min`\" pulumi-lang-yaml=\"`portRangeMin`\" pulumi-lang-java=\"`portRangeMin`\">`port_range_min`</span> = 0\n* <span pulumi-lang-nodejs=\"`portRangeMax`\" pulumi-lang-dotnet=\"`PortRangeMax`\" pulumi-lang-go=\"`portRangeMax`\" pulumi-lang-python=\"`port_range_max`\" pulumi-lang-yaml=\"`portRangeMax`\" pulumi-lang-java=\"`portRangeMax`\">`port_range_max`</span> = 255\n\n### Echo\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst secgroup1 = new opentelekomcloud.NetworkingSecgroupV2(\"secgroup_1\", {\n    name: \"secgroup_1\",\n    description: \"My neutron security group\",\n});\nconst secgroupRuleIcmpEchoReply = new opentelekomcloud.NetworkingSecgroupRuleV2(\"secgroup_rule_icmp_echo_reply\", {\n    direction: \"ingress\",\n    ethertype: \"IPv4\",\n    protocol: \"icmp\",\n    portRangeMin: 0,\n    portRangeMax: 0,\n    remoteIpPrefix: \"0.0.0.0/0\",\n    securityGroupId: secgroup1.networkingSecgroupV2Id,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nsecgroup1 = opentelekomcloud.NetworkingSecgroupV2(\"secgroup_1\",\n    name=\"secgroup_1\",\n    description=\"My neutron security group\")\nsecgroup_rule_icmp_echo_reply = opentelekomcloud.NetworkingSecgroupRuleV2(\"secgroup_rule_icmp_echo_reply\",\n    direction=\"ingress\",\n    ethertype=\"IPv4\",\n    protocol=\"icmp\",\n    port_range_min=0,\n    port_range_max=0,\n    remote_ip_prefix=\"0.0.0.0/0\",\n    security_group_id=secgroup1.networking_secgroup_v2_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var secgroup1 = new Opentelekomcloud.NetworkingSecgroupV2(\"secgroup_1\", new()\n    {\n        Name = \"secgroup_1\",\n        Description = \"My neutron security group\",\n    });\n\n    var secgroupRuleIcmpEchoReply = new Opentelekomcloud.NetworkingSecgroupRuleV2(\"secgroup_rule_icmp_echo_reply\", new()\n    {\n        Direction = \"ingress\",\n        Ethertype = \"IPv4\",\n        Protocol = \"icmp\",\n        PortRangeMin = 0,\n        PortRangeMax = 0,\n        RemoteIpPrefix = \"0.0.0.0/0\",\n        SecurityGroupId = secgroup1.NetworkingSecgroupV2Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsecgroup1, err := opentelekomcloud.NewNetworkingSecgroupV2(ctx, \"secgroup_1\", &opentelekomcloud.NetworkingSecgroupV2Args{\n\t\t\tName:        pulumi.String(\"secgroup_1\"),\n\t\t\tDescription: pulumi.String(\"My neutron security group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewNetworkingSecgroupRuleV2(ctx, \"secgroup_rule_icmp_echo_reply\", &opentelekomcloud.NetworkingSecgroupRuleV2Args{\n\t\t\tDirection:       pulumi.String(\"ingress\"),\n\t\t\tEthertype:       pulumi.String(\"IPv4\"),\n\t\t\tProtocol:        pulumi.String(\"icmp\"),\n\t\t\tPortRangeMin:    pulumi.Float64(0),\n\t\t\tPortRangeMax:    pulumi.Float64(0),\n\t\t\tRemoteIpPrefix:  pulumi.String(\"0.0.0.0/0\"),\n\t\t\tSecurityGroupId: secgroup1.NetworkingSecgroupV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.NetworkingSecgroupV2;\nimport com.pulumi.opentelekomcloud.NetworkingSecgroupV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingSecgroupRuleV2;\nimport com.pulumi.opentelekomcloud.NetworkingSecgroupRuleV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var secgroup1 = new NetworkingSecgroupV2(\"secgroup1\", NetworkingSecgroupV2Args.builder()\n            .name(\"secgroup_1\")\n            .description(\"My neutron security group\")\n            .build());\n\n        var secgroupRuleIcmpEchoReply = new NetworkingSecgroupRuleV2(\"secgroupRuleIcmpEchoReply\", NetworkingSecgroupRuleV2Args.builder()\n            .direction(\"ingress\")\n            .ethertype(\"IPv4\")\n            .protocol(\"icmp\")\n            .portRangeMin(0.0)\n            .portRangeMax(0.0)\n            .remoteIpPrefix(\"0.0.0.0/0\")\n            .securityGroupId(secgroup1.networkingSecgroupV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  secgroup1:\n    type: opentelekomcloud:NetworkingSecgroupV2\n    name: secgroup_1\n    properties:\n      name: secgroup_1\n      description: My neutron security group\n  secgroupRuleIcmpEchoReply:\n    type: opentelekomcloud:NetworkingSecgroupRuleV2\n    name: secgroup_rule_icmp_echo_reply\n    properties:\n      direction: ingress\n      ethertype: IPv4\n      protocol: icmp\n      portRangeMin: 0\n      portRangeMax: 0\n      remoteIpPrefix: 0.0.0.0/0\n      securityGroupId: ${secgroup1.networkingSecgroupV2Id}\n```\n<!--End PulumiCodeChooser -->\n\n### Any\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst secgroup1 = new opentelekomcloud.NetworkingSecgroupV2(\"secgroup_1\", {\n    name: \"secgroup_1\",\n    description: \"My neutron security group\",\n});\nconst secgroupRuleIcmpAny = new opentelekomcloud.NetworkingSecgroupRuleV2(\"secgroup_rule_icmp_any\", {\n    direction: \"ingress\",\n    ethertype: \"IPv4\",\n    protocol: \"icmp\",\n    portRangeMin: 0,\n    portRangeMax: 255,\n    remoteIpPrefix: \"0.0.0.0/0\",\n    securityGroupId: secgroup1.networkingSecgroupV2Id,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nsecgroup1 = opentelekomcloud.NetworkingSecgroupV2(\"secgroup_1\",\n    name=\"secgroup_1\",\n    description=\"My neutron security group\")\nsecgroup_rule_icmp_any = opentelekomcloud.NetworkingSecgroupRuleV2(\"secgroup_rule_icmp_any\",\n    direction=\"ingress\",\n    ethertype=\"IPv4\",\n    protocol=\"icmp\",\n    port_range_min=0,\n    port_range_max=255,\n    remote_ip_prefix=\"0.0.0.0/0\",\n    security_group_id=secgroup1.networking_secgroup_v2_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var secgroup1 = new Opentelekomcloud.NetworkingSecgroupV2(\"secgroup_1\", new()\n    {\n        Name = \"secgroup_1\",\n        Description = \"My neutron security group\",\n    });\n\n    var secgroupRuleIcmpAny = new Opentelekomcloud.NetworkingSecgroupRuleV2(\"secgroup_rule_icmp_any\", new()\n    {\n        Direction = \"ingress\",\n        Ethertype = \"IPv4\",\n        Protocol = \"icmp\",\n        PortRangeMin = 0,\n        PortRangeMax = 255,\n        RemoteIpPrefix = \"0.0.0.0/0\",\n        SecurityGroupId = secgroup1.NetworkingSecgroupV2Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsecgroup1, err := opentelekomcloud.NewNetworkingSecgroupV2(ctx, \"secgroup_1\", &opentelekomcloud.NetworkingSecgroupV2Args{\n\t\t\tName:        pulumi.String(\"secgroup_1\"),\n\t\t\tDescription: pulumi.String(\"My neutron security group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewNetworkingSecgroupRuleV2(ctx, \"secgroup_rule_icmp_any\", &opentelekomcloud.NetworkingSecgroupRuleV2Args{\n\t\t\tDirection:       pulumi.String(\"ingress\"),\n\t\t\tEthertype:       pulumi.String(\"IPv4\"),\n\t\t\tProtocol:        pulumi.String(\"icmp\"),\n\t\t\tPortRangeMin:    pulumi.Float64(0),\n\t\t\tPortRangeMax:    pulumi.Float64(255),\n\t\t\tRemoteIpPrefix:  pulumi.String(\"0.0.0.0/0\"),\n\t\t\tSecurityGroupId: secgroup1.NetworkingSecgroupV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.NetworkingSecgroupV2;\nimport com.pulumi.opentelekomcloud.NetworkingSecgroupV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingSecgroupRuleV2;\nimport com.pulumi.opentelekomcloud.NetworkingSecgroupRuleV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var secgroup1 = new NetworkingSecgroupV2(\"secgroup1\", NetworkingSecgroupV2Args.builder()\n            .name(\"secgroup_1\")\n            .description(\"My neutron security group\")\n            .build());\n\n        var secgroupRuleIcmpAny = new NetworkingSecgroupRuleV2(\"secgroupRuleIcmpAny\", NetworkingSecgroupRuleV2Args.builder()\n            .direction(\"ingress\")\n            .ethertype(\"IPv4\")\n            .protocol(\"icmp\")\n            .portRangeMin(0.0)\n            .portRangeMax(255.0)\n            .remoteIpPrefix(\"0.0.0.0/0\")\n            .securityGroupId(secgroup1.networkingSecgroupV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  secgroup1:\n    type: opentelekomcloud:NetworkingSecgroupV2\n    name: secgroup_1\n    properties:\n      name: secgroup_1\n      description: My neutron security group\n  secgroupRuleIcmpAny:\n    type: opentelekomcloud:NetworkingSecgroupRuleV2\n    name: secgroup_rule_icmp_any\n    properties:\n      direction: ingress\n      ethertype: IPv4\n      protocol: icmp\n      portRangeMin: 0\n      portRangeMax: 255\n      remoteIpPrefix: 0.0.0.0/0\n      securityGroupId: ${secgroup1.networkingSecgroupV2Id}\n```\n<!--End PulumiCodeChooser -->\n\n### Ipv6\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst secgroup1 = new opentelekomcloud.NetworkingSecgroupV2(\"secgroup_1\", {\n    name: \"secgroup_1\",\n    description: \"My neutron security group\",\n});\nconst secgroupRuleV6 = new opentelekomcloud.NetworkingSecgroupRuleV2(\"secgroup_rule_v6\", {\n    direction: \"ingress\",\n    ethertype: \"IPv6\",\n    portRangeMax: 8080,\n    portRangeMin: 8080,\n    protocol: \"tcp\",\n    remoteGroupId: secgroup1.networkingSecgroupV2Id,\n    securityGroupId: secgroup2.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nsecgroup1 = opentelekomcloud.NetworkingSecgroupV2(\"secgroup_1\",\n    name=\"secgroup_1\",\n    description=\"My neutron security group\")\nsecgroup_rule_v6 = opentelekomcloud.NetworkingSecgroupRuleV2(\"secgroup_rule_v6\",\n    direction=\"ingress\",\n    ethertype=\"IPv6\",\n    port_range_max=8080,\n    port_range_min=8080,\n    protocol=\"tcp\",\n    remote_group_id=secgroup1.networking_secgroup_v2_id,\n    security_group_id=secgroup2[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var secgroup1 = new Opentelekomcloud.NetworkingSecgroupV2(\"secgroup_1\", new()\n    {\n        Name = \"secgroup_1\",\n        Description = \"My neutron security group\",\n    });\n\n    var secgroupRuleV6 = new Opentelekomcloud.NetworkingSecgroupRuleV2(\"secgroup_rule_v6\", new()\n    {\n        Direction = \"ingress\",\n        Ethertype = \"IPv6\",\n        PortRangeMax = 8080,\n        PortRangeMin = 8080,\n        Protocol = \"tcp\",\n        RemoteGroupId = secgroup1.NetworkingSecgroupV2Id,\n        SecurityGroupId = secgroup2.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsecgroup1, err := opentelekomcloud.NewNetworkingSecgroupV2(ctx, \"secgroup_1\", &opentelekomcloud.NetworkingSecgroupV2Args{\n\t\t\tName:        pulumi.String(\"secgroup_1\"),\n\t\t\tDescription: pulumi.String(\"My neutron security group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewNetworkingSecgroupRuleV2(ctx, \"secgroup_rule_v6\", &opentelekomcloud.NetworkingSecgroupRuleV2Args{\n\t\t\tDirection:       pulumi.String(\"ingress\"),\n\t\t\tEthertype:       pulumi.String(\"IPv6\"),\n\t\t\tPortRangeMax:    pulumi.Float64(8080),\n\t\t\tPortRangeMin:    pulumi.Float64(8080),\n\t\t\tProtocol:        pulumi.String(\"tcp\"),\n\t\t\tRemoteGroupId:   secgroup1.NetworkingSecgroupV2Id,\n\t\t\tSecurityGroupId: pulumi.Any(secgroup2.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.NetworkingSecgroupV2;\nimport com.pulumi.opentelekomcloud.NetworkingSecgroupV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingSecgroupRuleV2;\nimport com.pulumi.opentelekomcloud.NetworkingSecgroupRuleV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var secgroup1 = new NetworkingSecgroupV2(\"secgroup1\", NetworkingSecgroupV2Args.builder()\n            .name(\"secgroup_1\")\n            .description(\"My neutron security group\")\n            .build());\n\n        var secgroupRuleV6 = new NetworkingSecgroupRuleV2(\"secgroupRuleV6\", NetworkingSecgroupRuleV2Args.builder()\n            .direction(\"ingress\")\n            .ethertype(\"IPv6\")\n            .portRangeMax(8080.0)\n            .portRangeMin(8080.0)\n            .protocol(\"tcp\")\n            .remoteGroupId(secgroup1.networkingSecgroupV2Id())\n            .securityGroupId(secgroup2.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  secgroup1:\n    type: opentelekomcloud:NetworkingSecgroupV2\n    name: secgroup_1\n    properties:\n      name: secgroup_1\n      description: My neutron security group\n  secgroupRuleV6:\n    type: opentelekomcloud:NetworkingSecgroupRuleV2\n    name: secgroup_rule_v6\n    properties:\n      direction: ingress\n      ethertype: IPv6\n      portRangeMax: 8080\n      portRangeMin: 8080\n      protocol: tcp\n      remoteGroupId: ${secgroup1.networkingSecgroupV2Id}\n      securityGroupId: ${secgroup2.id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nSecurity Group Rules can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/networkingSecgroupRuleV2:NetworkingSecgroupRuleV2 secgroup_rule_1 aeb68ee3-6e9d-4256-955c-9584a6212745\n```\n\n","inputProperties":{"description":{"description":"A description of the rule. Changing this creates a new security group rule.\n","type":"string"},"direction":{"description":"The direction of the rule, valid values are <span pulumi-lang-nodejs=\"`ingress`\" pulumi-lang-dotnet=\"`Ingress`\" pulumi-lang-go=\"`ingress`\" pulumi-lang-python=\"`ingress`\" pulumi-lang-yaml=\"`ingress`\" pulumi-lang-java=\"`ingress`\">`ingress`</span>\nor <span pulumi-lang-nodejs=\"`egress`\" pulumi-lang-dotnet=\"`Egress`\" pulumi-lang-go=\"`egress`\" pulumi-lang-python=\"`egress`\" pulumi-lang-yaml=\"`egress`\" pulumi-lang-java=\"`egress`\">`egress`</span>. Changing this creates a new security group rule.\n","type":"string"},"ethertype":{"description":"The layer 3 protocol type, valid values are `IPv4`\nor `IPv6`. Changing this creates a new security group rule.\n","type":"string"},"networkingSecgroupRuleV2Id":{"type":"string"},"portRangeMax":{"description":"The higher part of the allowed port range, valid\ninteger value needs to be between 1 and 65535. Changing this creates a new\nsecurity group rule. When ICMP is used, the value is the ICMP code\n(The value ranges from 0 to 255 when it indicates the code).\n","type":"number"},"portRangeMin":{"description":"The lower part of the allowed port range, valid\ninteger value needs to be between 1 and 65535. Changing this creates a new\nsecurity group rule. When ICMP is used, the value is the ICMP code\n(The value ranges from 0 to 255 when it indicates the code).\n","type":"number"},"protocol":{"description":"The layer 4 protocol type, valid values are following. Changing this creates a new security group rule.\nThis is required if you want to specify a port range.\n","type":"string"},"region":{"type":"string"},"remoteGroupId":{"description":"The remote group id, the value needs to be an\nOpenTelekomCloud ID of a security group in the same tenant. Changing this creates\na new security group rule.\n","type":"string"},"remoteIpPrefix":{"description":"The remote CIDR, the value needs to be a valid\nCIDR (i.e. 192.168.0.0/16). Changing this creates a new security group rule.\n","type":"string"},"securityGroupId":{"description":"The security group id the rule should belong\nto, the value needs to be an OpenTelekomCloud ID of a security group in the same\ntenant. Changing this creates a new security group rule.\n","type":"string"},"tenantId":{"description":"The owner of the security group. Required if admin\nwants to create a port for another tenant. Changing this creates a new\nsecurity group rule.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingSecgroupRuleV2Timeouts:NetworkingSecgroupRuleV2Timeouts"}},"properties":{"description":{"description":"A description of the rule. Changing this creates a new security group rule.\n","type":"string"},"direction":{"description":"The direction of the rule, valid values are <span pulumi-lang-nodejs=\"`ingress`\" pulumi-lang-dotnet=\"`Ingress`\" pulumi-lang-go=\"`ingress`\" pulumi-lang-python=\"`ingress`\" pulumi-lang-yaml=\"`ingress`\" pulumi-lang-java=\"`ingress`\">`ingress`</span>\nor <span pulumi-lang-nodejs=\"`egress`\" pulumi-lang-dotnet=\"`Egress`\" pulumi-lang-go=\"`egress`\" pulumi-lang-python=\"`egress`\" pulumi-lang-yaml=\"`egress`\" pulumi-lang-java=\"`egress`\">`egress`</span>. Changing this creates a new security group rule.\n","type":"string"},"ethertype":{"description":"The layer 3 protocol type, valid values are `IPv4`\nor `IPv6`. Changing this creates a new security group rule.\n","type":"string"},"networkingSecgroupRuleV2Id":{"type":"string"},"portRangeMax":{"description":"The higher part of the allowed port range, valid\ninteger value needs to be between 1 and 65535. Changing this creates a new\nsecurity group rule. When ICMP is used, the value is the ICMP code\n(The value ranges from 0 to 255 when it indicates the code).\n","type":"number"},"portRangeMin":{"description":"The lower part of the allowed port range, valid\ninteger value needs to be between 1 and 65535. Changing this creates a new\nsecurity group rule. When ICMP is used, the value is the ICMP code\n(The value ranges from 0 to 255 when it indicates the code).\n","type":"number"},"protocol":{"description":"The layer 4 protocol type, valid values are following. Changing this creates a new security group rule.\nThis is required if you want to specify a port range.\n","type":"string"},"region":{"type":"string"},"remoteGroupId":{"description":"The remote group id, the value needs to be an\nOpenTelekomCloud ID of a security group in the same tenant. Changing this creates\na new security group rule.\n","type":"string"},"remoteIpPrefix":{"description":"The remote CIDR, the value needs to be a valid\nCIDR (i.e. 192.168.0.0/16). Changing this creates a new security group rule.\n","type":"string"},"securityGroupId":{"description":"The security group id the rule should belong\nto, the value needs to be an OpenTelekomCloud ID of a security group in the same\ntenant. Changing this creates a new security group rule.\n","type":"string"},"tenantId":{"description":"The owner of the security group. Required if admin\nwants to create a port for another tenant. Changing this creates a new\nsecurity group rule.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingSecgroupRuleV2Timeouts:NetworkingSecgroupRuleV2Timeouts"}},"required":["direction","ethertype","networkingSecgroupRuleV2Id","region","remoteGroupId","remoteIpPrefix","securityGroupId","tenantId"],"requiredInputs":["direction","ethertype","securityGroupId"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkingSecgroupRuleV2 resources.\n","properties":{"description":{"description":"A description of the rule. Changing this creates a new security group rule.\n","type":"string"},"direction":{"description":"The direction of the rule, valid values are <span pulumi-lang-nodejs=\"`ingress`\" pulumi-lang-dotnet=\"`Ingress`\" pulumi-lang-go=\"`ingress`\" pulumi-lang-python=\"`ingress`\" pulumi-lang-yaml=\"`ingress`\" pulumi-lang-java=\"`ingress`\">`ingress`</span>\nor <span pulumi-lang-nodejs=\"`egress`\" pulumi-lang-dotnet=\"`Egress`\" pulumi-lang-go=\"`egress`\" pulumi-lang-python=\"`egress`\" pulumi-lang-yaml=\"`egress`\" pulumi-lang-java=\"`egress`\">`egress`</span>. Changing this creates a new security group rule.\n","type":"string"},"ethertype":{"description":"The layer 3 protocol type, valid values are `IPv4`\nor `IPv6`. Changing this creates a new security group rule.\n","type":"string"},"networkingSecgroupRuleV2Id":{"type":"string"},"portRangeMax":{"description":"The higher part of the allowed port range, valid\ninteger value needs to be between 1 and 65535. Changing this creates a new\nsecurity group rule. When ICMP is used, the value is the ICMP code\n(The value ranges from 0 to 255 when it indicates the code).\n","type":"number"},"portRangeMin":{"description":"The lower part of the allowed port range, valid\ninteger value needs to be between 1 and 65535. Changing this creates a new\nsecurity group rule. When ICMP is used, the value is the ICMP code\n(The value ranges from 0 to 255 when it indicates the code).\n","type":"number"},"protocol":{"description":"The layer 4 protocol type, valid values are following. Changing this creates a new security group rule.\nThis is required if you want to specify a port range.\n","type":"string"},"region":{"type":"string"},"remoteGroupId":{"description":"The remote group id, the value needs to be an\nOpenTelekomCloud ID of a security group in the same tenant. Changing this creates\na new security group rule.\n","type":"string"},"remoteIpPrefix":{"description":"The remote CIDR, the value needs to be a valid\nCIDR (i.e. 192.168.0.0/16). Changing this creates a new security group rule.\n","type":"string"},"securityGroupId":{"description":"The security group id the rule should belong\nto, the value needs to be an OpenTelekomCloud ID of a security group in the same\ntenant. Changing this creates a new security group rule.\n","type":"string"},"tenantId":{"description":"The owner of the security group. Required if admin\nwants to create a port for another tenant. Changing this creates a new\nsecurity group rule.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingSecgroupRuleV2Timeouts:NetworkingSecgroupRuleV2Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/networkingSecgroupV2:NetworkingSecgroupV2":{"description":"\n\n## Import\n\nSecurity Groups can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/networkingSecgroupV2:NetworkingSecgroupV2 secgroup_1 38809219-5e8a-4852-9139-6f461c90e8bc\n```\n\n","inputProperties":{"deleteDefaultRules":{"description":"Whether or not to delete the default\negress security rules. This is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> by default.\n","type":"boolean"},"description":{"description":"A unique name for the security group.\n","type":"string"},"name":{"description":"A unique name for the security group.\n","type":"string"},"networkingSecgroupV2Id":{"type":"string"},"region":{"type":"string"},"tenantId":{"description":"The owner of the security group. Required if admin\nwants to create a port for another tenant. Changing this creates a new\nsecurity group.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingSecgroupV2Timeouts:NetworkingSecgroupV2Timeouts"}},"properties":{"deleteDefaultRules":{"description":"Whether or not to delete the default\negress security rules. This is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> by default.\n","type":"boolean"},"description":{"description":"A unique name for the security group.\n","type":"string"},"name":{"description":"A unique name for the security group.\n","type":"string"},"networkingSecgroupV2Id":{"type":"string"},"region":{"type":"string"},"tenantId":{"description":"The owner of the security group. Required if admin\nwants to create a port for another tenant. Changing this creates a new\nsecurity group.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingSecgroupV2Timeouts:NetworkingSecgroupV2Timeouts"}},"required":["description","name","networkingSecgroupV2Id","region","tenantId"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkingSecgroupV2 resources.\n","properties":{"deleteDefaultRules":{"description":"Whether or not to delete the default\negress security rules. This is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span> by default.\n","type":"boolean"},"description":{"description":"A unique name for the security group.\n","type":"string"},"name":{"description":"A unique name for the security group.\n","type":"string"},"networkingSecgroupV2Id":{"type":"string"},"region":{"type":"string"},"tenantId":{"description":"The owner of the security group. Required if admin\nwants to create a port for another tenant. Changing this creates a new\nsecurity group.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingSecgroupV2Timeouts:NetworkingSecgroupV2Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/networkingSubnetV2:NetworkingSubnetV2":{"description":"Up-to-date reference of API arguments for VPC subnet you can get at\n[documentation portal](https://docs.otc.t-systems.com/virtual-private-cloud/api-ref/native_openstack_neutron_apis_v2.0/subnet)\n\nManages a V2 Neutron subnet resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst network1 = new opentelekomcloud.NetworkingNetworkV2(\"network_1\", {\n    name: \"tf_test_network\",\n    adminStateUp: \"true\",\n});\nconst subnet1 = new opentelekomcloud.NetworkingSubnetV2(\"subnet_1\", {\n    networkId: network1.networkingNetworkV2Id,\n    cidr: \"192.168.199.0/24\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nnetwork1 = opentelekomcloud.NetworkingNetworkV2(\"network_1\",\n    name=\"tf_test_network\",\n    admin_state_up=\"true\")\nsubnet1 = opentelekomcloud.NetworkingSubnetV2(\"subnet_1\",\n    network_id=network1.networking_network_v2_id,\n    cidr=\"192.168.199.0/24\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var network1 = new Opentelekomcloud.NetworkingNetworkV2(\"network_1\", new()\n    {\n        Name = \"tf_test_network\",\n        AdminStateUp = \"true\",\n    });\n\n    var subnet1 = new Opentelekomcloud.NetworkingSubnetV2(\"subnet_1\", new()\n    {\n        NetworkId = network1.NetworkingNetworkV2Id,\n        Cidr = \"192.168.199.0/24\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := opentelekomcloud.NewNetworkingNetworkV2(ctx, \"network_1\", &opentelekomcloud.NetworkingNetworkV2Args{\n\t\t\tName:         pulumi.String(\"tf_test_network\"),\n\t\t\tAdminStateUp: pulumi.String(\"true\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewNetworkingSubnetV2(ctx, \"subnet_1\", &opentelekomcloud.NetworkingSubnetV2Args{\n\t\t\tNetworkId: network1.NetworkingNetworkV2Id,\n\t\t\tCidr:      pulumi.String(\"192.168.199.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.NetworkingNetworkV2;\nimport com.pulumi.opentelekomcloud.NetworkingNetworkV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingSubnetV2;\nimport com.pulumi.opentelekomcloud.NetworkingSubnetV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var network1 = new NetworkingNetworkV2(\"network1\", NetworkingNetworkV2Args.builder()\n            .name(\"tf_test_network\")\n            .adminStateUp(\"true\")\n            .build());\n\n        var subnet1 = new NetworkingSubnetV2(\"subnet1\", NetworkingSubnetV2Args.builder()\n            .networkId(network1.networkingNetworkV2Id())\n            .cidr(\"192.168.199.0/24\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  network1:\n    type: opentelekomcloud:NetworkingNetworkV2\n    name: network_1\n    properties:\n      name: tf_test_network\n      adminStateUp: 'true'\n  subnet1:\n    type: opentelekomcloud:NetworkingSubnetV2\n    name: subnet_1\n    properties:\n      networkId: ${network1.networkingNetworkV2Id}\n      cidr: 192.168.199.0/24\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nSubnets can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/networkingSubnetV2:NetworkingSubnetV2 subnet_1 da4faf16-5546-41e4-8330-4d0002b74048\n```\n\n","inputProperties":{"allocationPools":{"description":"An array of sub-ranges of CIDR available for\ndynamic allocation to ports. The<span pulumi-lang-nodejs=\" allocationPool \" pulumi-lang-dotnet=\" AllocationPool \" pulumi-lang-go=\" allocationPool \" pulumi-lang-python=\" allocation_pool \" pulumi-lang-yaml=\" allocationPool \" pulumi-lang-java=\" allocationPool \"> allocation_pool </span>object structure is\ndocumented below. Changing this creates a new subnet.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingSubnetV2AllocationPool:NetworkingSubnetV2AllocationPool"},"type":"array"},"cidr":{"description":"CIDR representing IP range for this subnet, based on IP\nversion. Changing this creates a new subnet.\n","type":"string"},"dnsNameservers":{"description":"An array of DNS name server names used by hosts\nin this subnet. Changing this updates the DNS name servers for the existing\nsubnet. Default value is `[\"100.125.4.25\", \"100.125.129.199\"]`\n","items":{"type":"string"},"type":"array"},"enableDhcp":{"description":"The administrative state of the network.\nAcceptable values are \"true\" and \"false\". Changing this value enables or\ndisables the DHCP capabilities of the existing subnet. Defaults to true.\n","type":"boolean"},"gatewayIp":{"description":"Default gateway used by devices in this subnet.\nLeaving this blank and not setting <span pulumi-lang-nodejs=\"`noGateway`\" pulumi-lang-dotnet=\"`NoGateway`\" pulumi-lang-go=\"`noGateway`\" pulumi-lang-python=\"`no_gateway`\" pulumi-lang-yaml=\"`noGateway`\" pulumi-lang-java=\"`noGateway`\">`no_gateway`</span> will cause a default\ngateway of `.1` to be used. Changing this updates the gateway IP of the\nexisting subnet.\n","type":"string"},"hostRoutes":{"description":"An array of routes that should be used by devices\nwith IPs from this subnet (not including local subnet route). The<span pulumi-lang-nodejs=\" hostRoute\n\" pulumi-lang-dotnet=\" HostRoute\n\" pulumi-lang-go=\" hostRoute\n\" pulumi-lang-python=\" host_route\n\" pulumi-lang-yaml=\" hostRoute\n\" pulumi-lang-java=\" hostRoute\n\"> host_route\n</span>object structure is documented below. Changing this updates the host routes\nfor the existing subnet.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingSubnetV2HostRoute:NetworkingSubnetV2HostRoute"},"type":"array"},"ipVersion":{"description":"IP version, either 4 (default) or 6. Changing this creates a\nnew subnet.\n","type":"number"},"name":{"description":"The name of the subnet. Changing this updates the name of\nthe existing subnet.\n","type":"string"},"networkId":{"description":"The UUID of the parent network. Changing this\ncreates a new subnet.\n","type":"string"},"networkingSubnetV2Id":{"type":"string"},"noGateway":{"description":"Do not set a gateway IP on this subnet. Changing\nthis removes or adds a default gateway IP of the existing subnet.\n","type":"boolean"},"region":{"type":"string"},"tenantId":{"description":"The owner of the subnet. Required if admin wants to\ncreate a subnet for another tenant. Changing this creates a new subnet.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingSubnetV2Timeouts:NetworkingSubnetV2Timeouts"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options.\n","type":"object"}},"properties":{"allocationPools":{"description":"An array of sub-ranges of CIDR available for\ndynamic allocation to ports. The<span pulumi-lang-nodejs=\" allocationPool \" pulumi-lang-dotnet=\" AllocationPool \" pulumi-lang-go=\" allocationPool \" pulumi-lang-python=\" allocation_pool \" pulumi-lang-yaml=\" allocationPool \" pulumi-lang-java=\" allocationPool \"> allocation_pool </span>object structure is\ndocumented below. Changing this creates a new subnet.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingSubnetV2AllocationPool:NetworkingSubnetV2AllocationPool"},"type":"array"},"cidr":{"description":"CIDR representing IP range for this subnet, based on IP\nversion. Changing this creates a new subnet.\n","type":"string"},"dnsNameservers":{"description":"An array of DNS name server names used by hosts\nin this subnet. Changing this updates the DNS name servers for the existing\nsubnet. Default value is `[\"100.125.4.25\", \"100.125.129.199\"]`\n","items":{"type":"string"},"type":"array"},"enableDhcp":{"description":"The administrative state of the network.\nAcceptable values are \"true\" and \"false\". Changing this value enables or\ndisables the DHCP capabilities of the existing subnet. Defaults to true.\n","type":"boolean"},"gatewayIp":{"description":"Default gateway used by devices in this subnet.\nLeaving this blank and not setting <span pulumi-lang-nodejs=\"`noGateway`\" pulumi-lang-dotnet=\"`NoGateway`\" pulumi-lang-go=\"`noGateway`\" pulumi-lang-python=\"`no_gateway`\" pulumi-lang-yaml=\"`noGateway`\" pulumi-lang-java=\"`noGateway`\">`no_gateway`</span> will cause a default\ngateway of `.1` to be used. Changing this updates the gateway IP of the\nexisting subnet.\n","type":"string"},"hostRoutes":{"description":"An array of routes that should be used by devices\nwith IPs from this subnet (not including local subnet route). The<span pulumi-lang-nodejs=\" hostRoute\n\" pulumi-lang-dotnet=\" HostRoute\n\" pulumi-lang-go=\" hostRoute\n\" pulumi-lang-python=\" host_route\n\" pulumi-lang-yaml=\" hostRoute\n\" pulumi-lang-java=\" hostRoute\n\"> host_route\n</span>object structure is documented below. Changing this updates the host routes\nfor the existing subnet.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingSubnetV2HostRoute:NetworkingSubnetV2HostRoute"},"type":"array"},"ipVersion":{"description":"IP version, either 4 (default) or 6. Changing this creates a\nnew subnet.\n","type":"number"},"name":{"description":"The name of the subnet. Changing this updates the name of\nthe existing subnet.\n","type":"string"},"networkId":{"description":"The UUID of the parent network. Changing this\ncreates a new subnet.\n","type":"string"},"networkingSubnetV2Id":{"type":"string"},"noGateway":{"description":"Do not set a gateway IP on this subnet. Changing\nthis removes or adds a default gateway IP of the existing subnet.\n","type":"boolean"},"region":{"type":"string"},"tenantId":{"description":"The owner of the subnet. Required if admin wants to\ncreate a subnet for another tenant. Changing this creates a new subnet.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingSubnetV2Timeouts:NetworkingSubnetV2Timeouts"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options.\n","type":"object"}},"required":["cidr","gatewayIp","name","networkId","networkingSubnetV2Id","region","tenantId"],"requiredInputs":["cidr","networkId"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkingSubnetV2 resources.\n","properties":{"allocationPools":{"description":"An array of sub-ranges of CIDR available for\ndynamic allocation to ports. The<span pulumi-lang-nodejs=\" allocationPool \" pulumi-lang-dotnet=\" AllocationPool \" pulumi-lang-go=\" allocationPool \" pulumi-lang-python=\" allocation_pool \" pulumi-lang-yaml=\" allocationPool \" pulumi-lang-java=\" allocationPool \"> allocation_pool </span>object structure is\ndocumented below. Changing this creates a new subnet.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingSubnetV2AllocationPool:NetworkingSubnetV2AllocationPool"},"type":"array"},"cidr":{"description":"CIDR representing IP range for this subnet, based on IP\nversion. Changing this creates a new subnet.\n","type":"string"},"dnsNameservers":{"description":"An array of DNS name server names used by hosts\nin this subnet. Changing this updates the DNS name servers for the existing\nsubnet. Default value is `[\"100.125.4.25\", \"100.125.129.199\"]`\n","items":{"type":"string"},"type":"array"},"enableDhcp":{"description":"The administrative state of the network.\nAcceptable values are \"true\" and \"false\". Changing this value enables or\ndisables the DHCP capabilities of the existing subnet. Defaults to true.\n","type":"boolean"},"gatewayIp":{"description":"Default gateway used by devices in this subnet.\nLeaving this blank and not setting <span pulumi-lang-nodejs=\"`noGateway`\" pulumi-lang-dotnet=\"`NoGateway`\" pulumi-lang-go=\"`noGateway`\" pulumi-lang-python=\"`no_gateway`\" pulumi-lang-yaml=\"`noGateway`\" pulumi-lang-java=\"`noGateway`\">`no_gateway`</span> will cause a default\ngateway of `.1` to be used. Changing this updates the gateway IP of the\nexisting subnet.\n","type":"string"},"hostRoutes":{"description":"An array of routes that should be used by devices\nwith IPs from this subnet (not including local subnet route). The<span pulumi-lang-nodejs=\" hostRoute\n\" pulumi-lang-dotnet=\" HostRoute\n\" pulumi-lang-go=\" hostRoute\n\" pulumi-lang-python=\" host_route\n\" pulumi-lang-yaml=\" hostRoute\n\" pulumi-lang-java=\" hostRoute\n\"> host_route\n</span>object structure is documented below. Changing this updates the host routes\nfor the existing subnet.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingSubnetV2HostRoute:NetworkingSubnetV2HostRoute"},"type":"array"},"ipVersion":{"description":"IP version, either 4 (default) or 6. Changing this creates a\nnew subnet.\n","type":"number"},"name":{"description":"The name of the subnet. Changing this updates the name of\nthe existing subnet.\n","type":"string"},"networkId":{"description":"The UUID of the parent network. Changing this\ncreates a new subnet.\n","type":"string"},"networkingSubnetV2Id":{"type":"string"},"noGateway":{"description":"Do not set a gateway IP on this subnet. Changing\nthis removes or adds a default gateway IP of the existing subnet.\n","type":"boolean"},"region":{"type":"string"},"tenantId":{"description":"The owner of the subnet. Required if admin wants to\ncreate a subnet for another tenant. Changing this creates a new subnet.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FNetworkingSubnetV2Timeouts:NetworkingSubnetV2Timeouts"},"valueSpecs":{"additionalProperties":{"type":"string"},"description":"Map of additional options.\n","type":"object"}},"type":"object"},"type":"object"},"opentelekomcloud:index/networkingVipAssociateV2:NetworkingVipAssociateV2":{"description":"Manages a V2 vip associate resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst network1 = new opentelekomcloud.NetworkingNetworkV2(\"network_1\", {\n    name: \"network_1\",\n    adminStateUp: \"true\",\n});\nconst subnet1 = new opentelekomcloud.NetworkingSubnetV2(\"subnet_1\", {\n    name: \"subnet_1\",\n    cidr: \"192.168.199.0/24\",\n    ipVersion: 4,\n    networkId: network1.networkingNetworkV2Id,\n});\nconst router1 = new opentelekomcloud.NetworkingRouterV2(\"router_1\", {\n    name: \"router_1\",\n    externalGateway: \"0a2228f2-7f8a-45f1-8e09-9039e1d09975\",\n});\nconst routerInterface1 = new opentelekomcloud.NetworkingRouterInterfaceV2(\"router_interface_1\", {\n    routerId: router1.networkingRouterV2Id,\n    subnetId: subnet1.networkingSubnetV2Id,\n});\nconst port1 = new opentelekomcloud.NetworkingPortV2(\"port_1\", {\n    name: \"port_1\",\n    adminStateUp: true,\n    networkId: network1.networkingNetworkV2Id,\n    fixedIp: {\n        subnetId: subnet1.networkingSubnetV2Id,\n    },\n});\nconst instance1 = new opentelekomcloud.ComputeInstanceV2(\"instance_1\", {\n    name: \"instance_1\",\n    securityGroups: [\"default\"],\n    networks: [{\n        port: port1.networkingPortV2Id,\n    }],\n});\nconst port2 = new opentelekomcloud.NetworkingPortV2(\"port_2\", {\n    name: \"port_2\",\n    adminStateUp: true,\n    networkId: network1.networkingNetworkV2Id,\n    fixedIp: {\n        subnetId: subnet1.networkingSubnetV2Id,\n    },\n});\nconst instance2 = new opentelekomcloud.ComputeInstanceV2(\"instance_2\", {\n    name: \"instance_2\",\n    securityGroups: [\"default\"],\n    networks: [{\n        port: port1.networkingPortV2Id,\n    }],\n});\nconst vip1 = new opentelekomcloud.NetworkingVipV2(\"vip_1\", {\n    networkId: network1.networkingNetworkV2Id,\n    subnetId: subnet1.networkingSubnetV2Id,\n});\nconst vipAssociate1 = new opentelekomcloud.NetworkingVipAssociateV2(\"vip_associate_1\", {\n    vipId: vip1.networkingVipV2Id,\n    portIds: [\n        port1.networkingPortV2Id,\n        port2.networkingPortV2Id,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nnetwork1 = opentelekomcloud.NetworkingNetworkV2(\"network_1\",\n    name=\"network_1\",\n    admin_state_up=\"true\")\nsubnet1 = opentelekomcloud.NetworkingSubnetV2(\"subnet_1\",\n    name=\"subnet_1\",\n    cidr=\"192.168.199.0/24\",\n    ip_version=4,\n    network_id=network1.networking_network_v2_id)\nrouter1 = opentelekomcloud.NetworkingRouterV2(\"router_1\",\n    name=\"router_1\",\n    external_gateway=\"0a2228f2-7f8a-45f1-8e09-9039e1d09975\")\nrouter_interface1 = opentelekomcloud.NetworkingRouterInterfaceV2(\"router_interface_1\",\n    router_id=router1.networking_router_v2_id,\n    subnet_id=subnet1.networking_subnet_v2_id)\nport1 = opentelekomcloud.NetworkingPortV2(\"port_1\",\n    name=\"port_1\",\n    admin_state_up=True,\n    network_id=network1.networking_network_v2_id,\n    fixed_ip={\n        \"subnet_id\": subnet1.networking_subnet_v2_id,\n    })\ninstance1 = opentelekomcloud.ComputeInstanceV2(\"instance_1\",\n    name=\"instance_1\",\n    security_groups=[\"default\"],\n    networks=[{\n        \"port\": port1.networking_port_v2_id,\n    }])\nport2 = opentelekomcloud.NetworkingPortV2(\"port_2\",\n    name=\"port_2\",\n    admin_state_up=True,\n    network_id=network1.networking_network_v2_id,\n    fixed_ip={\n        \"subnet_id\": subnet1.networking_subnet_v2_id,\n    })\ninstance2 = opentelekomcloud.ComputeInstanceV2(\"instance_2\",\n    name=\"instance_2\",\n    security_groups=[\"default\"],\n    networks=[{\n        \"port\": port1.networking_port_v2_id,\n    }])\nvip1 = opentelekomcloud.NetworkingVipV2(\"vip_1\",\n    network_id=network1.networking_network_v2_id,\n    subnet_id=subnet1.networking_subnet_v2_id)\nvip_associate1 = opentelekomcloud.NetworkingVipAssociateV2(\"vip_associate_1\",\n    vip_id=vip1.networking_vip_v2_id,\n    port_ids=[\n        port1.networking_port_v2_id,\n        port2.networking_port_v2_id,\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var network1 = new Opentelekomcloud.NetworkingNetworkV2(\"network_1\", new()\n    {\n        Name = \"network_1\",\n        AdminStateUp = \"true\",\n    });\n\n    var subnet1 = new Opentelekomcloud.NetworkingSubnetV2(\"subnet_1\", new()\n    {\n        Name = \"subnet_1\",\n        Cidr = \"192.168.199.0/24\",\n        IpVersion = 4,\n        NetworkId = network1.NetworkingNetworkV2Id,\n    });\n\n    var router1 = new Opentelekomcloud.NetworkingRouterV2(\"router_1\", new()\n    {\n        Name = \"router_1\",\n        ExternalGateway = \"0a2228f2-7f8a-45f1-8e09-9039e1d09975\",\n    });\n\n    var routerInterface1 = new Opentelekomcloud.NetworkingRouterInterfaceV2(\"router_interface_1\", new()\n    {\n        RouterId = router1.NetworkingRouterV2Id,\n        SubnetId = subnet1.NetworkingSubnetV2Id,\n    });\n\n    var port1 = new Opentelekomcloud.NetworkingPortV2(\"port_1\", new()\n    {\n        Name = \"port_1\",\n        AdminStateUp = true,\n        NetworkId = network1.NetworkingNetworkV2Id,\n        FixedIp = new Opentelekomcloud.Inputs.NetworkingPortV2FixedIpArgs\n        {\n            SubnetId = subnet1.NetworkingSubnetV2Id,\n        },\n    });\n\n    var instance1 = new Opentelekomcloud.ComputeInstanceV2(\"instance_1\", new()\n    {\n        Name = \"instance_1\",\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n        Networks = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Port = port1.NetworkingPortV2Id,\n            },\n        },\n    });\n\n    var port2 = new Opentelekomcloud.NetworkingPortV2(\"port_2\", new()\n    {\n        Name = \"port_2\",\n        AdminStateUp = true,\n        NetworkId = network1.NetworkingNetworkV2Id,\n        FixedIp = new Opentelekomcloud.Inputs.NetworkingPortV2FixedIpArgs\n        {\n            SubnetId = subnet1.NetworkingSubnetV2Id,\n        },\n    });\n\n    var instance2 = new Opentelekomcloud.ComputeInstanceV2(\"instance_2\", new()\n    {\n        Name = \"instance_2\",\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n        Networks = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Port = port1.NetworkingPortV2Id,\n            },\n        },\n    });\n\n    var vip1 = new Opentelekomcloud.NetworkingVipV2(\"vip_1\", new()\n    {\n        NetworkId = network1.NetworkingNetworkV2Id,\n        SubnetId = subnet1.NetworkingSubnetV2Id,\n    });\n\n    var vipAssociate1 = new Opentelekomcloud.NetworkingVipAssociateV2(\"vip_associate_1\", new()\n    {\n        VipId = vip1.NetworkingVipV2Id,\n        PortIds = new[]\n        {\n            port1.NetworkingPortV2Id,\n            port2.NetworkingPortV2Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := opentelekomcloud.NewNetworkingNetworkV2(ctx, \"network_1\", &opentelekomcloud.NetworkingNetworkV2Args{\n\t\t\tName:         pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.String(\"true\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := opentelekomcloud.NewNetworkingSubnetV2(ctx, \"subnet_1\", &opentelekomcloud.NetworkingSubnetV2Args{\n\t\t\tName:      pulumi.String(\"subnet_1\"),\n\t\t\tCidr:      pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Float64(4),\n\t\t\tNetworkId: network1.NetworkingNetworkV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trouter1, err := opentelekomcloud.NewNetworkingRouterV2(ctx, \"router_1\", &opentelekomcloud.NetworkingRouterV2Args{\n\t\t\tName:            pulumi.String(\"router_1\"),\n\t\t\tExternalGateway: pulumi.String(\"0a2228f2-7f8a-45f1-8e09-9039e1d09975\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewNetworkingRouterInterfaceV2(ctx, \"router_interface_1\", &opentelekomcloud.NetworkingRouterInterfaceV2Args{\n\t\t\tRouterId: router1.NetworkingRouterV2Id,\n\t\t\tSubnetId: subnet1.NetworkingSubnetV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tport1, err := opentelekomcloud.NewNetworkingPortV2(ctx, \"port_1\", &opentelekomcloud.NetworkingPortV2Args{\n\t\t\tName:         pulumi.String(\"port_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t\tNetworkId:    network1.NetworkingNetworkV2Id,\n\t\t\tFixedIp: &opentelekomcloud.NetworkingPortV2FixedIpArgs{\n\t\t\t\tSubnetId: subnet1.NetworkingSubnetV2Id,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewComputeInstanceV2(ctx, \"instance_1\", &opentelekomcloud.ComputeInstanceV2Args{\n\t\t\tName: pulumi.String(\"instance_1\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tNetworks: opentelekomcloud.ComputeInstanceV2NetworkArray{\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tPort: port1.NetworkingPortV2Id,\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\tport2, err := opentelekomcloud.NewNetworkingPortV2(ctx, \"port_2\", &opentelekomcloud.NetworkingPortV2Args{\n\t\t\tName:         pulumi.String(\"port_2\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t\tNetworkId:    network1.NetworkingNetworkV2Id,\n\t\t\tFixedIp: &opentelekomcloud.NetworkingPortV2FixedIpArgs{\n\t\t\t\tSubnetId: subnet1.NetworkingSubnetV2Id,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewComputeInstanceV2(ctx, \"instance_2\", &opentelekomcloud.ComputeInstanceV2Args{\n\t\t\tName: pulumi.String(\"instance_2\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tNetworks: opentelekomcloud.ComputeInstanceV2NetworkArray{\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tPort: port1.NetworkingPortV2Id,\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\tvip1, err := opentelekomcloud.NewNetworkingVipV2(ctx, \"vip_1\", &opentelekomcloud.NetworkingVipV2Args{\n\t\t\tNetworkId: network1.NetworkingNetworkV2Id,\n\t\t\tSubnetId:  subnet1.NetworkingSubnetV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewNetworkingVipAssociateV2(ctx, \"vip_associate_1\", &opentelekomcloud.NetworkingVipAssociateV2Args{\n\t\t\tVipId: vip1.NetworkingVipV2Id,\n\t\t\tPortIds: pulumi.StringArray{\n\t\t\t\tport1.NetworkingPortV2Id,\n\t\t\t\tport2.NetworkingPortV2Id,\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.opentelekomcloud.NetworkingNetworkV2;\nimport com.pulumi.opentelekomcloud.NetworkingNetworkV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingSubnetV2;\nimport com.pulumi.opentelekomcloud.NetworkingSubnetV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingRouterV2;\nimport com.pulumi.opentelekomcloud.NetworkingRouterV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingRouterInterfaceV2;\nimport com.pulumi.opentelekomcloud.NetworkingRouterInterfaceV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingPortV2;\nimport com.pulumi.opentelekomcloud.NetworkingPortV2Args;\nimport com.pulumi.opentelekomcloud.inputs.NetworkingPortV2FixedIpArgs;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2Args;\nimport com.pulumi.opentelekomcloud.inputs.ComputeInstanceV2NetworkArgs;\nimport com.pulumi.opentelekomcloud.NetworkingVipV2;\nimport com.pulumi.opentelekomcloud.NetworkingVipV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingVipAssociateV2;\nimport com.pulumi.opentelekomcloud.NetworkingVipAssociateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var network1 = new NetworkingNetworkV2(\"network1\", NetworkingNetworkV2Args.builder()\n            .name(\"network_1\")\n            .adminStateUp(\"true\")\n            .build());\n\n        var subnet1 = new NetworkingSubnetV2(\"subnet1\", NetworkingSubnetV2Args.builder()\n            .name(\"subnet_1\")\n            .cidr(\"192.168.199.0/24\")\n            .ipVersion(4.0)\n            .networkId(network1.networkingNetworkV2Id())\n            .build());\n\n        var router1 = new NetworkingRouterV2(\"router1\", NetworkingRouterV2Args.builder()\n            .name(\"router_1\")\n            .externalGateway(\"0a2228f2-7f8a-45f1-8e09-9039e1d09975\")\n            .build());\n\n        var routerInterface1 = new NetworkingRouterInterfaceV2(\"routerInterface1\", NetworkingRouterInterfaceV2Args.builder()\n            .routerId(router1.networkingRouterV2Id())\n            .subnetId(subnet1.networkingSubnetV2Id())\n            .build());\n\n        var port1 = new NetworkingPortV2(\"port1\", NetworkingPortV2Args.builder()\n            .name(\"port_1\")\n            .adminStateUp(true)\n            .networkId(network1.networkingNetworkV2Id())\n            .fixedIp(NetworkingPortV2FixedIpArgs.builder()\n                .subnetId(subnet1.networkingSubnetV2Id())\n                .build())\n            .build());\n\n        var instance1 = new ComputeInstanceV2(\"instance1\", ComputeInstanceV2Args.builder()\n            .name(\"instance_1\")\n            .securityGroups(\"default\")\n            .networks(ComputeInstanceV2NetworkArgs.builder()\n                .port(port1.networkingPortV2Id())\n                .build())\n            .build());\n\n        var port2 = new NetworkingPortV2(\"port2\", NetworkingPortV2Args.builder()\n            .name(\"port_2\")\n            .adminStateUp(true)\n            .networkId(network1.networkingNetworkV2Id())\n            .fixedIp(NetworkingPortV2FixedIpArgs.builder()\n                .subnetId(subnet1.networkingSubnetV2Id())\n                .build())\n            .build());\n\n        var instance2 = new ComputeInstanceV2(\"instance2\", ComputeInstanceV2Args.builder()\n            .name(\"instance_2\")\n            .securityGroups(\"default\")\n            .networks(ComputeInstanceV2NetworkArgs.builder()\n                .port(port1.networkingPortV2Id())\n                .build())\n            .build());\n\n        var vip1 = new NetworkingVipV2(\"vip1\", NetworkingVipV2Args.builder()\n            .networkId(network1.networkingNetworkV2Id())\n            .subnetId(subnet1.networkingSubnetV2Id())\n            .build());\n\n        var vipAssociate1 = new NetworkingVipAssociateV2(\"vipAssociate1\", NetworkingVipAssociateV2Args.builder()\n            .vipId(vip1.networkingVipV2Id())\n            .portIds(            \n                port1.networkingPortV2Id(),\n                port2.networkingPortV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  network1:\n    type: opentelekomcloud:NetworkingNetworkV2\n    name: network_1\n    properties:\n      name: network_1\n      adminStateUp: 'true'\n  subnet1:\n    type: opentelekomcloud:NetworkingSubnetV2\n    name: subnet_1\n    properties:\n      name: subnet_1\n      cidr: 192.168.199.0/24\n      ipVersion: 4\n      networkId: ${network1.networkingNetworkV2Id}\n  routerInterface1:\n    type: opentelekomcloud:NetworkingRouterInterfaceV2\n    name: router_interface_1\n    properties:\n      routerId: ${router1.networkingRouterV2Id}\n      subnetId: ${subnet1.networkingSubnetV2Id}\n  router1:\n    type: opentelekomcloud:NetworkingRouterV2\n    name: router_1\n    properties:\n      name: router_1\n      externalGateway: 0a2228f2-7f8a-45f1-8e09-9039e1d09975\n  port1:\n    type: opentelekomcloud:NetworkingPortV2\n    name: port_1\n    properties:\n      name: port_1\n      adminStateUp: 'true'\n      networkId: ${network1.networkingNetworkV2Id}\n      fixedIp:\n        subnetId: ${subnet1.networkingSubnetV2Id}\n  instance1:\n    type: opentelekomcloud:ComputeInstanceV2\n    name: instance_1\n    properties:\n      name: instance_1\n      securityGroups:\n        - default\n      networks:\n        - port: ${port1.networkingPortV2Id}\n  port2:\n    type: opentelekomcloud:NetworkingPortV2\n    name: port_2\n    properties:\n      name: port_2\n      adminStateUp: 'true'\n      networkId: ${network1.networkingNetworkV2Id}\n      fixedIp:\n        subnetId: ${subnet1.networkingSubnetV2Id}\n  instance2:\n    type: opentelekomcloud:ComputeInstanceV2\n    name: instance_2\n    properties:\n      name: instance_2\n      securityGroups:\n        - default\n      networks:\n        - port: ${port1.networkingPortV2Id}\n  vip1:\n    type: opentelekomcloud:NetworkingVipV2\n    name: vip_1\n    properties:\n      networkId: ${network1.networkingNetworkV2Id}\n      subnetId: ${subnet1.networkingSubnetV2Id}\n  vipAssociate1:\n    type: opentelekomcloud:NetworkingVipAssociateV2\n    name: vip_associate_1\n    properties:\n      vipId: ${vip1.networkingVipV2Id}\n      portIds:\n        - ${port1.networkingPortV2Id}\n        - ${port2.networkingPortV2Id}\n```\n<!--End PulumiCodeChooser -->\n\n## Example VIP-EIP association\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst sharedSubnet = opentelekomcloud.getVpcSubnetV1({\n    name: \"my-shared-subnet\",\n});\nconst latestImage = opentelekomcloud.getImagesImageV2({\n    name: \"Standard_Debian_11_latest\",\n    mostRecent: true,\n});\nconst port1 = new opentelekomcloud.NetworkingPortV2(\"port_1\", {\n    name: \"port_1\",\n    adminStateUp: true,\n    networkId: sharedSubnet.then(sharedSubnet => sharedSubnet.networkId),\n    fixedIp: {\n        subnetId: sharedSubnet.then(sharedSubnet => sharedSubnet.subnetId),\n    },\n});\nconst instance1 = new opentelekomcloud.ComputeInstanceV2(\"instance_1\", {\n    name: \"instance_vip_ass_1\",\n    securityGroups: [\"default\"],\n    imageId: latestImage.then(latestImage => latestImage.id),\n    networks: [{\n        port: port1.networkingPortV2Id,\n    }],\n});\nconst port2 = new opentelekomcloud.NetworkingPortV2(\"port_2\", {\n    name: \"port_2\",\n    adminStateUp: true,\n    networkId: sharedSubnet.then(sharedSubnet => sharedSubnet.networkId),\n    fixedIp: {\n        subnetId: sharedSubnet.then(sharedSubnet => sharedSubnet.subnetId),\n    },\n});\nconst instance2 = new opentelekomcloud.ComputeInstanceV2(\"instance_2\", {\n    name: \"instance_vip_ass_2\",\n    securityGroups: [\"default\"],\n    imageId: latestImage.then(latestImage => latestImage.id),\n    networks: [{\n        port: port2.networkingPortV2Id,\n    }],\n});\nconst vipEip1 = new opentelekomcloud.VpcEipV1(\"vip_eip_1\", {\n    publicip: {\n        type: \"5_bgp\",\n        name: \"eip-vip\",\n    },\n    bandwidth: {\n        name: \"eip-bandwidth-vip\",\n        size: 10,\n        shareType: \"PER\",\n        chargeMode: \"traffic\",\n    },\n});\nconst vip1 = new opentelekomcloud.NetworkingVipV2(\"vip_1\", {\n    networkId: sharedSubnet.then(sharedSubnet => sharedSubnet.networkId),\n    subnetId: sharedSubnet.then(sharedSubnet => sharedSubnet.subnetId),\n});\nconst vipAssociate1 = new opentelekomcloud.NetworkingVipAssociateV2(\"vip_associate_1\", {\n    vipId: vip1.networkingVipV2Id,\n    portIds: [\n        port1.networkingPortV2Id,\n        port2.networkingPortV2Id,\n    ],\n});\nconst vipEipAssociate1 = new opentelekomcloud.NetworkingFloatingipAssociateV2(\"vip_eip_associate_1\", {\n    floatingIp: vipEip1.publicip.apply(publicip => publicip.ipAddress),\n    portId: vip1.networkingVipV2Id,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nshared_subnet = opentelekomcloud.get_vpc_subnet_v1(name=\"my-shared-subnet\")\nlatest_image = opentelekomcloud.get_images_image_v2(name=\"Standard_Debian_11_latest\",\n    most_recent=True)\nport1 = opentelekomcloud.NetworkingPortV2(\"port_1\",\n    name=\"port_1\",\n    admin_state_up=True,\n    network_id=shared_subnet.network_id,\n    fixed_ip={\n        \"subnet_id\": shared_subnet.subnet_id,\n    })\ninstance1 = opentelekomcloud.ComputeInstanceV2(\"instance_1\",\n    name=\"instance_vip_ass_1\",\n    security_groups=[\"default\"],\n    image_id=latest_image.id,\n    networks=[{\n        \"port\": port1.networking_port_v2_id,\n    }])\nport2 = opentelekomcloud.NetworkingPortV2(\"port_2\",\n    name=\"port_2\",\n    admin_state_up=True,\n    network_id=shared_subnet.network_id,\n    fixed_ip={\n        \"subnet_id\": shared_subnet.subnet_id,\n    })\ninstance2 = opentelekomcloud.ComputeInstanceV2(\"instance_2\",\n    name=\"instance_vip_ass_2\",\n    security_groups=[\"default\"],\n    image_id=latest_image.id,\n    networks=[{\n        \"port\": port2.networking_port_v2_id,\n    }])\nvip_eip1 = opentelekomcloud.VpcEipV1(\"vip_eip_1\",\n    publicip={\n        \"type\": \"5_bgp\",\n        \"name\": \"eip-vip\",\n    },\n    bandwidth={\n        \"name\": \"eip-bandwidth-vip\",\n        \"size\": 10,\n        \"share_type\": \"PER\",\n        \"charge_mode\": \"traffic\",\n    })\nvip1 = opentelekomcloud.NetworkingVipV2(\"vip_1\",\n    network_id=shared_subnet.network_id,\n    subnet_id=shared_subnet.subnet_id)\nvip_associate1 = opentelekomcloud.NetworkingVipAssociateV2(\"vip_associate_1\",\n    vip_id=vip1.networking_vip_v2_id,\n    port_ids=[\n        port1.networking_port_v2_id,\n        port2.networking_port_v2_id,\n    ])\nvip_eip_associate1 = opentelekomcloud.NetworkingFloatingipAssociateV2(\"vip_eip_associate_1\",\n    floating_ip=vip_eip1.publicip.ip_address,\n    port_id=vip1.networking_vip_v2_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var sharedSubnet = Opentelekomcloud.GetVpcSubnetV1.Invoke(new()\n    {\n        Name = \"my-shared-subnet\",\n    });\n\n    var latestImage = Opentelekomcloud.GetImagesImageV2.Invoke(new()\n    {\n        Name = \"Standard_Debian_11_latest\",\n        MostRecent = true,\n    });\n\n    var port1 = new Opentelekomcloud.NetworkingPortV2(\"port_1\", new()\n    {\n        Name = \"port_1\",\n        AdminStateUp = true,\n        NetworkId = sharedSubnet.Apply(getVpcSubnetV1Result => getVpcSubnetV1Result.NetworkId),\n        FixedIp = new Opentelekomcloud.Inputs.NetworkingPortV2FixedIpArgs\n        {\n            SubnetId = sharedSubnet.Apply(getVpcSubnetV1Result => getVpcSubnetV1Result.SubnetId),\n        },\n    });\n\n    var instance1 = new Opentelekomcloud.ComputeInstanceV2(\"instance_1\", new()\n    {\n        Name = \"instance_vip_ass_1\",\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n        ImageId = latestImage.Apply(getImagesImageV2Result => getImagesImageV2Result.Id),\n        Networks = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Port = port1.NetworkingPortV2Id,\n            },\n        },\n    });\n\n    var port2 = new Opentelekomcloud.NetworkingPortV2(\"port_2\", new()\n    {\n        Name = \"port_2\",\n        AdminStateUp = true,\n        NetworkId = sharedSubnet.Apply(getVpcSubnetV1Result => getVpcSubnetV1Result.NetworkId),\n        FixedIp = new Opentelekomcloud.Inputs.NetworkingPortV2FixedIpArgs\n        {\n            SubnetId = sharedSubnet.Apply(getVpcSubnetV1Result => getVpcSubnetV1Result.SubnetId),\n        },\n    });\n\n    var instance2 = new Opentelekomcloud.ComputeInstanceV2(\"instance_2\", new()\n    {\n        Name = \"instance_vip_ass_2\",\n        SecurityGroups = new[]\n        {\n            \"default\",\n        },\n        ImageId = latestImage.Apply(getImagesImageV2Result => getImagesImageV2Result.Id),\n        Networks = new[]\n        {\n            new Opentelekomcloud.Inputs.ComputeInstanceV2NetworkArgs\n            {\n                Port = port2.NetworkingPortV2Id,\n            },\n        },\n    });\n\n    var vipEip1 = new Opentelekomcloud.VpcEipV1(\"vip_eip_1\", new()\n    {\n        Publicip = new Opentelekomcloud.Inputs.VpcEipV1PublicipArgs\n        {\n            Type = \"5_bgp\",\n            Name = \"eip-vip\",\n        },\n        Bandwidth = new Opentelekomcloud.Inputs.VpcEipV1BandwidthArgs\n        {\n            Name = \"eip-bandwidth-vip\",\n            Size = 10,\n            ShareType = \"PER\",\n            ChargeMode = \"traffic\",\n        },\n    });\n\n    var vip1 = new Opentelekomcloud.NetworkingVipV2(\"vip_1\", new()\n    {\n        NetworkId = sharedSubnet.Apply(getVpcSubnetV1Result => getVpcSubnetV1Result.NetworkId),\n        SubnetId = sharedSubnet.Apply(getVpcSubnetV1Result => getVpcSubnetV1Result.SubnetId),\n    });\n\n    var vipAssociate1 = new Opentelekomcloud.NetworkingVipAssociateV2(\"vip_associate_1\", new()\n    {\n        VipId = vip1.NetworkingVipV2Id,\n        PortIds = new[]\n        {\n            port1.NetworkingPortV2Id,\n            port2.NetworkingPortV2Id,\n        },\n    });\n\n    var vipEipAssociate1 = new Opentelekomcloud.NetworkingFloatingipAssociateV2(\"vip_eip_associate_1\", new()\n    {\n        FloatingIp = vipEip1.Publicip.Apply(publicip => publicip.IpAddress),\n        PortId = vip1.NetworkingVipV2Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsharedSubnet, err := opentelekomcloud.LookupVpcSubnetV1(ctx, &opentelekomcloud.LookupVpcSubnetV1Args{\n\t\t\tName: pulumi.StringRef(\"my-shared-subnet\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlatestImage, err := opentelekomcloud.LookupImagesImageV2(ctx, &opentelekomcloud.LookupImagesImageV2Args{\n\t\t\tName:       pulumi.StringRef(\"Standard_Debian_11_latest\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tport1, err := opentelekomcloud.NewNetworkingPortV2(ctx, \"port_1\", &opentelekomcloud.NetworkingPortV2Args{\n\t\t\tName:         pulumi.String(\"port_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t\tNetworkId:    pulumi.String(sharedSubnet.NetworkId),\n\t\t\tFixedIp: &opentelekomcloud.NetworkingPortV2FixedIpArgs{\n\t\t\t\tSubnetId: pulumi.String(sharedSubnet.SubnetId),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewComputeInstanceV2(ctx, \"instance_1\", &opentelekomcloud.ComputeInstanceV2Args{\n\t\t\tName: pulumi.String(\"instance_vip_ass_1\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tImageId: pulumi.String(latestImage.Id),\n\t\t\tNetworks: opentelekomcloud.ComputeInstanceV2NetworkArray{\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tPort: port1.NetworkingPortV2Id,\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\tport2, err := opentelekomcloud.NewNetworkingPortV2(ctx, \"port_2\", &opentelekomcloud.NetworkingPortV2Args{\n\t\t\tName:         pulumi.String(\"port_2\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t\tNetworkId:    pulumi.String(sharedSubnet.NetworkId),\n\t\t\tFixedIp: &opentelekomcloud.NetworkingPortV2FixedIpArgs{\n\t\t\t\tSubnetId: pulumi.String(sharedSubnet.SubnetId),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewComputeInstanceV2(ctx, \"instance_2\", &opentelekomcloud.ComputeInstanceV2Args{\n\t\t\tName: pulumi.String(\"instance_vip_ass_2\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tImageId: pulumi.String(latestImage.Id),\n\t\t\tNetworks: opentelekomcloud.ComputeInstanceV2NetworkArray{\n\t\t\t\t&opentelekomcloud.ComputeInstanceV2NetworkArgs{\n\t\t\t\t\tPort: port2.NetworkingPortV2Id,\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\tvipEip1, err := opentelekomcloud.NewVpcEipV1(ctx, \"vip_eip_1\", &opentelekomcloud.VpcEipV1Args{\n\t\t\tPublicip: &opentelekomcloud.VpcEipV1PublicipArgs{\n\t\t\t\tType: pulumi.String(\"5_bgp\"),\n\t\t\t\tName: pulumi.String(\"eip-vip\"),\n\t\t\t},\n\t\t\tBandwidth: &opentelekomcloud.VpcEipV1BandwidthArgs{\n\t\t\t\tName:       pulumi.String(\"eip-bandwidth-vip\"),\n\t\t\t\tSize:       pulumi.Float64(10),\n\t\t\t\tShareType:  pulumi.String(\"PER\"),\n\t\t\t\tChargeMode: pulumi.String(\"traffic\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvip1, err := opentelekomcloud.NewNetworkingVipV2(ctx, \"vip_1\", &opentelekomcloud.NetworkingVipV2Args{\n\t\t\tNetworkId: pulumi.String(sharedSubnet.NetworkId),\n\t\t\tSubnetId:  pulumi.String(sharedSubnet.SubnetId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewNetworkingVipAssociateV2(ctx, \"vip_associate_1\", &opentelekomcloud.NetworkingVipAssociateV2Args{\n\t\t\tVipId: vip1.NetworkingVipV2Id,\n\t\t\tPortIds: pulumi.StringArray{\n\t\t\t\tport1.NetworkingPortV2Id,\n\t\t\t\tport2.NetworkingPortV2Id,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewNetworkingFloatingipAssociateV2(ctx, \"vip_eip_associate_1\", &opentelekomcloud.NetworkingFloatingipAssociateV2Args{\n\t\t\tFloatingIp: pulumi.String(vipEip1.Publicip.ApplyT(func(publicip opentelekomcloud.VpcEipV1Publicip) (*string, error) {\n\t\t\t\treturn &publicip.IpAddress, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tPortId: vip1.NetworkingVipV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetVpcSubnetV1Args;\nimport com.pulumi.opentelekomcloud.inputs.GetImagesImageV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingPortV2;\nimport com.pulumi.opentelekomcloud.NetworkingPortV2Args;\nimport com.pulumi.opentelekomcloud.inputs.NetworkingPortV2FixedIpArgs;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2;\nimport com.pulumi.opentelekomcloud.ComputeInstanceV2Args;\nimport com.pulumi.opentelekomcloud.inputs.ComputeInstanceV2NetworkArgs;\nimport com.pulumi.opentelekomcloud.VpcEipV1;\nimport com.pulumi.opentelekomcloud.VpcEipV1Args;\nimport com.pulumi.opentelekomcloud.inputs.VpcEipV1PublicipArgs;\nimport com.pulumi.opentelekomcloud.inputs.VpcEipV1BandwidthArgs;\nimport com.pulumi.opentelekomcloud.NetworkingVipV2;\nimport com.pulumi.opentelekomcloud.NetworkingVipV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingVipAssociateV2;\nimport com.pulumi.opentelekomcloud.NetworkingVipAssociateV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingFloatingipAssociateV2;\nimport com.pulumi.opentelekomcloud.NetworkingFloatingipAssociateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var sharedSubnet = OpentelekomcloudFunctions.getVpcSubnetV1(GetVpcSubnetV1Args.builder()\n            .name(\"my-shared-subnet\")\n            .build());\n\n        final var latestImage = OpentelekomcloudFunctions.getImagesImageV2(GetImagesImageV2Args.builder()\n            .name(\"Standard_Debian_11_latest\")\n            .mostRecent(true)\n            .build());\n\n        var port1 = new NetworkingPortV2(\"port1\", NetworkingPortV2Args.builder()\n            .name(\"port_1\")\n            .adminStateUp(true)\n            .networkId(sharedSubnet.networkId())\n            .fixedIp(NetworkingPortV2FixedIpArgs.builder()\n                .subnetId(sharedSubnet.subnetId())\n                .build())\n            .build());\n\n        var instance1 = new ComputeInstanceV2(\"instance1\", ComputeInstanceV2Args.builder()\n            .name(\"instance_vip_ass_1\")\n            .securityGroups(\"default\")\n            .imageId(latestImage.id())\n            .networks(ComputeInstanceV2NetworkArgs.builder()\n                .port(port1.networkingPortV2Id())\n                .build())\n            .build());\n\n        var port2 = new NetworkingPortV2(\"port2\", NetworkingPortV2Args.builder()\n            .name(\"port_2\")\n            .adminStateUp(true)\n            .networkId(sharedSubnet.networkId())\n            .fixedIp(NetworkingPortV2FixedIpArgs.builder()\n                .subnetId(sharedSubnet.subnetId())\n                .build())\n            .build());\n\n        var instance2 = new ComputeInstanceV2(\"instance2\", ComputeInstanceV2Args.builder()\n            .name(\"instance_vip_ass_2\")\n            .securityGroups(\"default\")\n            .imageId(latestImage.id())\n            .networks(ComputeInstanceV2NetworkArgs.builder()\n                .port(port2.networkingPortV2Id())\n                .build())\n            .build());\n\n        var vipEip1 = new VpcEipV1(\"vipEip1\", VpcEipV1Args.builder()\n            .publicip(VpcEipV1PublicipArgs.builder()\n                .type(\"5_bgp\")\n                .name(\"eip-vip\")\n                .build())\n            .bandwidth(VpcEipV1BandwidthArgs.builder()\n                .name(\"eip-bandwidth-vip\")\n                .size(10.0)\n                .shareType(\"PER\")\n                .chargeMode(\"traffic\")\n                .build())\n            .build());\n\n        var vip1 = new NetworkingVipV2(\"vip1\", NetworkingVipV2Args.builder()\n            .networkId(sharedSubnet.networkId())\n            .subnetId(sharedSubnet.subnetId())\n            .build());\n\n        var vipAssociate1 = new NetworkingVipAssociateV2(\"vipAssociate1\", NetworkingVipAssociateV2Args.builder()\n            .vipId(vip1.networkingVipV2Id())\n            .portIds(            \n                port1.networkingPortV2Id(),\n                port2.networkingPortV2Id())\n            .build());\n\n        var vipEipAssociate1 = new NetworkingFloatingipAssociateV2(\"vipEipAssociate1\", NetworkingFloatingipAssociateV2Args.builder()\n            .floatingIp(vipEip1.publicip().applyValue(_publicip -> _publicip.ipAddress()))\n            .portId(vip1.networkingVipV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  port1:\n    type: opentelekomcloud:NetworkingPortV2\n    name: port_1\n    properties:\n      name: port_1\n      adminStateUp: 'true'\n      networkId: ${sharedSubnet.networkId}\n      fixedIp:\n        subnetId: ${sharedSubnet.subnetId}\n  instance1:\n    type: opentelekomcloud:ComputeInstanceV2\n    name: instance_1\n    properties:\n      name: instance_vip_ass_1\n      securityGroups:\n        - default\n      imageId: ${latestImage.id}\n      networks:\n        - port: ${port1.networkingPortV2Id}\n  port2:\n    type: opentelekomcloud:NetworkingPortV2\n    name: port_2\n    properties:\n      name: port_2\n      adminStateUp: 'true'\n      networkId: ${sharedSubnet.networkId}\n      fixedIp:\n        subnetId: ${sharedSubnet.subnetId}\n  instance2:\n    type: opentelekomcloud:ComputeInstanceV2\n    name: instance_2\n    properties:\n      name: instance_vip_ass_2\n      securityGroups:\n        - default\n      imageId: ${latestImage.id}\n      networks:\n        - port: ${port2.networkingPortV2Id}\n  vipEip1:\n    type: opentelekomcloud:VpcEipV1\n    name: vip_eip_1\n    properties:\n      publicip:\n        type: 5_bgp\n        name: eip-vip\n      bandwidth:\n        name: eip-bandwidth-vip\n        size: 10\n        shareType: PER\n        chargeMode: traffic\n  vip1:\n    type: opentelekomcloud:NetworkingVipV2\n    name: vip_1\n    properties:\n      networkId: ${sharedSubnet.networkId}\n      subnetId: ${sharedSubnet.subnetId}\n  vipAssociate1:\n    type: opentelekomcloud:NetworkingVipAssociateV2\n    name: vip_associate_1\n    properties:\n      vipId: ${vip1.networkingVipV2Id}\n      portIds:\n        - ${port1.networkingPortV2Id}\n        - ${port2.networkingPortV2Id}\n  vipEipAssociate1:\n    type: opentelekomcloud:NetworkingFloatingipAssociateV2\n    name: vip_eip_associate_1\n    properties:\n      floatingIp: ${vipEip1.publicip.ipAddress}\n      portId: ${vip1.networkingVipV2Id}\nvariables:\n  sharedSubnet:\n    fn::invoke:\n      function: opentelekomcloud:getVpcSubnetV1\n      arguments:\n        name: my-shared-subnet\n  latestImage:\n    fn::invoke:\n      function: opentelekomcloud:getImagesImageV2\n      arguments:\n        name: Standard_Debian_11_latest\n        mostRecent: true\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"networkingVipAssociateV2Id":{"type":"string"},"portIds":{"description":"An array of one or more IDs of the ports to attach the vip to.\nChanging this creates a new vip associate.\n","items":{"type":"string"},"type":"array"},"vipId":{"description":"The ID of vip to attach the port to.\nChanging this creates a new vip associate.\n","type":"string"}},"properties":{"networkingVipAssociateV2Id":{"type":"string"},"portIds":{"description":"An array of one or more IDs of the ports to attach the vip to.\nChanging this creates a new vip associate.\n","items":{"type":"string"},"type":"array"},"vipId":{"description":"The ID of vip to attach the port to.\nChanging this creates a new vip associate.\n","type":"string"},"vipIpAddress":{"description":"The IP address in the subnet for this vip.\n","type":"string"},"vipSubnetId":{"description":"The ID of the subnet this vip connects to.\n","type":"string"}},"required":["networkingVipAssociateV2Id","portIds","vipId","vipIpAddress","vipSubnetId"],"requiredInputs":["portIds","vipId"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkingVipAssociateV2 resources.\n","properties":{"networkingVipAssociateV2Id":{"type":"string"},"portIds":{"description":"An array of one or more IDs of the ports to attach the vip to.\nChanging this creates a new vip associate.\n","items":{"type":"string"},"type":"array"},"vipId":{"description":"The ID of vip to attach the port to.\nChanging this creates a new vip associate.\n","type":"string"},"vipIpAddress":{"description":"The IP address in the subnet for this vip.\n","type":"string"},"vipSubnetId":{"description":"The ID of the subnet this vip connects to.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/networkingVipV2:NetworkingVipV2":{"description":"Manages a V2 vip resource within OpenTelekomCloud.\n\n> **Note:** Corresponding data source for V2 vip resource is `data_source/networking_port_v2` where\n<span pulumi-lang-nodejs=\"`vipId`\" pulumi-lang-dotnet=\"`VipId`\" pulumi-lang-go=\"`vipId`\" pulumi-lang-python=\"`vip_id`\" pulumi-lang-yaml=\"`vipId`\" pulumi-lang-java=\"`vipId`\">`vip_id`</span> can be provided to <span pulumi-lang-nodejs=\"`portId`\" pulumi-lang-dotnet=\"`PortId`\" pulumi-lang-go=\"`portId`\" pulumi-lang-python=\"`port_id`\" pulumi-lang-yaml=\"`portId`\" pulumi-lang-java=\"`portId`\">`port_id`</span> along with other arguments.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst network1 = new opentelekomcloud.NetworkingNetworkV2(\"network_1\", {\n    name: \"network_1\",\n    adminStateUp: \"true\",\n});\nconst subnet1 = new opentelekomcloud.NetworkingSubnetV2(\"subnet_1\", {\n    name: \"subnet_1\",\n    cidr: \"192.168.199.0/24\",\n    ipVersion: 4,\n    networkId: network1.networkingNetworkV2Id,\n});\nconst router1 = new opentelekomcloud.NetworkingRouterV2(\"router_1\", {\n    name: \"router_1\",\n    externalGateway: \"0a2228f2-7f8a-45f1-8e09-9039e1d09975\",\n});\nconst routerInterface1 = new opentelekomcloud.NetworkingRouterInterfaceV2(\"router_interface_1\", {\n    routerId: router1.networkingRouterV2Id,\n    subnetId: subnet1.networkingSubnetV2Id,\n});\nconst vip1 = new opentelekomcloud.NetworkingVipV2(\"vip_1\", {\n    networkId: network1.networkingNetworkV2Id,\n    subnetId: subnet1.networkingSubnetV2Id,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nnetwork1 = opentelekomcloud.NetworkingNetworkV2(\"network_1\",\n    name=\"network_1\",\n    admin_state_up=\"true\")\nsubnet1 = opentelekomcloud.NetworkingSubnetV2(\"subnet_1\",\n    name=\"subnet_1\",\n    cidr=\"192.168.199.0/24\",\n    ip_version=4,\n    network_id=network1.networking_network_v2_id)\nrouter1 = opentelekomcloud.NetworkingRouterV2(\"router_1\",\n    name=\"router_1\",\n    external_gateway=\"0a2228f2-7f8a-45f1-8e09-9039e1d09975\")\nrouter_interface1 = opentelekomcloud.NetworkingRouterInterfaceV2(\"router_interface_1\",\n    router_id=router1.networking_router_v2_id,\n    subnet_id=subnet1.networking_subnet_v2_id)\nvip1 = opentelekomcloud.NetworkingVipV2(\"vip_1\",\n    network_id=network1.networking_network_v2_id,\n    subnet_id=subnet1.networking_subnet_v2_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var network1 = new Opentelekomcloud.NetworkingNetworkV2(\"network_1\", new()\n    {\n        Name = \"network_1\",\n        AdminStateUp = \"true\",\n    });\n\n    var subnet1 = new Opentelekomcloud.NetworkingSubnetV2(\"subnet_1\", new()\n    {\n        Name = \"subnet_1\",\n        Cidr = \"192.168.199.0/24\",\n        IpVersion = 4,\n        NetworkId = network1.NetworkingNetworkV2Id,\n    });\n\n    var router1 = new Opentelekomcloud.NetworkingRouterV2(\"router_1\", new()\n    {\n        Name = \"router_1\",\n        ExternalGateway = \"0a2228f2-7f8a-45f1-8e09-9039e1d09975\",\n    });\n\n    var routerInterface1 = new Opentelekomcloud.NetworkingRouterInterfaceV2(\"router_interface_1\", new()\n    {\n        RouterId = router1.NetworkingRouterV2Id,\n        SubnetId = subnet1.NetworkingSubnetV2Id,\n    });\n\n    var vip1 = new Opentelekomcloud.NetworkingVipV2(\"vip_1\", new()\n    {\n        NetworkId = network1.NetworkingNetworkV2Id,\n        SubnetId = subnet1.NetworkingSubnetV2Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := opentelekomcloud.NewNetworkingNetworkV2(ctx, \"network_1\", &opentelekomcloud.NetworkingNetworkV2Args{\n\t\t\tName:         pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.String(\"true\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := opentelekomcloud.NewNetworkingSubnetV2(ctx, \"subnet_1\", &opentelekomcloud.NetworkingSubnetV2Args{\n\t\t\tName:      pulumi.String(\"subnet_1\"),\n\t\t\tCidr:      pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Float64(4),\n\t\t\tNetworkId: network1.NetworkingNetworkV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trouter1, err := opentelekomcloud.NewNetworkingRouterV2(ctx, \"router_1\", &opentelekomcloud.NetworkingRouterV2Args{\n\t\t\tName:            pulumi.String(\"router_1\"),\n\t\t\tExternalGateway: pulumi.String(\"0a2228f2-7f8a-45f1-8e09-9039e1d09975\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewNetworkingRouterInterfaceV2(ctx, \"router_interface_1\", &opentelekomcloud.NetworkingRouterInterfaceV2Args{\n\t\t\tRouterId: router1.NetworkingRouterV2Id,\n\t\t\tSubnetId: subnet1.NetworkingSubnetV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewNetworkingVipV2(ctx, \"vip_1\", &opentelekomcloud.NetworkingVipV2Args{\n\t\t\tNetworkId: network1.NetworkingNetworkV2Id,\n\t\t\tSubnetId:  subnet1.NetworkingSubnetV2Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.NetworkingNetworkV2;\nimport com.pulumi.opentelekomcloud.NetworkingNetworkV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingSubnetV2;\nimport com.pulumi.opentelekomcloud.NetworkingSubnetV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingRouterV2;\nimport com.pulumi.opentelekomcloud.NetworkingRouterV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingRouterInterfaceV2;\nimport com.pulumi.opentelekomcloud.NetworkingRouterInterfaceV2Args;\nimport com.pulumi.opentelekomcloud.NetworkingVipV2;\nimport com.pulumi.opentelekomcloud.NetworkingVipV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var network1 = new NetworkingNetworkV2(\"network1\", NetworkingNetworkV2Args.builder()\n            .name(\"network_1\")\n            .adminStateUp(\"true\")\n            .build());\n\n        var subnet1 = new NetworkingSubnetV2(\"subnet1\", NetworkingSubnetV2Args.builder()\n            .name(\"subnet_1\")\n            .cidr(\"192.168.199.0/24\")\n            .ipVersion(4.0)\n            .networkId(network1.networkingNetworkV2Id())\n            .build());\n\n        var router1 = new NetworkingRouterV2(\"router1\", NetworkingRouterV2Args.builder()\n            .name(\"router_1\")\n            .externalGateway(\"0a2228f2-7f8a-45f1-8e09-9039e1d09975\")\n            .build());\n\n        var routerInterface1 = new NetworkingRouterInterfaceV2(\"routerInterface1\", NetworkingRouterInterfaceV2Args.builder()\n            .routerId(router1.networkingRouterV2Id())\n            .subnetId(subnet1.networkingSubnetV2Id())\n            .build());\n\n        var vip1 = new NetworkingVipV2(\"vip1\", NetworkingVipV2Args.builder()\n            .networkId(network1.networkingNetworkV2Id())\n            .subnetId(subnet1.networkingSubnetV2Id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  network1:\n    type: opentelekomcloud:NetworkingNetworkV2\n    name: network_1\n    properties:\n      name: network_1\n      adminStateUp: 'true'\n  subnet1:\n    type: opentelekomcloud:NetworkingSubnetV2\n    name: subnet_1\n    properties:\n      name: subnet_1\n      cidr: 192.168.199.0/24\n      ipVersion: 4\n      networkId: ${network1.networkingNetworkV2Id}\n  routerInterface1:\n    type: opentelekomcloud:NetworkingRouterInterfaceV2\n    name: router_interface_1\n    properties:\n      routerId: ${router1.networkingRouterV2Id}\n      subnetId: ${subnet1.networkingSubnetV2Id}\n  router1:\n    type: opentelekomcloud:NetworkingRouterV2\n    name: router_1\n    properties:\n      name: router_1\n      externalGateway: 0a2228f2-7f8a-45f1-8e09-9039e1d09975\n  vip1:\n    type: opentelekomcloud:NetworkingVipV2\n    name: vip_1\n    properties:\n      networkId: ${network1.networkingNetworkV2Id}\n      subnetId: ${subnet1.networkingSubnetV2Id}\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"ipAddress":{"description":"IP address desired in the subnet for this vip.\nIf you don't specify <span pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\">`ip_address`</span>, an available IP address from\nthe specified subnet will be allocated to this vip.\n","type":"string"},"name":{"description":"A unique name for the vip.\n","type":"string"},"networkId":{"description":"The ID of the network to attach the vip to.\nChanging this creates a new vip.\n","type":"string"},"networkingVipV2Id":{"description":"The ID of the vip.\n","type":"string"},"subnetId":{"description":"Subnet in which to allocate IP address for this vip.\nChanging this creates a new vip.\n","type":"string"}},"properties":{"deviceOwner":{"description":"The device owner of the vip.\n","type":"string"},"ipAddress":{"description":"IP address desired in the subnet for this vip.\nIf you don't specify <span pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\">`ip_address`</span>, an available IP address from\nthe specified subnet will be allocated to this vip.\n","type":"string"},"name":{"description":"A unique name for the vip.\n","type":"string"},"networkId":{"description":"The ID of the network to attach the vip to.\nChanging this creates a new vip.\n","type":"string"},"networkingVipV2Id":{"description":"The ID of the vip.\n","type":"string"},"status":{"description":"The status of vip.\n","type":"string"},"subnetId":{"description":"Subnet in which to allocate IP address for this vip.\nChanging this creates a new vip.\n","type":"string"},"tenantId":{"description":"The tenant ID of the vip.\n","type":"string"}},"required":["deviceOwner","ipAddress","name","networkId","networkingVipV2Id","status","subnetId","tenantId"],"requiredInputs":["networkId","subnetId"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkingVipV2 resources.\n","properties":{"deviceOwner":{"description":"The device owner of the vip.\n","type":"string"},"ipAddress":{"description":"IP address desired in the subnet for this vip.\nIf you don't specify <span pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\">`ip_address`</span>, an available IP address from\nthe specified subnet will be allocated to this vip.\n","type":"string"},"name":{"description":"A unique name for the vip.\n","type":"string"},"networkId":{"description":"The ID of the network to attach the vip to.\nChanging this creates a new vip.\n","type":"string"},"networkingVipV2Id":{"description":"The ID of the vip.\n","type":"string"},"status":{"description":"The status of vip.\n","type":"string"},"subnetId":{"description":"Subnet in which to allocate IP address for this vip.\nChanging this creates a new vip.\n","type":"string"},"tenantId":{"description":"The tenant ID of the vip.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/obsBucket:ObsBucket":{"description":"Up-to-date reference of API arguments for OBS bucket you can get at\n[documentation portal](https://docs.otc.t-systems.com/object-storage-service/api-ref/apis/operations_on_buckets)\n\nProvides an OBS bucket resource within OpenTelekomCloud.\nNow respects HTTP_PROXY, HTTPS_PROXY environment variables.\n\n## Example Usage\n\n### Private Bucket with Tags\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst b = new opentelekomcloud.ObsBucket(\"b\", {\n    bucket: \"my-tf-test-bucket\",\n    acl: \"private\",\n    tags: {\n        foo: \"bar\",\n        Env: \"Test\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nb = opentelekomcloud.ObsBucket(\"b\",\n    bucket=\"my-tf-test-bucket\",\n    acl=\"private\",\n    tags={\n        \"foo\": \"bar\",\n        \"Env\": \"Test\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var b = new Opentelekomcloud.ObsBucket(\"b\", new()\n    {\n        Bucket = \"my-tf-test-bucket\",\n        Acl = \"private\",\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n            { \"Env\", \"Test\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewObsBucket(ctx, \"b\", &opentelekomcloud.ObsBucketArgs{\n\t\t\tBucket: pulumi.String(\"my-tf-test-bucket\"),\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"Env\": pulumi.String(\"Test\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ObsBucket;\nimport com.pulumi.opentelekomcloud.ObsBucketArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var b = new ObsBucket(\"b\", ObsBucketArgs.builder()\n            .bucket(\"my-tf-test-bucket\")\n            .acl(\"private\")\n            .tags(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"Env\", \"Test\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  b:\n    type: opentelekomcloud:ObsBucket\n    properties:\n      bucket: my-tf-test-bucket\n      acl: private\n      tags:\n        foo: bar\n        Env: Test\n```\n<!--End PulumiCodeChooser -->\n\n### Parallel file system bucket\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst b = new opentelekomcloud.ObsBucket(\"b\", {\n    bucket: \"my-tf-test-bucket\",\n    parallelFs: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nb = opentelekomcloud.ObsBucket(\"b\",\n    bucket=\"my-tf-test-bucket\",\n    parallel_fs=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var b = new Opentelekomcloud.ObsBucket(\"b\", new()\n    {\n        Bucket = \"my-tf-test-bucket\",\n        ParallelFs = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewObsBucket(ctx, \"b\", &opentelekomcloud.ObsBucketArgs{\n\t\t\tBucket:     pulumi.String(\"my-tf-test-bucket\"),\n\t\t\tParallelFs: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ObsBucket;\nimport com.pulumi.opentelekomcloud.ObsBucketArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var b = new ObsBucket(\"b\", ObsBucketArgs.builder()\n            .bucket(\"my-tf-test-bucket\")\n            .parallelFs(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  b:\n    type: opentelekomcloud:ObsBucket\n    properties:\n      bucket: my-tf-test-bucket\n      parallelFs: true\n```\n<!--End PulumiCodeChooser -->\n\n### Enable versioning\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst b = new opentelekomcloud.ObsBucket(\"b\", {\n    bucket: \"my-tf-test-bucket\",\n    acl: \"private\",\n    versioning: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nb = opentelekomcloud.ObsBucket(\"b\",\n    bucket=\"my-tf-test-bucket\",\n    acl=\"private\",\n    versioning=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var b = new Opentelekomcloud.ObsBucket(\"b\", new()\n    {\n        Bucket = \"my-tf-test-bucket\",\n        Acl = \"private\",\n        Versioning = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewObsBucket(ctx, \"b\", &opentelekomcloud.ObsBucketArgs{\n\t\t\tBucket:     pulumi.String(\"my-tf-test-bucket\"),\n\t\t\tAcl:        pulumi.String(\"private\"),\n\t\t\tVersioning: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ObsBucket;\nimport com.pulumi.opentelekomcloud.ObsBucketArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var b = new ObsBucket(\"b\", ObsBucketArgs.builder()\n            .bucket(\"my-tf-test-bucket\")\n            .acl(\"private\")\n            .versioning(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  b:\n    type: opentelekomcloud:ObsBucket\n    properties:\n      bucket: my-tf-test-bucket\n      acl: private\n      versioning: true\n```\n<!--End PulumiCodeChooser -->\n\n### Suspend versioning\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst b = new opentelekomcloud.ObsBucket(\"b\", {\n    bucket: \"my-tf-test-bucket\",\n    acl: \"private\",\n    versioning: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nb = opentelekomcloud.ObsBucket(\"b\",\n    bucket=\"my-tf-test-bucket\",\n    acl=\"private\",\n    versioning=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var b = new Opentelekomcloud.ObsBucket(\"b\", new()\n    {\n        Bucket = \"my-tf-test-bucket\",\n        Acl = \"private\",\n        Versioning = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewObsBucket(ctx, \"b\", &opentelekomcloud.ObsBucketArgs{\n\t\t\tBucket:     pulumi.String(\"my-tf-test-bucket\"),\n\t\t\tAcl:        pulumi.String(\"private\"),\n\t\t\tVersioning: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ObsBucket;\nimport com.pulumi.opentelekomcloud.ObsBucketArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var b = new ObsBucket(\"b\", ObsBucketArgs.builder()\n            .bucket(\"my-tf-test-bucket\")\n            .acl(\"private\")\n            .versioning(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  b:\n    type: opentelekomcloud:ObsBucket\n    properties:\n      bucket: my-tf-test-bucket\n      acl: private\n      versioning: false\n```\n<!--End PulumiCodeChooser -->\n\n### WORM policy with versioning enabled\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst b = new opentelekomcloud.ObsBucket(\"b\", {\n    bucket: \"my-tf-test-bucket\",\n    versioning: true,\n    wormPolicy: {\n        years: 1,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nb = opentelekomcloud.ObsBucket(\"b\",\n    bucket=\"my-tf-test-bucket\",\n    versioning=True,\n    worm_policy={\n        \"years\": 1,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var b = new Opentelekomcloud.ObsBucket(\"b\", new()\n    {\n        Bucket = \"my-tf-test-bucket\",\n        Versioning = true,\n        WormPolicy = new Opentelekomcloud.Inputs.ObsBucketWormPolicyArgs\n        {\n            Years = 1,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewObsBucket(ctx, \"b\", &opentelekomcloud.ObsBucketArgs{\n\t\t\tBucket:     pulumi.String(\"my-tf-test-bucket\"),\n\t\t\tVersioning: pulumi.Bool(true),\n\t\t\tWormPolicy: &opentelekomcloud.ObsBucketWormPolicyArgs{\n\t\t\t\tYears: pulumi.Float64(1),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ObsBucket;\nimport com.pulumi.opentelekomcloud.ObsBucketArgs;\nimport com.pulumi.opentelekomcloud.inputs.ObsBucketWormPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var b = new ObsBucket(\"b\", ObsBucketArgs.builder()\n            .bucket(\"my-tf-test-bucket\")\n            .versioning(true)\n            .wormPolicy(ObsBucketWormPolicyArgs.builder()\n                .years(1.0)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  b:\n    type: opentelekomcloud:ObsBucket\n    properties:\n      bucket: my-tf-test-bucket\n      versioning: true\n      wormPolicy:\n        years: 1\n```\n<!--End PulumiCodeChooser -->\n\n### Enable Logging\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst logBucket = new opentelekomcloud.ObsBucket(\"log_bucket\", {\n    bucket: \"my-tf-log-bucket\",\n    acl: \"log-delivery-write\",\n});\nconst b = new opentelekomcloud.ObsBucket(\"b\", {\n    bucket: \"my-tf-test-bucket\",\n    acl: \"private\",\n    loggings: [{\n        targetBucket: logBucket.obsBucketId,\n        targetPrefix: \"log/\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nlog_bucket = opentelekomcloud.ObsBucket(\"log_bucket\",\n    bucket=\"my-tf-log-bucket\",\n    acl=\"log-delivery-write\")\nb = opentelekomcloud.ObsBucket(\"b\",\n    bucket=\"my-tf-test-bucket\",\n    acl=\"private\",\n    loggings=[{\n        \"target_bucket\": log_bucket.obs_bucket_id,\n        \"target_prefix\": \"log/\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var logBucket = new Opentelekomcloud.ObsBucket(\"log_bucket\", new()\n    {\n        Bucket = \"my-tf-log-bucket\",\n        Acl = \"log-delivery-write\",\n    });\n\n    var b = new Opentelekomcloud.ObsBucket(\"b\", new()\n    {\n        Bucket = \"my-tf-test-bucket\",\n        Acl = \"private\",\n        Loggings = new[]\n        {\n            new Opentelekomcloud.Inputs.ObsBucketLoggingArgs\n            {\n                TargetBucket = logBucket.ObsBucketId,\n                TargetPrefix = \"log/\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tlogBucket, err := opentelekomcloud.NewObsBucket(ctx, \"log_bucket\", &opentelekomcloud.ObsBucketArgs{\n\t\t\tBucket: pulumi.String(\"my-tf-log-bucket\"),\n\t\t\tAcl:    pulumi.String(\"log-delivery-write\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewObsBucket(ctx, \"b\", &opentelekomcloud.ObsBucketArgs{\n\t\t\tBucket: pulumi.String(\"my-tf-test-bucket\"),\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t\tLoggings: opentelekomcloud.ObsBucketLoggingArray{\n\t\t\t\t&opentelekomcloud.ObsBucketLoggingArgs{\n\t\t\t\t\tTargetBucket: logBucket.ObsBucketId,\n\t\t\t\t\tTargetPrefix: pulumi.String(\"log/\"),\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.opentelekomcloud.ObsBucket;\nimport com.pulumi.opentelekomcloud.ObsBucketArgs;\nimport com.pulumi.opentelekomcloud.inputs.ObsBucketLoggingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var logBucket = new ObsBucket(\"logBucket\", ObsBucketArgs.builder()\n            .bucket(\"my-tf-log-bucket\")\n            .acl(\"log-delivery-write\")\n            .build());\n\n        var b = new ObsBucket(\"b\", ObsBucketArgs.builder()\n            .bucket(\"my-tf-test-bucket\")\n            .acl(\"private\")\n            .loggings(ObsBucketLoggingArgs.builder()\n                .targetBucket(logBucket.obsBucketId())\n                .targetPrefix(\"log/\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  logBucket:\n    type: opentelekomcloud:ObsBucket\n    name: log_bucket\n    properties:\n      bucket: my-tf-log-bucket\n      acl: log-delivery-write\n  b:\n    type: opentelekomcloud:ObsBucket\n    properties:\n      bucket: my-tf-test-bucket\n      acl: private\n      loggings:\n        - targetBucket: ${logBucket.obsBucketId}\n          targetPrefix: log/\n```\n<!--End PulumiCodeChooser -->\n\n### Static Website Hosting\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst b = new opentelekomcloud.ObsBucket(\"b\", {\n    bucket: \"obs-website-test.hashicorp.com\",\n    acl: \"public-read\",\n    website: {\n        indexDocument: \"index.html\",\n        errorDocument: \"error.html\",\n        routingRules: `[{\n    \\\\\"Condition\\\\\": {\n        \\\\\"KeyPrefixEquals\\\\\": \\\\\"docs/\\\\\"\n    },\n    \\\\\"Redirect\\\\\": {\n        \\\\\"ReplaceKeyPrefixWith\\\\\": \\\\\"documents/\\\\\"\n    }\n}]\n`,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nb = opentelekomcloud.ObsBucket(\"b\",\n    bucket=\"obs-website-test.hashicorp.com\",\n    acl=\"public-read\",\n    website={\n        \"index_document\": \"index.html\",\n        \"error_document\": \"error.html\",\n        \"routing_rules\": \"\"\"[{\n    \\\"Condition\\\": {\n        \\\"KeyPrefixEquals\\\": \\\"docs/\\\"\n    },\n    \\\"Redirect\\\": {\n        \\\"ReplaceKeyPrefixWith\\\": \\\"documents/\\\"\n    }\n}]\n\"\"\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var b = new Opentelekomcloud.ObsBucket(\"b\", new()\n    {\n        Bucket = \"obs-website-test.hashicorp.com\",\n        Acl = \"public-read\",\n        Website = new Opentelekomcloud.Inputs.ObsBucketWebsiteArgs\n        {\n            IndexDocument = \"index.html\",\n            ErrorDocument = \"error.html\",\n            RoutingRules = @\"[{\n    \\\"\"Condition\\\"\": {\n        \\\"\"KeyPrefixEquals\\\"\": \\\"\"docs/\\\"\"\n    },\n    \\\"\"Redirect\\\"\": {\n        \\\"\"ReplaceKeyPrefixWith\\\"\": \\\"\"documents/\\\"\"\n    }\n}]\n\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewObsBucket(ctx, \"b\", &opentelekomcloud.ObsBucketArgs{\n\t\t\tBucket: pulumi.String(\"obs-website-test.hashicorp.com\"),\n\t\t\tAcl:    pulumi.String(\"public-read\"),\n\t\t\tWebsite: &opentelekomcloud.ObsBucketWebsiteArgs{\n\t\t\t\tIndexDocument: pulumi.String(\"index.html\"),\n\t\t\t\tErrorDocument: pulumi.String(\"error.html\"),\n\t\t\t\tRoutingRules: pulumi.String(`[{\n    \\\"Condition\\\": {\n        \\\"KeyPrefixEquals\\\": \\\"docs/\\\"\n    },\n    \\\"Redirect\\\": {\n        \\\"ReplaceKeyPrefixWith\\\": \\\"documents/\\\"\n    }\n}]\n`),\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.opentelekomcloud.ObsBucket;\nimport com.pulumi.opentelekomcloud.ObsBucketArgs;\nimport com.pulumi.opentelekomcloud.inputs.ObsBucketWebsiteArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var b = new ObsBucket(\"b\", ObsBucketArgs.builder()\n            .bucket(\"obs-website-test.hashicorp.com\")\n            .acl(\"public-read\")\n            .website(ObsBucketWebsiteArgs.builder()\n                .indexDocument(\"index.html\")\n                .errorDocument(\"error.html\")\n                .routingRules(\"\"\"\n[{\n    \\\"Condition\\\": {\n        \\\"KeyPrefixEquals\\\": \\\"docs/\\\"\n    },\n    \\\"Redirect\\\": {\n        \\\"ReplaceKeyPrefixWith\\\": \\\"documents/\\\"\n    }\n}]\n                \"\"\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  b:\n    type: opentelekomcloud:ObsBucket\n    properties:\n      bucket: obs-website-test.hashicorp.com\n      acl: public-read\n      website:\n        indexDocument: index.html\n        errorDocument: error.html\n        routingRules: |\n          [{\n              \\\"Condition\\\": {\n                  \\\"KeyPrefixEquals\\\": \\\"docs/\\\"\n              },\n              \\\"Redirect\\\": {\n                  \\\"ReplaceKeyPrefixWith\\\": \\\"documents/\\\"\n              }\n          }]\n```\n<!--End PulumiCodeChooser -->\n\n### Using CORS\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst b = new opentelekomcloud.ObsBucket(\"b\", {\n    bucket: \"obs-website-test.hashicorp.com\",\n    acl: \"public-read\",\n    corsRules: [{\n        allowedOrigins: [\"https://obs-website-test.hashicorp.com\"],\n        allowedMethods: [\n            \"PUT\",\n            \"POST\",\n        ],\n        allowedHeaders: [\"*\"],\n        exposeHeaders: [\"ETag\"],\n        maxAgeSeconds: 3000,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nb = opentelekomcloud.ObsBucket(\"b\",\n    bucket=\"obs-website-test.hashicorp.com\",\n    acl=\"public-read\",\n    cors_rules=[{\n        \"allowed_origins\": [\"https://obs-website-test.hashicorp.com\"],\n        \"allowed_methods\": [\n            \"PUT\",\n            \"POST\",\n        ],\n        \"allowed_headers\": [\"*\"],\n        \"expose_headers\": [\"ETag\"],\n        \"max_age_seconds\": 3000,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var b = new Opentelekomcloud.ObsBucket(\"b\", new()\n    {\n        Bucket = \"obs-website-test.hashicorp.com\",\n        Acl = \"public-read\",\n        CorsRules = new[]\n        {\n            new Opentelekomcloud.Inputs.ObsBucketCorsRuleArgs\n            {\n                AllowedOrigins = new[]\n                {\n                    \"https://obs-website-test.hashicorp.com\",\n                },\n                AllowedMethods = new[]\n                {\n                    \"PUT\",\n                    \"POST\",\n                },\n                AllowedHeaders = new[]\n                {\n                    \"*\",\n                },\n                ExposeHeaders = new[]\n                {\n                    \"ETag\",\n                },\n                MaxAgeSeconds = 3000,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewObsBucket(ctx, \"b\", &opentelekomcloud.ObsBucketArgs{\n\t\t\tBucket: pulumi.String(\"obs-website-test.hashicorp.com\"),\n\t\t\tAcl:    pulumi.String(\"public-read\"),\n\t\t\tCorsRules: opentelekomcloud.ObsBucketCorsRuleArray{\n\t\t\t\t&opentelekomcloud.ObsBucketCorsRuleArgs{\n\t\t\t\t\tAllowedOrigins: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"https://obs-website-test.hashicorp.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tAllowedMethods: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"PUT\"),\n\t\t\t\t\t\tpulumi.String(\"POST\"),\n\t\t\t\t\t},\n\t\t\t\t\tAllowedHeaders: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"*\"),\n\t\t\t\t\t},\n\t\t\t\t\tExposeHeaders: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ETag\"),\n\t\t\t\t\t},\n\t\t\t\t\tMaxAgeSeconds: pulumi.Float64(3000),\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.opentelekomcloud.ObsBucket;\nimport com.pulumi.opentelekomcloud.ObsBucketArgs;\nimport com.pulumi.opentelekomcloud.inputs.ObsBucketCorsRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var b = new ObsBucket(\"b\", ObsBucketArgs.builder()\n            .bucket(\"obs-website-test.hashicorp.com\")\n            .acl(\"public-read\")\n            .corsRules(ObsBucketCorsRuleArgs.builder()\n                .allowedOrigins(\"https://obs-website-test.hashicorp.com\")\n                .allowedMethods(                \n                    \"PUT\",\n                    \"POST\")\n                .allowedHeaders(\"*\")\n                .exposeHeaders(\"ETag\")\n                .maxAgeSeconds(3000.0)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  b:\n    type: opentelekomcloud:ObsBucket\n    properties:\n      bucket: obs-website-test.hashicorp.com\n      acl: public-read\n      corsRules:\n        - allowedOrigins:\n            - https://obs-website-test.hashicorp.com\n          allowedMethods:\n            - PUT\n            - POST\n          allowedHeaders:\n            - '*'\n          exposeHeaders:\n            - ETag\n          maxAgeSeconds: 3000\n```\n<!--End PulumiCodeChooser -->\n\n### Using server side encryption for the bucket\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst bucket = new opentelekomcloud.ObsBucket(\"bucket\", {\n    bucket: \"my-bucket\",\n    storageClass: \"WARM\",\n    acl: \"public-read\",\n    serverSideEncryption: {\n        algorithm: \"kms\",\n        kmsKeyId: kmsMasterKeyId,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nbucket = opentelekomcloud.ObsBucket(\"bucket\",\n    bucket=\"my-bucket\",\n    storage_class=\"WARM\",\n    acl=\"public-read\",\n    server_side_encryption={\n        \"algorithm\": \"kms\",\n        \"kms_key_id\": kms_master_key_id,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var bucket = new Opentelekomcloud.ObsBucket(\"bucket\", new()\n    {\n        Bucket = \"my-bucket\",\n        StorageClass = \"WARM\",\n        Acl = \"public-read\",\n        ServerSideEncryption = new Opentelekomcloud.Inputs.ObsBucketServerSideEncryptionArgs\n        {\n            Algorithm = \"kms\",\n            KmsKeyId = kmsMasterKeyId,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewObsBucket(ctx, \"bucket\", &opentelekomcloud.ObsBucketArgs{\n\t\t\tBucket:       pulumi.String(\"my-bucket\"),\n\t\t\tStorageClass: pulumi.String(\"WARM\"),\n\t\t\tAcl:          pulumi.String(\"public-read\"),\n\t\t\tServerSideEncryption: &opentelekomcloud.ObsBucketServerSideEncryptionArgs{\n\t\t\t\tAlgorithm: pulumi.String(\"kms\"),\n\t\t\t\tKmsKeyId:  pulumi.Any(kmsMasterKeyId),\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.opentelekomcloud.ObsBucket;\nimport com.pulumi.opentelekomcloud.ObsBucketArgs;\nimport com.pulumi.opentelekomcloud.inputs.ObsBucketServerSideEncryptionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var bucket = new ObsBucket(\"bucket\", ObsBucketArgs.builder()\n            .bucket(\"my-bucket\")\n            .storageClass(\"WARM\")\n            .acl(\"public-read\")\n            .serverSideEncryption(ObsBucketServerSideEncryptionArgs.builder()\n                .algorithm(\"kms\")\n                .kmsKeyId(kmsMasterKeyId)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  bucket:\n    type: opentelekomcloud:ObsBucket\n    properties:\n      bucket: my-bucket\n      storageClass: WARM\n      acl: public-read\n      serverSideEncryption:\n        algorithm: kms\n        kmsKeyId: ${kmsMasterKeyId}\n```\n<!--End PulumiCodeChooser -->\n\n### Using server side encryption with the least amount of required KMS privileges\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst thisKmsKeyV1 = new opentelekomcloud.KmsKeyV1(\"this\", {\n    keyAlias: kmsAlias,\n    pendingDays: \"7\",\n    keyDescription: kmsDesc,\n    realm: region,\n    isEnabled: true,\n});\nconst thisKms = new opentelekomcloud.IdentityRoleV3(\"this_kms\", {\n    description: roleKmsDesc,\n    displayName: roleKmsDisplayName,\n    displayLayer: \"project\",\n    statements: [\n        {\n            effect: \"Allow\",\n            actions: [\n                \"kms:cmk:list\",\n                \"kms:cmk:get\",\n            ],\n        },\n        {\n            effect: \"Allow\",\n            resources: [pulumi.interpolate`KMS:*:*:KeyId:${thisKmsKeyV1.kmsKeyV1Id}`],\n            actions: [\n                \"kms:cmk:generate\",\n                \"kms:dek:create\",\n                \"kms:cmk:crypto\",\n                \"kms:dek:crypto\",\n            ],\n        },\n    ],\n});\nconst thisObsBucket = new opentelekomcloud.ObsBucket(\"this\", {\n    bucket: bucketName,\n    acl: \"private\",\n    serverSideEncryption: {\n        algorithm: \"kms\",\n        kmsKeyId: thisKmsKeyV1.kmsKeyV1Id,\n    },\n});\nconst thisObs = new opentelekomcloud.IdentityRoleV3(\"this_obs\", {\n    description: roleObsDesc,\n    displayName: roleObsDisplayName,\n    displayLayer: \"domain\",\n    statements: [{\n        effect: \"Allow\",\n        resources: [\n            pulumi.interpolate`OBS:*:*:bucket:${thisObsBucket.obsBucketId}`,\n            \"OBS:*:*:object:*\",\n        ],\n        actions: [\n            \"obs:object:DeleteObject\",\n            \"obs:object:PutObject\",\n            \"obs:object:GetObject\",\n            \"obs:bucket:ListBucket\",\n            \"obs:bucket:GetEncryptionConfiguration\",\n        ],\n    }],\n});\nconst _this = new opentelekomcloud.IdentityUserV3(\"this\", {\n    name: userName,\n    description: userDesc,\n    accessType: \"programmatic\",\n});\nconst thisIdentityGroupV3 = new opentelekomcloud.IdentityGroupV3(\"this\", {\n    name: userGroupName,\n    description: userGroupDesc,\n});\nconst thisKmsIdentityRoleAssignmentV3 = new opentelekomcloud.IdentityRoleAssignmentV3(\"this_kms\", {\n    groupId: thisIdentityGroupV3.identityGroupV3Id,\n    domainId: domainId,\n    roleId: thisKms.identityRoleV3Id,\n    allProjects: true,\n});\nconst thisObsIdentityRoleAssignmentV3 = new opentelekomcloud.IdentityRoleAssignmentV3(\"this_obs\", {\n    groupId: thisIdentityGroupV3.identityGroupV3Id,\n    domainId: domainId,\n    roleId: thisObs.identityRoleV3Id,\n    allProjects: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nthis_kms_key_v1 = opentelekomcloud.KmsKeyV1(\"this\",\n    key_alias=kms_alias,\n    pending_days=\"7\",\n    key_description=kms_desc,\n    realm=region,\n    is_enabled=True)\nthis_kms = opentelekomcloud.IdentityRoleV3(\"this_kms\",\n    description=role_kms_desc,\n    display_name=role_kms_display_name,\n    display_layer=\"project\",\n    statements=[\n        {\n            \"effect\": \"Allow\",\n            \"actions\": [\n                \"kms:cmk:list\",\n                \"kms:cmk:get\",\n            ],\n        },\n        {\n            \"effect\": \"Allow\",\n            \"resources\": [this_kms_key_v1.kms_key_v1_id.apply(lambda kms_key_v1_id: f\"KMS:*:*:KeyId:{kms_key_v1_id}\")],\n            \"actions\": [\n                \"kms:cmk:generate\",\n                \"kms:dek:create\",\n                \"kms:cmk:crypto\",\n                \"kms:dek:crypto\",\n            ],\n        },\n    ])\nthis_obs_bucket = opentelekomcloud.ObsBucket(\"this\",\n    bucket=bucket_name,\n    acl=\"private\",\n    server_side_encryption={\n        \"algorithm\": \"kms\",\n        \"kms_key_id\": this_kms_key_v1.kms_key_v1_id,\n    })\nthis_obs = opentelekomcloud.IdentityRoleV3(\"this_obs\",\n    description=role_obs_desc,\n    display_name=role_obs_display_name,\n    display_layer=\"domain\",\n    statements=[{\n        \"effect\": \"Allow\",\n        \"resources\": [\n            this_obs_bucket.obs_bucket_id.apply(lambda obs_bucket_id: f\"OBS:*:*:bucket:{obs_bucket_id}\"),\n            \"OBS:*:*:object:*\",\n        ],\n        \"actions\": [\n            \"obs:object:DeleteObject\",\n            \"obs:object:PutObject\",\n            \"obs:object:GetObject\",\n            \"obs:bucket:ListBucket\",\n            \"obs:bucket:GetEncryptionConfiguration\",\n        ],\n    }])\nthis = opentelekomcloud.IdentityUserV3(\"this\",\n    name=user_name,\n    description=user_desc,\n    access_type=\"programmatic\")\nthis_identity_group_v3 = opentelekomcloud.IdentityGroupV3(\"this\",\n    name=user_group_name,\n    description=user_group_desc)\nthis_kms_identity_role_assignment_v3 = opentelekomcloud.IdentityRoleAssignmentV3(\"this_kms\",\n    group_id=this_identity_group_v3.identity_group_v3_id,\n    domain_id=domain_id,\n    role_id=this_kms.identity_role_v3_id,\n    all_projects=True)\nthis_obs_identity_role_assignment_v3 = opentelekomcloud.IdentityRoleAssignmentV3(\"this_obs\",\n    group_id=this_identity_group_v3.identity_group_v3_id,\n    domain_id=domain_id,\n    role_id=this_obs.identity_role_v3_id,\n    all_projects=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var thisKmsKeyV1 = new Opentelekomcloud.KmsKeyV1(\"this\", new()\n    {\n        KeyAlias = kmsAlias,\n        PendingDays = \"7\",\n        KeyDescription = kmsDesc,\n        Realm = region,\n        IsEnabled = true,\n    });\n\n    var thisKms = new Opentelekomcloud.IdentityRoleV3(\"this_kms\", new()\n    {\n        Description = roleKmsDesc,\n        DisplayName = roleKmsDisplayName,\n        DisplayLayer = \"project\",\n        Statements = new[]\n        {\n            new Opentelekomcloud.Inputs.IdentityRoleV3StatementArgs\n            {\n                Effect = \"Allow\",\n                Actions = new[]\n                {\n                    \"kms:cmk:list\",\n                    \"kms:cmk:get\",\n                },\n            },\n            new Opentelekomcloud.Inputs.IdentityRoleV3StatementArgs\n            {\n                Effect = \"Allow\",\n                Resources = new[]\n                {\n                    thisKmsKeyV1.KmsKeyV1Id.Apply(kmsKeyV1Id => $\"KMS:*:*:KeyId:{kmsKeyV1Id}\"),\n                },\n                Actions = new[]\n                {\n                    \"kms:cmk:generate\",\n                    \"kms:dek:create\",\n                    \"kms:cmk:crypto\",\n                    \"kms:dek:crypto\",\n                },\n            },\n        },\n    });\n\n    var thisObsBucket = new Opentelekomcloud.ObsBucket(\"this\", new()\n    {\n        Bucket = bucketName,\n        Acl = \"private\",\n        ServerSideEncryption = new Opentelekomcloud.Inputs.ObsBucketServerSideEncryptionArgs\n        {\n            Algorithm = \"kms\",\n            KmsKeyId = thisKmsKeyV1.KmsKeyV1Id,\n        },\n    });\n\n    var thisObs = new Opentelekomcloud.IdentityRoleV3(\"this_obs\", new()\n    {\n        Description = roleObsDesc,\n        DisplayName = roleObsDisplayName,\n        DisplayLayer = \"domain\",\n        Statements = new[]\n        {\n            new Opentelekomcloud.Inputs.IdentityRoleV3StatementArgs\n            {\n                Effect = \"Allow\",\n                Resources = new[]\n                {\n                    thisObsBucket.ObsBucketId.Apply(obsBucketId => $\"OBS:*:*:bucket:{obsBucketId}\"),\n                    \"OBS:*:*:object:*\",\n                },\n                Actions = new[]\n                {\n                    \"obs:object:DeleteObject\",\n                    \"obs:object:PutObject\",\n                    \"obs:object:GetObject\",\n                    \"obs:bucket:ListBucket\",\n                    \"obs:bucket:GetEncryptionConfiguration\",\n                },\n            },\n        },\n    });\n\n    var @this = new Opentelekomcloud.IdentityUserV3(\"this\", new()\n    {\n        Name = userName,\n        Description = userDesc,\n        AccessType = \"programmatic\",\n    });\n\n    var thisIdentityGroupV3 = new Opentelekomcloud.IdentityGroupV3(\"this\", new()\n    {\n        Name = userGroupName,\n        Description = userGroupDesc,\n    });\n\n    var thisKmsIdentityRoleAssignmentV3 = new Opentelekomcloud.IdentityRoleAssignmentV3(\"this_kms\", new()\n    {\n        GroupId = thisIdentityGroupV3.IdentityGroupV3Id,\n        DomainId = domainId,\n        RoleId = thisKms.IdentityRoleV3Id,\n        AllProjects = true,\n    });\n\n    var thisObsIdentityRoleAssignmentV3 = new Opentelekomcloud.IdentityRoleAssignmentV3(\"this_obs\", new()\n    {\n        GroupId = thisIdentityGroupV3.IdentityGroupV3Id,\n        DomainId = domainId,\n        RoleId = thisObs.IdentityRoleV3Id,\n        AllProjects = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthisKmsKeyV1, err := opentelekomcloud.NewKmsKeyV1(ctx, \"this\", &opentelekomcloud.KmsKeyV1Args{\n\t\t\tKeyAlias:       pulumi.Any(kmsAlias),\n\t\t\tPendingDays:    pulumi.String(\"7\"),\n\t\t\tKeyDescription: pulumi.Any(kmsDesc),\n\t\t\tRealm:          pulumi.Any(region),\n\t\t\tIsEnabled:      pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthisKms, err := opentelekomcloud.NewIdentityRoleV3(ctx, \"this_kms\", &opentelekomcloud.IdentityRoleV3Args{\n\t\t\tDescription:  pulumi.Any(roleKmsDesc),\n\t\t\tDisplayName:  pulumi.Any(roleKmsDisplayName),\n\t\t\tDisplayLayer: pulumi.String(\"project\"),\n\t\t\tStatements: opentelekomcloud.IdentityRoleV3StatementArray{\n\t\t\t\t&opentelekomcloud.IdentityRoleV3StatementArgs{\n\t\t\t\t\tEffect: pulumi.String(\"Allow\"),\n\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"kms:cmk:list\"),\n\t\t\t\t\t\tpulumi.String(\"kms:cmk:get\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.IdentityRoleV3StatementArgs{\n\t\t\t\t\tEffect: pulumi.String(\"Allow\"),\n\t\t\t\t\tResources: pulumi.StringArray{\n\t\t\t\t\t\tthisKmsKeyV1.KmsKeyV1Id.ApplyT(func(kmsKeyV1Id string) (string, error) {\n\t\t\t\t\t\t\treturn fmt.Sprintf(\"KMS:*:*:KeyId:%v\", kmsKeyV1Id), nil\n\t\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t\t},\n\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"kms:cmk:generate\"),\n\t\t\t\t\t\tpulumi.String(\"kms:dek:create\"),\n\t\t\t\t\t\tpulumi.String(\"kms:cmk:crypto\"),\n\t\t\t\t\t\tpulumi.String(\"kms:dek:crypto\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthisObsBucket, err := opentelekomcloud.NewObsBucket(ctx, \"this\", &opentelekomcloud.ObsBucketArgs{\n\t\t\tBucket: pulumi.Any(bucketName),\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t\tServerSideEncryption: &opentelekomcloud.ObsBucketServerSideEncryptionArgs{\n\t\t\t\tAlgorithm: pulumi.String(\"kms\"),\n\t\t\t\tKmsKeyId:  thisKmsKeyV1.KmsKeyV1Id,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthisObs, err := opentelekomcloud.NewIdentityRoleV3(ctx, \"this_obs\", &opentelekomcloud.IdentityRoleV3Args{\n\t\t\tDescription:  pulumi.Any(roleObsDesc),\n\t\t\tDisplayName:  pulumi.Any(roleObsDisplayName),\n\t\t\tDisplayLayer: pulumi.String(\"domain\"),\n\t\t\tStatements: opentelekomcloud.IdentityRoleV3StatementArray{\n\t\t\t\t&opentelekomcloud.IdentityRoleV3StatementArgs{\n\t\t\t\t\tEffect: pulumi.String(\"Allow\"),\n\t\t\t\t\tResources: pulumi.StringArray{\n\t\t\t\t\t\tthisObsBucket.ObsBucketId.ApplyT(func(obsBucketId string) (string, error) {\n\t\t\t\t\t\t\treturn fmt.Sprintf(\"OBS:*:*:bucket:%v\", obsBucketId), nil\n\t\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t\t\tpulumi.String(\"OBS:*:*:object:*\"),\n\t\t\t\t\t},\n\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"obs:object:DeleteObject\"),\n\t\t\t\t\t\tpulumi.String(\"obs:object:PutObject\"),\n\t\t\t\t\t\tpulumi.String(\"obs:object:GetObject\"),\n\t\t\t\t\t\tpulumi.String(\"obs:bucket:ListBucket\"),\n\t\t\t\t\t\tpulumi.String(\"obs:bucket:GetEncryptionConfiguration\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewIdentityUserV3(ctx, \"this\", &opentelekomcloud.IdentityUserV3Args{\n\t\t\tName:        pulumi.Any(userName),\n\t\t\tDescription: pulumi.Any(userDesc),\n\t\t\tAccessType:  pulumi.String(\"programmatic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthisIdentityGroupV3, err := opentelekomcloud.NewIdentityGroupV3(ctx, \"this\", &opentelekomcloud.IdentityGroupV3Args{\n\t\t\tName:        pulumi.Any(userGroupName),\n\t\t\tDescription: pulumi.Any(userGroupDesc),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewIdentityRoleAssignmentV3(ctx, \"this_kms\", &opentelekomcloud.IdentityRoleAssignmentV3Args{\n\t\t\tGroupId:     thisIdentityGroupV3.IdentityGroupV3Id,\n\t\t\tDomainId:    pulumi.Any(domainId),\n\t\t\tRoleId:      thisKms.IdentityRoleV3Id,\n\t\t\tAllProjects: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewIdentityRoleAssignmentV3(ctx, \"this_obs\", &opentelekomcloud.IdentityRoleAssignmentV3Args{\n\t\t\tGroupId:     thisIdentityGroupV3.IdentityGroupV3Id,\n\t\t\tDomainId:    pulumi.Any(domainId),\n\t\t\tRoleId:      thisObs.IdentityRoleV3Id,\n\t\t\tAllProjects: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.KmsKeyV1;\nimport com.pulumi.opentelekomcloud.KmsKeyV1Args;\nimport com.pulumi.opentelekomcloud.IdentityRoleV3;\nimport com.pulumi.opentelekomcloud.IdentityRoleV3Args;\nimport com.pulumi.opentelekomcloud.inputs.IdentityRoleV3StatementArgs;\nimport com.pulumi.opentelekomcloud.ObsBucket;\nimport com.pulumi.opentelekomcloud.ObsBucketArgs;\nimport com.pulumi.opentelekomcloud.inputs.ObsBucketServerSideEncryptionArgs;\nimport com.pulumi.opentelekomcloud.IdentityUserV3;\nimport com.pulumi.opentelekomcloud.IdentityUserV3Args;\nimport com.pulumi.opentelekomcloud.IdentityGroupV3;\nimport com.pulumi.opentelekomcloud.IdentityGroupV3Args;\nimport com.pulumi.opentelekomcloud.IdentityRoleAssignmentV3;\nimport com.pulumi.opentelekomcloud.IdentityRoleAssignmentV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var thisKmsKeyV1 = new KmsKeyV1(\"thisKmsKeyV1\", KmsKeyV1Args.builder()\n            .keyAlias(kmsAlias)\n            .pendingDays(\"7\")\n            .keyDescription(kmsDesc)\n            .realm(region)\n            .isEnabled(true)\n            .build());\n\n        var thisKms = new IdentityRoleV3(\"thisKms\", IdentityRoleV3Args.builder()\n            .description(roleKmsDesc)\n            .displayName(roleKmsDisplayName)\n            .displayLayer(\"project\")\n            .statements(            \n                IdentityRoleV3StatementArgs.builder()\n                    .effect(\"Allow\")\n                    .actions(                    \n                        \"kms:cmk:list\",\n                        \"kms:cmk:get\")\n                    .build(),\n                IdentityRoleV3StatementArgs.builder()\n                    .effect(\"Allow\")\n                    .resources(thisKmsKeyV1.kmsKeyV1Id().applyValue(_kmsKeyV1Id -> String.format(\"KMS:*:*:KeyId:%s\", _kmsKeyV1Id)))\n                    .actions(                    \n                        \"kms:cmk:generate\",\n                        \"kms:dek:create\",\n                        \"kms:cmk:crypto\",\n                        \"kms:dek:crypto\")\n                    .build())\n            .build());\n\n        var thisObsBucket = new ObsBucket(\"thisObsBucket\", ObsBucketArgs.builder()\n            .bucket(bucketName)\n            .acl(\"private\")\n            .serverSideEncryption(ObsBucketServerSideEncryptionArgs.builder()\n                .algorithm(\"kms\")\n                .kmsKeyId(thisKmsKeyV1.kmsKeyV1Id())\n                .build())\n            .build());\n\n        var thisObs = new IdentityRoleV3(\"thisObs\", IdentityRoleV3Args.builder()\n            .description(roleObsDesc)\n            .displayName(roleObsDisplayName)\n            .displayLayer(\"domain\")\n            .statements(IdentityRoleV3StatementArgs.builder()\n                .effect(\"Allow\")\n                .resources(                \n                    thisObsBucket.obsBucketId().applyValue(_obsBucketId -> String.format(\"OBS:*:*:bucket:%s\", _obsBucketId)),\n                    \"OBS:*:*:object:*\")\n                .actions(                \n                    \"obs:object:DeleteObject\",\n                    \"obs:object:PutObject\",\n                    \"obs:object:GetObject\",\n                    \"obs:bucket:ListBucket\",\n                    \"obs:bucket:GetEncryptionConfiguration\")\n                .build())\n            .build());\n\n        var this_ = new IdentityUserV3(\"this\", IdentityUserV3Args.builder()\n            .name(userName)\n            .description(userDesc)\n            .accessType(\"programmatic\")\n            .build());\n\n        var thisIdentityGroupV3 = new IdentityGroupV3(\"thisIdentityGroupV3\", IdentityGroupV3Args.builder()\n            .name(userGroupName)\n            .description(userGroupDesc)\n            .build());\n\n        var thisKmsIdentityRoleAssignmentV3 = new IdentityRoleAssignmentV3(\"thisKmsIdentityRoleAssignmentV3\", IdentityRoleAssignmentV3Args.builder()\n            .groupId(thisIdentityGroupV3.identityGroupV3Id())\n            .domainId(domainId)\n            .roleId(thisKms.identityRoleV3Id())\n            .allProjects(true)\n            .build());\n\n        var thisObsIdentityRoleAssignmentV3 = new IdentityRoleAssignmentV3(\"thisObsIdentityRoleAssignmentV3\", IdentityRoleAssignmentV3Args.builder()\n            .groupId(thisIdentityGroupV3.identityGroupV3Id())\n            .domainId(domainId)\n            .roleId(thisObs.identityRoleV3Id())\n            .allProjects(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  thisKms:\n    type: opentelekomcloud:IdentityRoleV3\n    name: this_kms\n    properties:\n      description: ${roleKmsDesc}\n      displayName: ${roleKmsDisplayName}\n      displayLayer: project\n      statements:\n        - effect: Allow\n          actions:\n            - kms:cmk:list\n            - kms:cmk:get\n        - effect: Allow\n          resources:\n            - KMS:*:*:KeyId:${thisKmsKeyV1.kmsKeyV1Id}\n          actions:\n            - kms:cmk:generate\n            - kms:dek:create\n            - kms:cmk:crypto\n            - kms:dek:crypto\n  thisObs:\n    type: opentelekomcloud:IdentityRoleV3\n    name: this_obs\n    properties:\n      description: ${roleObsDesc}\n      displayName: ${roleObsDisplayName}\n      displayLayer: domain\n      statements:\n        - effect: Allow\n          resources:\n            - OBS:*:*:bucket:${thisObsBucket.obsBucketId}\n            - OBS:*:*:object:*\n          actions:\n            - obs:object:DeleteObject\n            - obs:object:PutObject\n            - obs:object:GetObject\n            - obs:bucket:ListBucket\n            - obs:bucket:GetEncryptionConfiguration\n  this:\n    type: opentelekomcloud:IdentityUserV3\n    properties:\n      name: ${userName}\n      description: ${userDesc}\n      accessType: programmatic\n  thisIdentityGroupV3:\n    type: opentelekomcloud:IdentityGroupV3\n    name: this\n    properties:\n      name: ${userGroupName}\n      description: ${userGroupDesc}\n  thisKmsIdentityRoleAssignmentV3:\n    type: opentelekomcloud:IdentityRoleAssignmentV3\n    name: this_kms\n    properties:\n      groupId: ${thisIdentityGroupV3.identityGroupV3Id}\n      domainId: ${domainId}\n      roleId: ${thisKms.identityRoleV3Id}\n      allProjects: true\n  thisObsIdentityRoleAssignmentV3:\n    type: opentelekomcloud:IdentityRoleAssignmentV3\n    name: this_obs\n    properties:\n      groupId: ${thisIdentityGroupV3.identityGroupV3Id}\n      domainId: ${domainId}\n      roleId: ${thisObs.identityRoleV3Id}\n      allProjects: true\n  thisKmsKeyV1:\n    type: opentelekomcloud:KmsKeyV1\n    name: this\n    properties:\n      keyAlias: ${kmsAlias}\n      pendingDays: '7'\n      keyDescription: ${kmsDesc}\n      realm: ${region}\n      isEnabled: true\n  thisObsBucket:\n    type: opentelekomcloud:ObsBucket\n    name: this\n    properties:\n      bucket: ${bucketName}\n      acl: private\n      serverSideEncryption:\n        algorithm: kms\n        kmsKeyId: ${thisKmsKeyV1.kmsKeyV1Id}\n```\n<!--End PulumiCodeChooser -->\n\n### Using object lifecycle\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst bucket = new opentelekomcloud.ObsBucket(\"bucket\", {\n    bucket: \"my-bucket\",\n    acl: \"private\",\n    versioning: true,\n    lifecycleRules: [\n        {\n            name: \"log\",\n            prefix: \"log/\",\n            enabled: true,\n            expirations: [{\n                days: 365,\n            }],\n            transitions: [\n                {\n                    days: 60,\n                    storageClass: \"WARM\",\n                },\n                {\n                    days: 180,\n                    storageClass: \"COLD\",\n                },\n            ],\n            abortIncompleteMultipartUploads: [{\n                days: 360,\n            }],\n        },\n        {\n            name: \"tmp\",\n            prefix: \"tmp/\",\n            enabled: true,\n            tags: [\n                {\n                    key: \"key1\",\n                    value: \"value1\",\n                },\n                {\n                    key: \"key2\",\n                    value: \"value2\",\n                },\n            ],\n            noncurrentVersionExpirations: [{\n                days: 180,\n            }],\n            noncurrentVersionTransitions: [\n                {\n                    days: 30,\n                    storageClass: \"WARM\",\n                },\n                {\n                    days: 60,\n                    storageClass: \"COLD\",\n                },\n            ],\n            abortIncompleteMultipartUploads: [{\n                days: 180,\n            }],\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nbucket = opentelekomcloud.ObsBucket(\"bucket\",\n    bucket=\"my-bucket\",\n    acl=\"private\",\n    versioning=True,\n    lifecycle_rules=[\n        {\n            \"name\": \"log\",\n            \"prefix\": \"log/\",\n            \"enabled\": True,\n            \"expirations\": [{\n                \"days\": 365,\n            }],\n            \"transitions\": [\n                {\n                    \"days\": 60,\n                    \"storage_class\": \"WARM\",\n                },\n                {\n                    \"days\": 180,\n                    \"storage_class\": \"COLD\",\n                },\n            ],\n            \"abort_incomplete_multipart_uploads\": [{\n                \"days\": 360,\n            }],\n        },\n        {\n            \"name\": \"tmp\",\n            \"prefix\": \"tmp/\",\n            \"enabled\": True,\n            \"tags\": [\n                {\n                    \"key\": \"key1\",\n                    \"value\": \"value1\",\n                },\n                {\n                    \"key\": \"key2\",\n                    \"value\": \"value2\",\n                },\n            ],\n            \"noncurrent_version_expirations\": [{\n                \"days\": 180,\n            }],\n            \"noncurrent_version_transitions\": [\n                {\n                    \"days\": 30,\n                    \"storage_class\": \"WARM\",\n                },\n                {\n                    \"days\": 60,\n                    \"storage_class\": \"COLD\",\n                },\n            ],\n            \"abort_incomplete_multipart_uploads\": [{\n                \"days\": 180,\n            }],\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var bucket = new Opentelekomcloud.ObsBucket(\"bucket\", new()\n    {\n        Bucket = \"my-bucket\",\n        Acl = \"private\",\n        Versioning = true,\n        LifecycleRules = new[]\n        {\n            new Opentelekomcloud.Inputs.ObsBucketLifecycleRuleArgs\n            {\n                Name = \"log\",\n                Prefix = \"log/\",\n                Enabled = true,\n                Expirations = new[]\n                {\n                    new Opentelekomcloud.Inputs.ObsBucketLifecycleRuleExpirationArgs\n                    {\n                        Days = 365,\n                    },\n                },\n                Transitions = new[]\n                {\n                    new Opentelekomcloud.Inputs.ObsBucketLifecycleRuleTransitionArgs\n                    {\n                        Days = 60,\n                        StorageClass = \"WARM\",\n                    },\n                    new Opentelekomcloud.Inputs.ObsBucketLifecycleRuleTransitionArgs\n                    {\n                        Days = 180,\n                        StorageClass = \"COLD\",\n                    },\n                },\n                AbortIncompleteMultipartUploads = new[]\n                {\n                    new Opentelekomcloud.Inputs.ObsBucketLifecycleRuleAbortIncompleteMultipartUploadArgs\n                    {\n                        Days = 360,\n                    },\n                },\n            },\n            new Opentelekomcloud.Inputs.ObsBucketLifecycleRuleArgs\n            {\n                Name = \"tmp\",\n                Prefix = \"tmp/\",\n                Enabled = true,\n                Tags = new[]\n                {\n                    new Opentelekomcloud.Inputs.ObsBucketLifecycleRuleTagArgs\n                    {\n                        Key = \"key1\",\n                        Value = \"value1\",\n                    },\n                    new Opentelekomcloud.Inputs.ObsBucketLifecycleRuleTagArgs\n                    {\n                        Key = \"key2\",\n                        Value = \"value2\",\n                    },\n                },\n                NoncurrentVersionExpirations = new[]\n                {\n                    new Opentelekomcloud.Inputs.ObsBucketLifecycleRuleNoncurrentVersionExpirationArgs\n                    {\n                        Days = 180,\n                    },\n                },\n                NoncurrentVersionTransitions = new[]\n                {\n                    new Opentelekomcloud.Inputs.ObsBucketLifecycleRuleNoncurrentVersionTransitionArgs\n                    {\n                        Days = 30,\n                        StorageClass = \"WARM\",\n                    },\n                    new Opentelekomcloud.Inputs.ObsBucketLifecycleRuleNoncurrentVersionTransitionArgs\n                    {\n                        Days = 60,\n                        StorageClass = \"COLD\",\n                    },\n                },\n                AbortIncompleteMultipartUploads = new[]\n                {\n                    new Opentelekomcloud.Inputs.ObsBucketLifecycleRuleAbortIncompleteMultipartUploadArgs\n                    {\n                        Days = 180,\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewObsBucket(ctx, \"bucket\", &opentelekomcloud.ObsBucketArgs{\n\t\t\tBucket:     pulumi.String(\"my-bucket\"),\n\t\t\tAcl:        pulumi.String(\"private\"),\n\t\t\tVersioning: pulumi.Bool(true),\n\t\t\tLifecycleRules: opentelekomcloud.ObsBucketLifecycleRuleArray{\n\t\t\t\t&opentelekomcloud.ObsBucketLifecycleRuleArgs{\n\t\t\t\t\tName:    pulumi.String(\"log\"),\n\t\t\t\t\tPrefix:  pulumi.String(\"log/\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tExpirations: opentelekomcloud.ObsBucketLifecycleRuleExpirationArray{\n\t\t\t\t\t\t&opentelekomcloud.ObsBucketLifecycleRuleExpirationArgs{\n\t\t\t\t\t\t\tDays: pulumi.Float64(365),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tTransitions: opentelekomcloud.ObsBucketLifecycleRuleTransitionArray{\n\t\t\t\t\t\t&opentelekomcloud.ObsBucketLifecycleRuleTransitionArgs{\n\t\t\t\t\t\t\tDays:         pulumi.Float64(60),\n\t\t\t\t\t\t\tStorageClass: pulumi.String(\"WARM\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t&opentelekomcloud.ObsBucketLifecycleRuleTransitionArgs{\n\t\t\t\t\t\t\tDays:         pulumi.Float64(180),\n\t\t\t\t\t\t\tStorageClass: pulumi.String(\"COLD\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tAbortIncompleteMultipartUploads: opentelekomcloud.ObsBucketLifecycleRuleAbortIncompleteMultipartUploadArray{\n\t\t\t\t\t\t&opentelekomcloud.ObsBucketLifecycleRuleAbortIncompleteMultipartUploadArgs{\n\t\t\t\t\t\t\tDays: pulumi.Float64(360),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.ObsBucketLifecycleRuleArgs{\n\t\t\t\t\tName:    pulumi.String(\"tmp\"),\n\t\t\t\t\tPrefix:  pulumi.String(\"tmp/\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTags: opentelekomcloud.ObsBucketLifecycleRuleTagArray{\n\t\t\t\t\t\t&opentelekomcloud.ObsBucketLifecycleRuleTagArgs{\n\t\t\t\t\t\t\tKey:   pulumi.String(\"key1\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"value1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t&opentelekomcloud.ObsBucketLifecycleRuleTagArgs{\n\t\t\t\t\t\t\tKey:   pulumi.String(\"key2\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"value2\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tNoncurrentVersionExpirations: opentelekomcloud.ObsBucketLifecycleRuleNoncurrentVersionExpirationArray{\n\t\t\t\t\t\t&opentelekomcloud.ObsBucketLifecycleRuleNoncurrentVersionExpirationArgs{\n\t\t\t\t\t\t\tDays: pulumi.Float64(180),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tNoncurrentVersionTransitions: opentelekomcloud.ObsBucketLifecycleRuleNoncurrentVersionTransitionArray{\n\t\t\t\t\t\t&opentelekomcloud.ObsBucketLifecycleRuleNoncurrentVersionTransitionArgs{\n\t\t\t\t\t\t\tDays:         pulumi.Float64(30),\n\t\t\t\t\t\t\tStorageClass: pulumi.String(\"WARM\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t&opentelekomcloud.ObsBucketLifecycleRuleNoncurrentVersionTransitionArgs{\n\t\t\t\t\t\t\tDays:         pulumi.Float64(60),\n\t\t\t\t\t\t\tStorageClass: pulumi.String(\"COLD\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tAbortIncompleteMultipartUploads: opentelekomcloud.ObsBucketLifecycleRuleAbortIncompleteMultipartUploadArray{\n\t\t\t\t\t\t&opentelekomcloud.ObsBucketLifecycleRuleAbortIncompleteMultipartUploadArgs{\n\t\t\t\t\t\t\tDays: pulumi.Float64(180),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ObsBucket;\nimport com.pulumi.opentelekomcloud.ObsBucketArgs;\nimport com.pulumi.opentelekomcloud.inputs.ObsBucketLifecycleRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var bucket = new ObsBucket(\"bucket\", ObsBucketArgs.builder()\n            .bucket(\"my-bucket\")\n            .acl(\"private\")\n            .versioning(true)\n            .lifecycleRules(            \n                ObsBucketLifecycleRuleArgs.builder()\n                    .name(\"log\")\n                    .prefix(\"log/\")\n                    .enabled(true)\n                    .expirations(ObsBucketLifecycleRuleExpirationArgs.builder()\n                        .days(365.0)\n                        .build())\n                    .transitions(                    \n                        ObsBucketLifecycleRuleTransitionArgs.builder()\n                            .days(60.0)\n                            .storageClass(\"WARM\")\n                            .build(),\n                        ObsBucketLifecycleRuleTransitionArgs.builder()\n                            .days(180.0)\n                            .storageClass(\"COLD\")\n                            .build())\n                    .abortIncompleteMultipartUploads(ObsBucketLifecycleRuleAbortIncompleteMultipartUploadArgs.builder()\n                        .days(360.0)\n                        .build())\n                    .build(),\n                ObsBucketLifecycleRuleArgs.builder()\n                    .name(\"tmp\")\n                    .prefix(\"tmp/\")\n                    .enabled(true)\n                    .tags(                    \n                        ObsBucketLifecycleRuleTagArgs.builder()\n                            .key(\"key1\")\n                            .value(\"value1\")\n                            .build(),\n                        ObsBucketLifecycleRuleTagArgs.builder()\n                            .key(\"key2\")\n                            .value(\"value2\")\n                            .build())\n                    .noncurrentVersionExpirations(ObsBucketLifecycleRuleNoncurrentVersionExpirationArgs.builder()\n                        .days(180.0)\n                        .build())\n                    .noncurrentVersionTransitions(                    \n                        ObsBucketLifecycleRuleNoncurrentVersionTransitionArgs.builder()\n                            .days(30.0)\n                            .storageClass(\"WARM\")\n                            .build(),\n                        ObsBucketLifecycleRuleNoncurrentVersionTransitionArgs.builder()\n                            .days(60.0)\n                            .storageClass(\"COLD\")\n                            .build())\n                    .abortIncompleteMultipartUploads(ObsBucketLifecycleRuleAbortIncompleteMultipartUploadArgs.builder()\n                        .days(180.0)\n                        .build())\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  bucket:\n    type: opentelekomcloud:ObsBucket\n    properties:\n      bucket: my-bucket\n      acl: private\n      versioning: true\n      lifecycleRules:\n        - name: log\n          prefix: log/\n          enabled: true\n          expirations:\n            - days: 365\n          transitions:\n            - days: 60\n              storageClass: WARM\n            - days: 180\n              storageClass: COLD\n          abortIncompleteMultipartUploads:\n            - days: 360\n        - name: tmp\n          prefix: tmp/\n          enabled: true\n          tags:\n            - key: key1\n              value: value1\n            - key: key2\n              value: value2\n          noncurrentVersionExpirations:\n            - days: 180\n          noncurrentVersionTransitions:\n            - days: 30\n              storageClass: WARM\n            - days: 60\n              storageClass: COLD\n          abortIncompleteMultipartUploads:\n            - days: 180\n```\n<!--End PulumiCodeChooser -->\n\n### Using event notifications\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst topic = new opentelekomcloud.SmnTopicV2(\"topic\", {\n    name: \"obs-notifications\",\n    displayName: \"The display name of topic_1\",\n});\nconst policy = new opentelekomcloud.SmnTopicAttributeV2(\"policy\", {\n    topicUrn: topic.smnTopicV2Id,\n    attributeName: \"access_policy\",\n    topicAttribute: pulumi.interpolate`{\n  \\\"Version\\\": \\\"2016-09-07\\\",\n  \\\"Id\\\": \\\"__default_policy_ID\\\",\n  \\\"Statement\\\": [\n    {\n      \\\"Sid\\\": \\\"__service_pub_0\\\",\n      \\\"Effect\\\": \\\"Allow\\\",\n      \\\"Principal\\\": {\n        \\\"Service\\\": [\n          \\\"obs\\\",\n          \\\"s3\\\"\n        ]\n      },\n      \\\"Action\\\": [\n        \\\"SMN:Publish\\\",\n        \\\"SMN:QueryTopicDetail\\\"\n      ],\n      \\\"Resource\\\": \\\"${topic.smnTopicV2Id}\\\"\n    }\n  ]\n}\n`,\n});\nconst bucket = new opentelekomcloud.ObsBucket(\"bucket\", {\n    bucket: \"tf-test-bucket-%[1]d\",\n    acl: \"private\",\n    eventNotifications: [{\n        topic: topic.smnTopicV2Id,\n        events: [\n            \"ObjectCreated:*\",\n            \"ObjectRemoved:*\",\n        ],\n        filterRules: [\n            {\n                name: \"prefix\",\n                value: \"smn\",\n            },\n            {\n                name: \"suffix\",\n                value: \".jpg\",\n            },\n        ],\n    }],\n}, {\n    dependsOn: [policy],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntopic = opentelekomcloud.SmnTopicV2(\"topic\",\n    name=\"obs-notifications\",\n    display_name=\"The display name of topic_1\")\npolicy = opentelekomcloud.SmnTopicAttributeV2(\"policy\",\n    topic_urn=topic.smn_topic_v2_id,\n    attribute_name=\"access_policy\",\n    topic_attribute=topic.smn_topic_v2_id.apply(lambda smn_topic_v2_id: f\"\"\"{{\n  \\\"Version\\\": \\\"2016-09-07\\\",\n  \\\"Id\\\": \\\"__default_policy_ID\\\",\n  \\\"Statement\\\": [\n    {{\n      \\\"Sid\\\": \\\"__service_pub_0\\\",\n      \\\"Effect\\\": \\\"Allow\\\",\n      \\\"Principal\\\": {{\n        \\\"Service\\\": [\n          \\\"obs\\\",\n          \\\"s3\\\"\n        ]\n      }},\n      \\\"Action\\\": [\n        \\\"SMN:Publish\\\",\n        \\\"SMN:QueryTopicDetail\\\"\n      ],\n      \\\"Resource\\\": \\\"{smn_topic_v2_id}\\\"\n    }}\n  ]\n}}\n\"\"\"))\nbucket = opentelekomcloud.ObsBucket(\"bucket\",\n    bucket=\"tf-test-bucket-%[1]d\",\n    acl=\"private\",\n    event_notifications=[{\n        \"topic\": topic.smn_topic_v2_id,\n        \"events\": [\n            \"ObjectCreated:*\",\n            \"ObjectRemoved:*\",\n        ],\n        \"filter_rules\": [\n            {\n                \"name\": \"prefix\",\n                \"value\": \"smn\",\n            },\n            {\n                \"name\": \"suffix\",\n                \"value\": \".jpg\",\n            },\n        ],\n    }],\n    opts = pulumi.ResourceOptions(depends_on=[policy]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var topic = new Opentelekomcloud.SmnTopicV2(\"topic\", new()\n    {\n        Name = \"obs-notifications\",\n        DisplayName = \"The display name of topic_1\",\n    });\n\n    var policy = new Opentelekomcloud.SmnTopicAttributeV2(\"policy\", new()\n    {\n        TopicUrn = topic.SmnTopicV2Id,\n        AttributeName = \"access_policy\",\n        TopicAttribute = topic.SmnTopicV2Id.Apply(smnTopicV2Id => @$\"{{\n  \\\"\"Version\\\"\": \\\"\"2016-09-07\\\"\",\n  \\\"\"Id\\\"\": \\\"\"__default_policy_ID\\\"\",\n  \\\"\"Statement\\\"\": [\n    {{\n      \\\"\"Sid\\\"\": \\\"\"__service_pub_0\\\"\",\n      \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n      \\\"\"Principal\\\"\": {{\n        \\\"\"Service\\\"\": [\n          \\\"\"obs\\\"\",\n          \\\"\"s3\\\"\"\n        ]\n      }},\n      \\\"\"Action\\\"\": [\n        \\\"\"SMN:Publish\\\"\",\n        \\\"\"SMN:QueryTopicDetail\\\"\"\n      ],\n      \\\"\"Resource\\\"\": \\\"\"{smnTopicV2Id}\\\"\"\n    }}\n  ]\n}}\n\"),\n    });\n\n    var bucket = new Opentelekomcloud.ObsBucket(\"bucket\", new()\n    {\n        Bucket = \"tf-test-bucket-%[1]d\",\n        Acl = \"private\",\n        EventNotifications = new[]\n        {\n            new Opentelekomcloud.Inputs.ObsBucketEventNotificationArgs\n            {\n                Topic = topic.SmnTopicV2Id,\n                Events = new[]\n                {\n                    \"ObjectCreated:*\",\n                    \"ObjectRemoved:*\",\n                },\n                FilterRules = new[]\n                {\n                    new Opentelekomcloud.Inputs.ObsBucketEventNotificationFilterRuleArgs\n                    {\n                        Name = \"prefix\",\n                        Value = \"smn\",\n                    },\n                    new Opentelekomcloud.Inputs.ObsBucketEventNotificationFilterRuleArgs\n                    {\n                        Name = \"suffix\",\n                        Value = \".jpg\",\n                    },\n                },\n            },\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            policy,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttopic, err := opentelekomcloud.NewSmnTopicV2(ctx, \"topic\", &opentelekomcloud.SmnTopicV2Args{\n\t\t\tName:        pulumi.String(\"obs-notifications\"),\n\t\t\tDisplayName: pulumi.String(\"The display name of topic_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpolicy, err := opentelekomcloud.NewSmnTopicAttributeV2(ctx, \"policy\", &opentelekomcloud.SmnTopicAttributeV2Args{\n\t\t\tTopicUrn:      topic.SmnTopicV2Id,\n\t\t\tAttributeName: pulumi.String(\"access_policy\"),\n\t\t\tTopicAttribute: topic.SmnTopicV2Id.ApplyT(func(smnTopicV2Id string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(`{\n  \\\"Version\\\": \\\"2016-09-07\\\",\n  \\\"Id\\\": \\\"__default_policy_ID\\\",\n  \\\"Statement\\\": [\n    {\n      \\\"Sid\\\": \\\"__service_pub_0\\\",\n      \\\"Effect\\\": \\\"Allow\\\",\n      \\\"Principal\\\": {\n        \\\"Service\\\": [\n          \\\"obs\\\",\n          \\\"s3\\\"\n        ]\n      },\n      \\\"Action\\\": [\n        \\\"SMN:Publish\\\",\n        \\\"SMN:QueryTopicDetail\\\"\n      ],\n      \\\"Resource\\\": \\\"%v\\\"\n    }\n  ]\n}\n`, smnTopicV2Id), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewObsBucket(ctx, \"bucket\", &opentelekomcloud.ObsBucketArgs{\n\t\t\tBucket: pulumi.String(\"tf-test-bucket-%[1]d\"),\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t\tEventNotifications: opentelekomcloud.ObsBucketEventNotificationArray{\n\t\t\t\t&opentelekomcloud.ObsBucketEventNotificationArgs{\n\t\t\t\t\tTopic: topic.SmnTopicV2Id,\n\t\t\t\t\tEvents: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ObjectCreated:*\"),\n\t\t\t\t\t\tpulumi.String(\"ObjectRemoved:*\"),\n\t\t\t\t\t},\n\t\t\t\t\tFilterRules: opentelekomcloud.ObsBucketEventNotificationFilterRuleArray{\n\t\t\t\t\t\t&opentelekomcloud.ObsBucketEventNotificationFilterRuleArgs{\n\t\t\t\t\t\t\tName:  pulumi.String(\"prefix\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"smn\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t&opentelekomcloud.ObsBucketEventNotificationFilterRuleArgs{\n\t\t\t\t\t\t\tName:  pulumi.String(\"suffix\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\".jpg\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tpolicy,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.SmnTopicV2;\nimport com.pulumi.opentelekomcloud.SmnTopicV2Args;\nimport com.pulumi.opentelekomcloud.SmnTopicAttributeV2;\nimport com.pulumi.opentelekomcloud.SmnTopicAttributeV2Args;\nimport com.pulumi.opentelekomcloud.ObsBucket;\nimport com.pulumi.opentelekomcloud.ObsBucketArgs;\nimport com.pulumi.opentelekomcloud.inputs.ObsBucketEventNotificationArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var topic = new SmnTopicV2(\"topic\", SmnTopicV2Args.builder()\n            .name(\"obs-notifications\")\n            .displayName(\"The display name of topic_1\")\n            .build());\n\n        var policy = new SmnTopicAttributeV2(\"policy\", SmnTopicAttributeV2Args.builder()\n            .topicUrn(topic.smnTopicV2Id())\n            .attributeName(\"access_policy\")\n            .topicAttribute(topic.smnTopicV2Id().applyValue(_smnTopicV2Id -> \"\"\"\n{\n  \\\"Version\\\": \\\"2016-09-07\\\",\n  \\\"Id\\\": \\\"__default_policy_ID\\\",\n  \\\"Statement\\\": [\n    {\n      \\\"Sid\\\": \\\"__service_pub_0\\\",\n      \\\"Effect\\\": \\\"Allow\\\",\n      \\\"Principal\\\": {\n        \\\"Service\\\": [\n          \\\"obs\\\",\n          \\\"s3\\\"\n        ]\n      },\n      \\\"Action\\\": [\n        \\\"SMN:Publish\\\",\n        \\\"SMN:QueryTopicDetail\\\"\n      ],\n      \\\"Resource\\\": \\\"%s\\\"\n    }\n  ]\n}\n\", _smnTopicV2Id)))\n            .build());\n\n        var bucket = new ObsBucket(\"bucket\", ObsBucketArgs.builder()\n            .bucket(\"tf-test-bucket-%[1]d\")\n            .acl(\"private\")\n            .eventNotifications(ObsBucketEventNotificationArgs.builder()\n                .topic(topic.smnTopicV2Id())\n                .events(                \n                    \"ObjectCreated:*\",\n                    \"ObjectRemoved:*\")\n                .filterRules(                \n                    ObsBucketEventNotificationFilterRuleArgs.builder()\n                        .name(\"prefix\")\n                        .value(\"smn\")\n                        .build(),\n                    ObsBucketEventNotificationFilterRuleArgs.builder()\n                        .name(\"suffix\")\n                        .value(\".jpg\")\n                        .build())\n                .build())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(policy)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  topic:\n    type: opentelekomcloud:SmnTopicV2\n    properties:\n      name: obs-notifications\n      displayName: The display name of topic_1\n  policy:\n    type: opentelekomcloud:SmnTopicAttributeV2\n    properties:\n      topicUrn: ${topic.smnTopicV2Id}\n      attributeName: access_policy\n      topicAttribute: |\n        {\n          \\\"Version\\\": \\\"2016-09-07\\\",\n          \\\"Id\\\": \\\"__default_policy_ID\\\",\n          \\\"Statement\\\": [\n            {\n              \\\"Sid\\\": \\\"__service_pub_0\\\",\n              \\\"Effect\\\": \\\"Allow\\\",\n              \\\"Principal\\\": {\n                \\\"Service\\\": [\n                  \\\"obs\\\",\n                  \\\"s3\\\"\n                ]\n              },\n              \\\"Action\\\": [\n                \\\"SMN:Publish\\\",\n                \\\"SMN:QueryTopicDetail\\\"\n              ],\n              \\\"Resource\\\": \\\"${topic.smnTopicV2Id}\\\"\n            }\n          ]\n        }\n  bucket:\n    type: opentelekomcloud:ObsBucket\n    properties:\n      bucket: tf-test-bucket-%[1]d\n      acl: private\n      eventNotifications:\n        - topic: ${topic.smnTopicV2Id}\n          events:\n            - ObjectCreated:*\n            - ObjectRemoved:*\n          filterRules:\n            - name: prefix\n              value: smn\n            - name: suffix\n              value: .jpg\n    options:\n      dependsOn:\n        - ${policy}\n```\n<!--End PulumiCodeChooser -->\n\n### Bucket with set user domain names\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst b = new opentelekomcloud.ObsBucket(\"b\", {\n    bucket: \"my-tf-test-bucket\",\n    userDomainNames: [\n        domain1,\n        domain2,\n        domain3,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nb = opentelekomcloud.ObsBucket(\"b\",\n    bucket=\"my-tf-test-bucket\",\n    user_domain_names=[\n        domain1,\n        domain2,\n        domain3,\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var b = new Opentelekomcloud.ObsBucket(\"b\", new()\n    {\n        Bucket = \"my-tf-test-bucket\",\n        UserDomainNames = new[]\n        {\n            domain1,\n            domain2,\n            domain3,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewObsBucket(ctx, \"b\", &opentelekomcloud.ObsBucketArgs{\n\t\t\tBucket: pulumi.String(\"my-tf-test-bucket\"),\n\t\t\tUserDomainNames: pulumi.StringArray{\n\t\t\t\tdomain1,\n\t\t\t\tdomain2,\n\t\t\t\tdomain3,\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.opentelekomcloud.ObsBucket;\nimport com.pulumi.opentelekomcloud.ObsBucketArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var b = new ObsBucket(\"b\", ObsBucketArgs.builder()\n            .bucket(\"my-tf-test-bucket\")\n            .userDomainNames(            \n                domain1,\n                domain2,\n                domain3)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  b:\n    type: opentelekomcloud:ObsBucket\n    properties:\n      bucket: my-tf-test-bucket\n      userDomainNames:\n        - ${domain1}\n        - ${domain2}\n        - ${domain3}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nOBS bucket can be imported using the `bucket`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/obsBucket:ObsBucket bucket bucket-name\n```\n\n","inputProperties":{"acl":{"description":"Specifies the ACL policy for a bucket. The predefined common policies are as follows:\n<span pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\">`private`</span>, `public-read`, `public-read-write` and `log-delivery-write`. Defaults to <span pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\">`private`</span>.\n","type":"string"},"bucket":{"description":"Specifies the name of the bucket. Changing this parameter will create a new resource.\nA bucket must be named according to the globally applied DNS naming regulations as follows:\n* The name must be globally unique in OBS.\n* The name must contain 3 to 63 characters. Only lowercase letters, digits, hyphens (-), and periods (.) are allowed.\n* The name cannot start or end with a period (.) or hyphen (-), and cannot contain two consecutive periods (.)\nor contain a period (.) and a hyphen (-) adjacent to each other.\n* The name cannot be an IP address.\n* If the name contains any periods (.), a security certificate verification message may appear when you access\nthe bucket or its objects by entering a domain name.\n","type":"string"},"corsRules":{"description":"A rule of Cross-Origin Resource Sharing (documented below).\n","items":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketCorsRule:ObsBucketCorsRule"},"type":"array"},"eventNotifications":{"description":"A configuration of bucket event notifications (documented below).\n","items":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketEventNotification:ObsBucketEventNotification"},"type":"array"},"forceDestroy":{"description":"A boolean that indicates all objects should be deleted from the bucket so that the\nbucket can be destroyed without error. Default to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"lifecycleRules":{"description":"A configuration of object lifecycle management (documented below).\n","items":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketLifecycleRule:ObsBucketLifecycleRule"},"type":"array"},"loggings":{"description":"A settings of bucket logging (documented below).\n","items":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketLogging:ObsBucketLogging"},"type":"array"},"obsBucketId":{"description":"The name of the bucket.\n","type":"string"},"parallelFs":{"description":"Whether enable a bucket as a parallel file system.\n","type":"boolean"},"region":{"description":"If specified, the region this bucket should reside in. Otherwise,\nthe region used by the provider.\n","type":"string"},"serverSideEncryption":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketServerSideEncryption:ObsBucketServerSideEncryption","description":"A configuration of server side encryption (documented below).\n"},"storageClass":{"description":"Specifies the storage class of the bucket. OBS provides three storage classes:\n`STANDARD`, `WARM` (Infrequent Access) and `COLD` (Archive). Defaults to `STANDARD`.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the bucket. Each tag is represented by one key-value pair.\n","type":"object"},"userDomainNames":{"description":"Specifies the user domain names. The restriction requirements for this field\nare as follows:\n+ Each value must meet the domain name rules.\n+ The maximum length of a domain name is 256 characters.\n+ A custom domain name can only be used by one bucket.\n\n> When creating or updating the OBS bucket user domain names, the original user domain names will be overwritten.\n","items":{"type":"string"},"type":"array"},"versioning":{"description":"Set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> to enable versioning. Once you version-enable a bucket, it can never return to an\nunversioned state. You can, however, suspend versioning on that bucket. If omitted, during bucket\ncreation it will be in `Disabled` state.\n","type":"boolean"},"website":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketWebsite:ObsBucketWebsite","description":"A website object (documented below).\n"},"wormPolicy":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketWormPolicy:ObsBucketWormPolicy","description":"A settings of bucket default WORM policy and a retention period (documented below).\n<span pulumi-lang-nodejs=\"`wormPolicy`\" pulumi-lang-dotnet=\"`WormPolicy`\" pulumi-lang-go=\"`wormPolicy`\" pulumi-lang-python=\"`worm_policy`\" pulumi-lang-yaml=\"`wormPolicy`\" pulumi-lang-java=\"`wormPolicy`\">`worm_policy`</span> requires <span pulumi-lang-nodejs=\"`versioning`\" pulumi-lang-dotnet=\"`Versioning`\" pulumi-lang-go=\"`versioning`\" pulumi-lang-python=\"`versioning`\" pulumi-lang-yaml=\"`versioning`\" pulumi-lang-java=\"`versioning`\">`versioning`</span> to be enabled.\n"}},"properties":{"acl":{"description":"Specifies the ACL policy for a bucket. The predefined common policies are as follows:\n<span pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\">`private`</span>, `public-read`, `public-read-write` and `log-delivery-write`. Defaults to <span pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\">`private`</span>.\n","type":"string"},"bucket":{"description":"Specifies the name of the bucket. Changing this parameter will create a new resource.\nA bucket must be named according to the globally applied DNS naming regulations as follows:\n* The name must be globally unique in OBS.\n* The name must contain 3 to 63 characters. Only lowercase letters, digits, hyphens (-), and periods (.) are allowed.\n* The name cannot start or end with a period (.) or hyphen (-), and cannot contain two consecutive periods (.)\nor contain a period (.) and a hyphen (-) adjacent to each other.\n* The name cannot be an IP address.\n* If the name contains any periods (.), a security certificate verification message may appear when you access\nthe bucket or its objects by entering a domain name.\n","type":"string"},"bucketDomainName":{"description":"The bucket domain name. Will be of format `bucketname.obs.region.otc.t-systems.com`.\n","type":"string"},"bucketVersion":{"description":"The OBS version of the bucket.\n","type":"string"},"corsRules":{"description":"A rule of Cross-Origin Resource Sharing (documented below).\n","items":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketCorsRule:ObsBucketCorsRule"},"type":"array"},"eventNotifications":{"description":"A configuration of bucket event notifications (documented below).\n","items":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketEventNotification:ObsBucketEventNotification"},"type":"array"},"forceDestroy":{"description":"A boolean that indicates all objects should be deleted from the bucket so that the\nbucket can be destroyed without error. Default to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"lifecycleRules":{"description":"A configuration of object lifecycle management (documented below).\n","items":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketLifecycleRule:ObsBucketLifecycleRule"},"type":"array"},"loggings":{"description":"A settings of bucket logging (documented below).\n","items":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketLogging:ObsBucketLogging"},"type":"array"},"obsBucketId":{"description":"The name of the bucket.\n","type":"string"},"parallelFs":{"description":"Whether enable a bucket as a parallel file system.\n","type":"boolean"},"region":{"description":"If specified, the region this bucket should reside in. Otherwise,\nthe region used by the provider.\n","type":"string"},"serverSideEncryption":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketServerSideEncryption:ObsBucketServerSideEncryption","description":"A configuration of server side encryption (documented below).\n"},"storageClass":{"description":"Specifies the storage class of the bucket. OBS provides three storage classes:\n`STANDARD`, `WARM` (Infrequent Access) and `COLD` (Archive). Defaults to `STANDARD`.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the bucket. Each tag is represented by one key-value pair.\n","type":"object"},"userDomainNames":{"description":"Specifies the user domain names. The restriction requirements for this field\nare as follows:\n+ Each value must meet the domain name rules.\n+ The maximum length of a domain name is 256 characters.\n+ A custom domain name can only be used by one bucket.\n\n> When creating or updating the OBS bucket user domain names, the original user domain names will be overwritten.\n","items":{"type":"string"},"type":"array"},"versioning":{"description":"Set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> to enable versioning. Once you version-enable a bucket, it can never return to an\nunversioned state. You can, however, suspend versioning on that bucket. If omitted, during bucket\ncreation it will be in `Disabled` state.\n","type":"boolean"},"website":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketWebsite:ObsBucketWebsite","description":"A website object (documented below).\n"},"wormPolicy":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketWormPolicy:ObsBucketWormPolicy","description":"A settings of bucket default WORM policy and a retention period (documented below).\n<span pulumi-lang-nodejs=\"`wormPolicy`\" pulumi-lang-dotnet=\"`WormPolicy`\" pulumi-lang-go=\"`wormPolicy`\" pulumi-lang-python=\"`worm_policy`\" pulumi-lang-yaml=\"`wormPolicy`\" pulumi-lang-java=\"`wormPolicy`\">`worm_policy`</span> requires <span pulumi-lang-nodejs=\"`versioning`\" pulumi-lang-dotnet=\"`Versioning`\" pulumi-lang-go=\"`versioning`\" pulumi-lang-python=\"`versioning`\" pulumi-lang-yaml=\"`versioning`\" pulumi-lang-java=\"`versioning`\">`versioning`</span> to be enabled.\n"}},"required":["bucket","bucketDomainName","bucketVersion","obsBucketId","region","userDomainNames"],"requiredInputs":["bucket"],"stateInputs":{"description":"Input properties used for looking up and filtering ObsBucket resources.\n","properties":{"acl":{"description":"Specifies the ACL policy for a bucket. The predefined common policies are as follows:\n<span pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\">`private`</span>, `public-read`, `public-read-write` and `log-delivery-write`. Defaults to <span pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\">`private`</span>.\n","type":"string"},"bucket":{"description":"Specifies the name of the bucket. Changing this parameter will create a new resource.\nA bucket must be named according to the globally applied DNS naming regulations as follows:\n* The name must be globally unique in OBS.\n* The name must contain 3 to 63 characters. Only lowercase letters, digits, hyphens (-), and periods (.) are allowed.\n* The name cannot start or end with a period (.) or hyphen (-), and cannot contain two consecutive periods (.)\nor contain a period (.) and a hyphen (-) adjacent to each other.\n* The name cannot be an IP address.\n* If the name contains any periods (.), a security certificate verification message may appear when you access\nthe bucket or its objects by entering a domain name.\n","type":"string"},"bucketDomainName":{"description":"The bucket domain name. Will be of format `bucketname.obs.region.otc.t-systems.com`.\n","type":"string"},"bucketVersion":{"description":"The OBS version of the bucket.\n","type":"string"},"corsRules":{"description":"A rule of Cross-Origin Resource Sharing (documented below).\n","items":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketCorsRule:ObsBucketCorsRule"},"type":"array"},"eventNotifications":{"description":"A configuration of bucket event notifications (documented below).\n","items":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketEventNotification:ObsBucketEventNotification"},"type":"array"},"forceDestroy":{"description":"A boolean that indicates all objects should be deleted from the bucket so that the\nbucket can be destroyed without error. Default to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"lifecycleRules":{"description":"A configuration of object lifecycle management (documented below).\n","items":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketLifecycleRule:ObsBucketLifecycleRule"},"type":"array"},"loggings":{"description":"A settings of bucket logging (documented below).\n","items":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketLogging:ObsBucketLogging"},"type":"array"},"obsBucketId":{"description":"The name of the bucket.\n","type":"string"},"parallelFs":{"description":"Whether enable a bucket as a parallel file system.\n","type":"boolean"},"region":{"description":"If specified, the region this bucket should reside in. Otherwise,\nthe region used by the provider.\n","type":"string"},"serverSideEncryption":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketServerSideEncryption:ObsBucketServerSideEncryption","description":"A configuration of server side encryption (documented below).\n"},"storageClass":{"description":"Specifies the storage class of the bucket. OBS provides three storage classes:\n`STANDARD`, `WARM` (Infrequent Access) and `COLD` (Archive). Defaults to `STANDARD`.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the bucket. Each tag is represented by one key-value pair.\n","type":"object"},"userDomainNames":{"description":"Specifies the user domain names. The restriction requirements for this field\nare as follows:\n+ Each value must meet the domain name rules.\n+ The maximum length of a domain name is 256 characters.\n+ A custom domain name can only be used by one bucket.\n\n> When creating or updating the OBS bucket user domain names, the original user domain names will be overwritten.\n","items":{"type":"string"},"type":"array"},"versioning":{"description":"Set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span> to enable versioning. Once you version-enable a bucket, it can never return to an\nunversioned state. You can, however, suspend versioning on that bucket. If omitted, during bucket\ncreation it will be in `Disabled` state.\n","type":"boolean"},"website":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketWebsite:ObsBucketWebsite","description":"A website object (documented below).\n"},"wormPolicy":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketWormPolicy:ObsBucketWormPolicy","description":"A settings of bucket default WORM policy and a retention period (documented below).\n<span pulumi-lang-nodejs=\"`wormPolicy`\" pulumi-lang-dotnet=\"`WormPolicy`\" pulumi-lang-go=\"`wormPolicy`\" pulumi-lang-python=\"`worm_policy`\" pulumi-lang-yaml=\"`wormPolicy`\" pulumi-lang-java=\"`wormPolicy`\">`worm_policy`</span> requires <span pulumi-lang-nodejs=\"`versioning`\" pulumi-lang-dotnet=\"`Versioning`\" pulumi-lang-go=\"`versioning`\" pulumi-lang-python=\"`versioning`\" pulumi-lang-yaml=\"`versioning`\" pulumi-lang-java=\"`versioning`\">`versioning`</span> to be enabled.\n"}},"type":"object"},"type":"object"},"opentelekomcloud:index/obsBucketAcl:ObsBucketAcl":{"description":"Manages an OBS bucket acl resource within OpenTelekomCloud.\n\n> **NOTE:** When creating or updating the OBS bucket acl, the original bucket acl will be overwritten. When deleting\nthe OBS bucket acl, the full permissions of the bucket owner will be set, and the other permissions will be removed.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst bucket = config.requireObject<any>(\"bucket\");\nconst account1 = config.requireObject<any>(\"account1\");\nconst account2 = config.requireObject<any>(\"account2\");\nconst test = new opentelekomcloud.ObsBucketAcl(\"test\", {\n    bucket: bucket,\n    ownerPermission: {\n        accessToBuckets: [\n            \"READ\",\n            \"WRITE\",\n        ],\n        accessToAcls: [\n            \"READ_ACP\",\n            \"WRITE_ACP\",\n        ],\n    },\n    accountPermissions: [\n        {\n            accessToBuckets: [\n                \"READ\",\n                \"WRITE\",\n            ],\n            accessToAcls: [\n                \"READ_ACP\",\n                \"WRITE_ACP\",\n            ],\n            accountId: account1,\n        },\n        {\n            accessToBuckets: [\"READ\"],\n            accessToAcls: [\n                \"READ_ACP\",\n                \"WRITE_ACP\",\n            ],\n            accountId: account2,\n        },\n    ],\n    publicPermission: {\n        accessToBuckets: [\n            \"READ\",\n            \"WRITE\",\n        ],\n    },\n    logDeliveryUserPermission: {\n        accessToBuckets: [\n            \"READ\",\n            \"WRITE\",\n        ],\n        accessToAcls: [\n            \"READ_ACP\",\n            \"WRITE_ACP\",\n        ],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nbucket = config.require_object(\"bucket\")\naccount1 = config.require_object(\"account1\")\naccount2 = config.require_object(\"account2\")\ntest = opentelekomcloud.ObsBucketAcl(\"test\",\n    bucket=bucket,\n    owner_permission={\n        \"access_to_buckets\": [\n            \"READ\",\n            \"WRITE\",\n        ],\n        \"access_to_acls\": [\n            \"READ_ACP\",\n            \"WRITE_ACP\",\n        ],\n    },\n    account_permissions=[\n        {\n            \"access_to_buckets\": [\n                \"READ\",\n                \"WRITE\",\n            ],\n            \"access_to_acls\": [\n                \"READ_ACP\",\n                \"WRITE_ACP\",\n            ],\n            \"account_id\": account1,\n        },\n        {\n            \"access_to_buckets\": [\"READ\"],\n            \"access_to_acls\": [\n                \"READ_ACP\",\n                \"WRITE_ACP\",\n            ],\n            \"account_id\": account2,\n        },\n    ],\n    public_permission={\n        \"access_to_buckets\": [\n            \"READ\",\n            \"WRITE\",\n        ],\n    },\n    log_delivery_user_permission={\n        \"access_to_buckets\": [\n            \"READ\",\n            \"WRITE\",\n        ],\n        \"access_to_acls\": [\n            \"READ_ACP\",\n            \"WRITE_ACP\",\n        ],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var bucket = config.RequireObject<dynamic>(\"bucket\");\n    var account1 = config.RequireObject<dynamic>(\"account1\");\n    var account2 = config.RequireObject<dynamic>(\"account2\");\n    var test = new Opentelekomcloud.ObsBucketAcl(\"test\", new()\n    {\n        Bucket = bucket,\n        OwnerPermission = new Opentelekomcloud.Inputs.ObsBucketAclOwnerPermissionArgs\n        {\n            AccessToBuckets = new[]\n            {\n                \"READ\",\n                \"WRITE\",\n            },\n            AccessToAcls = new[]\n            {\n                \"READ_ACP\",\n                \"WRITE_ACP\",\n            },\n        },\n        AccountPermissions = new[]\n        {\n            new Opentelekomcloud.Inputs.ObsBucketAclAccountPermissionArgs\n            {\n                AccessToBuckets = new[]\n                {\n                    \"READ\",\n                    \"WRITE\",\n                },\n                AccessToAcls = new[]\n                {\n                    \"READ_ACP\",\n                    \"WRITE_ACP\",\n                },\n                AccountId = account1,\n            },\n            new Opentelekomcloud.Inputs.ObsBucketAclAccountPermissionArgs\n            {\n                AccessToBuckets = new[]\n                {\n                    \"READ\",\n                },\n                AccessToAcls = new[]\n                {\n                    \"READ_ACP\",\n                    \"WRITE_ACP\",\n                },\n                AccountId = account2,\n            },\n        },\n        PublicPermission = new Opentelekomcloud.Inputs.ObsBucketAclPublicPermissionArgs\n        {\n            AccessToBuckets = new[]\n            {\n                \"READ\",\n                \"WRITE\",\n            },\n        },\n        LogDeliveryUserPermission = new Opentelekomcloud.Inputs.ObsBucketAclLogDeliveryUserPermissionArgs\n        {\n            AccessToBuckets = new[]\n            {\n                \"READ\",\n                \"WRITE\",\n            },\n            AccessToAcls = new[]\n            {\n                \"READ_ACP\",\n                \"WRITE_ACP\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tbucket := cfg.RequireObject(\"bucket\")\n\t\taccount1 := cfg.RequireObject(\"account1\")\n\t\taccount2 := cfg.RequireObject(\"account2\")\n\t\t_, err := opentelekomcloud.NewObsBucketAcl(ctx, \"test\", &opentelekomcloud.ObsBucketAclArgs{\n\t\t\tBucket: pulumi.Any(bucket),\n\t\t\tOwnerPermission: &opentelekomcloud.ObsBucketAclOwnerPermissionArgs{\n\t\t\t\tAccessToBuckets: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"READ\"),\n\t\t\t\t\tpulumi.String(\"WRITE\"),\n\t\t\t\t},\n\t\t\t\tAccessToAcls: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"READ_ACP\"),\n\t\t\t\t\tpulumi.String(\"WRITE_ACP\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAccountPermissions: opentelekomcloud.ObsBucketAclAccountPermissionArray{\n\t\t\t\t&opentelekomcloud.ObsBucketAclAccountPermissionArgs{\n\t\t\t\t\tAccessToBuckets: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"READ\"),\n\t\t\t\t\t\tpulumi.String(\"WRITE\"),\n\t\t\t\t\t},\n\t\t\t\t\tAccessToAcls: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"READ_ACP\"),\n\t\t\t\t\t\tpulumi.String(\"WRITE_ACP\"),\n\t\t\t\t\t},\n\t\t\t\t\tAccountId: pulumi.Any(account1),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.ObsBucketAclAccountPermissionArgs{\n\t\t\t\t\tAccessToBuckets: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"READ\"),\n\t\t\t\t\t},\n\t\t\t\t\tAccessToAcls: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"READ_ACP\"),\n\t\t\t\t\t\tpulumi.String(\"WRITE_ACP\"),\n\t\t\t\t\t},\n\t\t\t\t\tAccountId: pulumi.Any(account2),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPublicPermission: &opentelekomcloud.ObsBucketAclPublicPermissionArgs{\n\t\t\t\tAccessToBuckets: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"READ\"),\n\t\t\t\t\tpulumi.String(\"WRITE\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLogDeliveryUserPermission: &opentelekomcloud.ObsBucketAclLogDeliveryUserPermissionArgs{\n\t\t\t\tAccessToBuckets: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"READ\"),\n\t\t\t\t\tpulumi.String(\"WRITE\"),\n\t\t\t\t},\n\t\t\t\tAccessToAcls: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"READ_ACP\"),\n\t\t\t\t\tpulumi.String(\"WRITE_ACP\"),\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.opentelekomcloud.ObsBucketAcl;\nimport com.pulumi.opentelekomcloud.ObsBucketAclArgs;\nimport com.pulumi.opentelekomcloud.inputs.ObsBucketAclOwnerPermissionArgs;\nimport com.pulumi.opentelekomcloud.inputs.ObsBucketAclAccountPermissionArgs;\nimport com.pulumi.opentelekomcloud.inputs.ObsBucketAclPublicPermissionArgs;\nimport com.pulumi.opentelekomcloud.inputs.ObsBucketAclLogDeliveryUserPermissionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var bucket = config.get(\"bucket\");\n        final var account1 = config.get(\"account1\");\n        final var account2 = config.get(\"account2\");\n        var test = new ObsBucketAcl(\"test\", ObsBucketAclArgs.builder()\n            .bucket(bucket)\n            .ownerPermission(ObsBucketAclOwnerPermissionArgs.builder()\n                .accessToBuckets(                \n                    \"READ\",\n                    \"WRITE\")\n                .accessToAcls(                \n                    \"READ_ACP\",\n                    \"WRITE_ACP\")\n                .build())\n            .accountPermissions(            \n                ObsBucketAclAccountPermissionArgs.builder()\n                    .accessToBuckets(                    \n                        \"READ\",\n                        \"WRITE\")\n                    .accessToAcls(                    \n                        \"READ_ACP\",\n                        \"WRITE_ACP\")\n                    .accountId(account1)\n                    .build(),\n                ObsBucketAclAccountPermissionArgs.builder()\n                    .accessToBuckets(\"READ\")\n                    .accessToAcls(                    \n                        \"READ_ACP\",\n                        \"WRITE_ACP\")\n                    .accountId(account2)\n                    .build())\n            .publicPermission(ObsBucketAclPublicPermissionArgs.builder()\n                .accessToBuckets(                \n                    \"READ\",\n                    \"WRITE\")\n                .build())\n            .logDeliveryUserPermission(ObsBucketAclLogDeliveryUserPermissionArgs.builder()\n                .accessToBuckets(                \n                    \"READ\",\n                    \"WRITE\")\n                .accessToAcls(                \n                    \"READ_ACP\",\n                    \"WRITE_ACP\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  bucket:\n    type: dynamic\n  account1:\n    type: dynamic\n  account2:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:ObsBucketAcl\n    properties:\n      bucket: ${bucket}\n      ownerPermission:\n        accessToBuckets:\n          - READ\n          - WRITE\n        accessToAcls:\n          - READ_ACP\n          - WRITE_ACP\n      accountPermissions:\n        - accessToBuckets:\n            - READ\n            - WRITE\n          accessToAcls:\n            - READ_ACP\n            - WRITE_ACP\n          accountId: ${account1}\n        - accessToBuckets:\n            - READ\n          accessToAcls:\n            - READ_ACP\n            - WRITE_ACP\n          accountId: ${account2}\n      publicPermission:\n        accessToBuckets:\n          - READ\n          - WRITE\n      logDeliveryUserPermission:\n        accessToBuckets:\n          - READ\n          - WRITE\n        accessToAcls:\n          - READ_ACP\n          - WRITE_ACP\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe obs bucket acl can be imported using the `bucket`, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/obsBucketAcl:ObsBucketAcl test <bucket-name>\n```\n\n","inputProperties":{"accountPermissions":{"description":"Specifies the account permissions.\nThe<span pulumi-lang-nodejs=\" accountPermissionStruct \" pulumi-lang-dotnet=\" AccountPermissionStruct \" pulumi-lang-go=\" accountPermissionStruct \" pulumi-lang-python=\" account_permission_struct \" pulumi-lang-yaml=\" accountPermissionStruct \" pulumi-lang-java=\" accountPermissionStruct \"> account_permission_struct </span>structure is documented below.\n\n<a name=\"OBSBucketAcl_permission_struct\"></a>\nThe <span pulumi-lang-nodejs=\"`permissionStruct`\" pulumi-lang-dotnet=\"`PermissionStruct`\" pulumi-lang-go=\"`permissionStruct`\" pulumi-lang-python=\"`permission_struct`\" pulumi-lang-yaml=\"`permissionStruct`\" pulumi-lang-java=\"`permissionStruct`\">`permission_struct`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketAclAccountPermission:ObsBucketAclAccountPermission"},"type":"array"},"bucket":{"description":"Specifies the name of the bucket to which to set the acl.\n\nChanging this parameter will create a new resource.\n","type":"string"},"logDeliveryUserPermission":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketAclLogDeliveryUserPermission:ObsBucketAclLogDeliveryUserPermission","description":"Specifies the log delivery user permission.\nThe<span pulumi-lang-nodejs=\" permissionStruct \" pulumi-lang-dotnet=\" PermissionStruct \" pulumi-lang-go=\" permissionStruct \" pulumi-lang-python=\" permission_struct \" pulumi-lang-yaml=\" permissionStruct \" pulumi-lang-java=\" permissionStruct \"> permission_struct </span>structure is documented below.\n"},"obsBucketAclId":{"description":"The name of the bucket.\n","type":"string"},"ownerPermission":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketAclOwnerPermission:ObsBucketAclOwnerPermission","description":"Specifies the bucket owner permission. If omitted, the current obs bucket acl\nowner permission will not be changed.\nThe<span pulumi-lang-nodejs=\" permissionStruct \" pulumi-lang-dotnet=\" PermissionStruct \" pulumi-lang-go=\" permissionStruct \" pulumi-lang-python=\" permission_struct \" pulumi-lang-yaml=\" permissionStruct \" pulumi-lang-java=\" permissionStruct \"> permission_struct </span>structure is documented below.\n"},"publicPermission":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketAclPublicPermission:ObsBucketAclPublicPermission","description":"Specifies the public permission.\nThe<span pulumi-lang-nodejs=\" permissionStruct \" pulumi-lang-dotnet=\" PermissionStruct \" pulumi-lang-go=\" permissionStruct \" pulumi-lang-python=\" permission_struct \" pulumi-lang-yaml=\" permissionStruct \" pulumi-lang-java=\" permissionStruct \"> permission_struct </span>structure is documented below.\n"}},"properties":{"accountPermissions":{"description":"Specifies the account permissions.\nThe<span pulumi-lang-nodejs=\" accountPermissionStruct \" pulumi-lang-dotnet=\" AccountPermissionStruct \" pulumi-lang-go=\" accountPermissionStruct \" pulumi-lang-python=\" account_permission_struct \" pulumi-lang-yaml=\" accountPermissionStruct \" pulumi-lang-java=\" accountPermissionStruct \"> account_permission_struct </span>structure is documented below.\n\n<a name=\"OBSBucketAcl_permission_struct\"></a>\nThe <span pulumi-lang-nodejs=\"`permissionStruct`\" pulumi-lang-dotnet=\"`PermissionStruct`\" pulumi-lang-go=\"`permissionStruct`\" pulumi-lang-python=\"`permission_struct`\" pulumi-lang-yaml=\"`permissionStruct`\" pulumi-lang-java=\"`permissionStruct`\">`permission_struct`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketAclAccountPermission:ObsBucketAclAccountPermission"},"type":"array"},"bucket":{"description":"Specifies the name of the bucket to which to set the acl.\n\nChanging this parameter will create a new resource.\n","type":"string"},"logDeliveryUserPermission":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketAclLogDeliveryUserPermission:ObsBucketAclLogDeliveryUserPermission","description":"Specifies the log delivery user permission.\nThe<span pulumi-lang-nodejs=\" permissionStruct \" pulumi-lang-dotnet=\" PermissionStruct \" pulumi-lang-go=\" permissionStruct \" pulumi-lang-python=\" permission_struct \" pulumi-lang-yaml=\" permissionStruct \" pulumi-lang-java=\" permissionStruct \"> permission_struct </span>structure is documented below.\n"},"obsBucketAclId":{"description":"The name of the bucket.\n","type":"string"},"ownerPermission":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketAclOwnerPermission:ObsBucketAclOwnerPermission","description":"Specifies the bucket owner permission. If omitted, the current obs bucket acl\nowner permission will not be changed.\nThe<span pulumi-lang-nodejs=\" permissionStruct \" pulumi-lang-dotnet=\" PermissionStruct \" pulumi-lang-go=\" permissionStruct \" pulumi-lang-python=\" permission_struct \" pulumi-lang-yaml=\" permissionStruct \" pulumi-lang-java=\" permissionStruct \"> permission_struct </span>structure is documented below.\n"},"publicPermission":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketAclPublicPermission:ObsBucketAclPublicPermission","description":"Specifies the public permission.\nThe<span pulumi-lang-nodejs=\" permissionStruct \" pulumi-lang-dotnet=\" PermissionStruct \" pulumi-lang-go=\" permissionStruct \" pulumi-lang-python=\" permission_struct \" pulumi-lang-yaml=\" permissionStruct \" pulumi-lang-java=\" permissionStruct \"> permission_struct </span>structure is documented below.\n"},"region":{"description":"The region in which resource is created.\n","type":"string"}},"required":["bucket","obsBucketAclId","region"],"requiredInputs":["bucket"],"stateInputs":{"description":"Input properties used for looking up and filtering ObsBucketAcl resources.\n","properties":{"accountPermissions":{"description":"Specifies the account permissions.\nThe<span pulumi-lang-nodejs=\" accountPermissionStruct \" pulumi-lang-dotnet=\" AccountPermissionStruct \" pulumi-lang-go=\" accountPermissionStruct \" pulumi-lang-python=\" account_permission_struct \" pulumi-lang-yaml=\" accountPermissionStruct \" pulumi-lang-java=\" accountPermissionStruct \"> account_permission_struct </span>structure is documented below.\n\n<a name=\"OBSBucketAcl_permission_struct\"></a>\nThe <span pulumi-lang-nodejs=\"`permissionStruct`\" pulumi-lang-dotnet=\"`PermissionStruct`\" pulumi-lang-go=\"`permissionStruct`\" pulumi-lang-python=\"`permission_struct`\" pulumi-lang-yaml=\"`permissionStruct`\" pulumi-lang-java=\"`permissionStruct`\">`permission_struct`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketAclAccountPermission:ObsBucketAclAccountPermission"},"type":"array"},"bucket":{"description":"Specifies the name of the bucket to which to set the acl.\n\nChanging this parameter will create a new resource.\n","type":"string"},"logDeliveryUserPermission":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketAclLogDeliveryUserPermission:ObsBucketAclLogDeliveryUserPermission","description":"Specifies the log delivery user permission.\nThe<span pulumi-lang-nodejs=\" permissionStruct \" pulumi-lang-dotnet=\" PermissionStruct \" pulumi-lang-go=\" permissionStruct \" pulumi-lang-python=\" permission_struct \" pulumi-lang-yaml=\" permissionStruct \" pulumi-lang-java=\" permissionStruct \"> permission_struct </span>structure is documented below.\n"},"obsBucketAclId":{"description":"The name of the bucket.\n","type":"string"},"ownerPermission":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketAclOwnerPermission:ObsBucketAclOwnerPermission","description":"Specifies the bucket owner permission. If omitted, the current obs bucket acl\nowner permission will not be changed.\nThe<span pulumi-lang-nodejs=\" permissionStruct \" pulumi-lang-dotnet=\" PermissionStruct \" pulumi-lang-go=\" permissionStruct \" pulumi-lang-python=\" permission_struct \" pulumi-lang-yaml=\" permissionStruct \" pulumi-lang-java=\" permissionStruct \"> permission_struct </span>structure is documented below.\n"},"publicPermission":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketAclPublicPermission:ObsBucketAclPublicPermission","description":"Specifies the public permission.\nThe<span pulumi-lang-nodejs=\" permissionStruct \" pulumi-lang-dotnet=\" PermissionStruct \" pulumi-lang-go=\" permissionStruct \" pulumi-lang-python=\" permission_struct \" pulumi-lang-yaml=\" permissionStruct \" pulumi-lang-java=\" permissionStruct \"> permission_struct </span>structure is documented below.\n"},"region":{"description":"The region in which resource is created.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/obsBucketInventory:ObsBucketInventory":{"description":"Up-to-date reference of API arguments for OBS bucket inventory you can get at\n[documentation portal](https://docs.otc.t-systems.com/object-storage-service/api-ref/apis/advanced_bucket_settings/configuring_bucket_inventories.html)\n\nConfigures OBS bucket inventory resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst bucket = new opentelekomcloud.ObsBucket(\"bucket\", {bucket: \"my-tf-test-bucket\"});\nconst inventory = new opentelekomcloud.ObsBucketInventory(\"inventory\", {\n    bucket: bucket.bucket,\n    configurationId: \"test-id\",\n    isEnabled: true,\n    frequency: \"Weekly\",\n    destination: {\n        bucket: bucket.bucket,\n        format: \"CSV\",\n        prefix: \"test-\",\n    },\n    filterPrefix: \"test-filter-prefix\",\n    includedObjectVersions: \"Current\",\n    optionalFields: [\n        \"Size\",\n        \"LastModifiedDate\",\n        \"ReplicationStatus\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nbucket = opentelekomcloud.ObsBucket(\"bucket\", bucket=\"my-tf-test-bucket\")\ninventory = opentelekomcloud.ObsBucketInventory(\"inventory\",\n    bucket=bucket.bucket,\n    configuration_id=\"test-id\",\n    is_enabled=True,\n    frequency=\"Weekly\",\n    destination={\n        \"bucket\": bucket.bucket,\n        \"format\": \"CSV\",\n        \"prefix\": \"test-\",\n    },\n    filter_prefix=\"test-filter-prefix\",\n    included_object_versions=\"Current\",\n    optional_fields=[\n        \"Size\",\n        \"LastModifiedDate\",\n        \"ReplicationStatus\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var bucket = new Opentelekomcloud.ObsBucket(\"bucket\", new()\n    {\n        Bucket = \"my-tf-test-bucket\",\n    });\n\n    var inventory = new Opentelekomcloud.ObsBucketInventory(\"inventory\", new()\n    {\n        Bucket = bucket.Bucket,\n        ConfigurationId = \"test-id\",\n        IsEnabled = true,\n        Frequency = \"Weekly\",\n        Destination = new Opentelekomcloud.Inputs.ObsBucketInventoryDestinationArgs\n        {\n            Bucket = bucket.Bucket,\n            Format = \"CSV\",\n            Prefix = \"test-\",\n        },\n        FilterPrefix = \"test-filter-prefix\",\n        IncludedObjectVersions = \"Current\",\n        OptionalFields = new[]\n        {\n            \"Size\",\n            \"LastModifiedDate\",\n            \"ReplicationStatus\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbucket, err := opentelekomcloud.NewObsBucket(ctx, \"bucket\", &opentelekomcloud.ObsBucketArgs{\n\t\t\tBucket: pulumi.String(\"my-tf-test-bucket\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewObsBucketInventory(ctx, \"inventory\", &opentelekomcloud.ObsBucketInventoryArgs{\n\t\t\tBucket:          bucket.Bucket,\n\t\t\tConfigurationId: pulumi.String(\"test-id\"),\n\t\t\tIsEnabled:       pulumi.Bool(true),\n\t\t\tFrequency:       pulumi.String(\"Weekly\"),\n\t\t\tDestination: &opentelekomcloud.ObsBucketInventoryDestinationArgs{\n\t\t\t\tBucket: bucket.Bucket,\n\t\t\t\tFormat: pulumi.String(\"CSV\"),\n\t\t\t\tPrefix: pulumi.String(\"test-\"),\n\t\t\t},\n\t\t\tFilterPrefix:           pulumi.String(\"test-filter-prefix\"),\n\t\t\tIncludedObjectVersions: pulumi.String(\"Current\"),\n\t\t\tOptionalFields: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Size\"),\n\t\t\t\tpulumi.String(\"LastModifiedDate\"),\n\t\t\t\tpulumi.String(\"ReplicationStatus\"),\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.opentelekomcloud.ObsBucket;\nimport com.pulumi.opentelekomcloud.ObsBucketArgs;\nimport com.pulumi.opentelekomcloud.ObsBucketInventory;\nimport com.pulumi.opentelekomcloud.ObsBucketInventoryArgs;\nimport com.pulumi.opentelekomcloud.inputs.ObsBucketInventoryDestinationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var bucket = new ObsBucket(\"bucket\", ObsBucketArgs.builder()\n            .bucket(\"my-tf-test-bucket\")\n            .build());\n\n        var inventory = new ObsBucketInventory(\"inventory\", ObsBucketInventoryArgs.builder()\n            .bucket(bucket.bucket())\n            .configurationId(\"test-id\")\n            .isEnabled(true)\n            .frequency(\"Weekly\")\n            .destination(ObsBucketInventoryDestinationArgs.builder()\n                .bucket(bucket.bucket())\n                .format(\"CSV\")\n                .prefix(\"test-\")\n                .build())\n            .filterPrefix(\"test-filter-prefix\")\n            .includedObjectVersions(\"Current\")\n            .optionalFields(            \n                \"Size\",\n                \"LastModifiedDate\",\n                \"ReplicationStatus\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  bucket:\n    type: opentelekomcloud:ObsBucket\n    properties:\n      bucket: my-tf-test-bucket\n  inventory:\n    type: opentelekomcloud:ObsBucketInventory\n    properties:\n      bucket: ${bucket.bucket}\n      configurationId: test-id\n      isEnabled: true\n      frequency: Weekly\n      destination:\n        bucket: ${bucket.bucket}\n        format: CSV\n        prefix: test-\n      filterPrefix: test-filter-prefix\n      includedObjectVersions: Current\n      optionalFields:\n        - Size\n        - LastModifiedDate\n        - ReplicationStatus\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nInventories can be imported using related `bucket` and their `configuration_id` separated by the slashes, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/obsBucketInventory:ObsBucketInventory inv <bucket>/<configuration_id>\n```\n\n","inputProperties":{"bucket":{"description":"Name of the bucket for saving inventories.\n","type":"string"},"configurationId":{"description":"ID of the inventory configuration. Valid characters: letters, digits, hyphens (-),\nperiods (.) and underscores (_).\n","type":"string"},"destination":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketInventoryDestination:ObsBucketInventoryDestination","description":"Destination bucket settings of an inventory.\nThe structure is documented below.\n"},"filterPrefix":{"description":"Filtering by name prefix. Only objects with the specified name prefix are included in the inventory.\n","type":"string"},"frequency":{"description":"Intervals when inventories are generated.\nAn inventory is generated within one hour after it is configured for the first time. Then it is generated at the specified intervals.\nPossible values:\n* `Daily`\n* `Weekly`\n","type":"string"},"includedObjectVersions":{"description":"Indicates whether versions of objects are included in an inventory.\nPossible values:\n* `All`\n* `Current`\n","type":"string"},"isEnabled":{"description":"Indicates whether the rule is enabled. If this parameter is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>, the inventory is generated.\n","type":"boolean"},"obsBucketInventoryId":{"type":"string"},"optionalFields":{"description":"Extra metadata fields that can be added to an inventory. If this parameter is configured,\nfields specified in this parameter are contained in the inventory.\nPossible values:\n* `Size`\n* `LastModifiedDate`\n* `ETag`\n* `StorageClass`\n* `IsMultipartUploaded`\n* `ReplicationStatus`\n* `EncryptionStatus`\n","items":{"type":"string"},"type":"array"}},"properties":{"bucket":{"description":"Name of the bucket for saving inventories.\n","type":"string"},"configurationId":{"description":"ID of the inventory configuration. Valid characters: letters, digits, hyphens (-),\nperiods (.) and underscores (_).\n","type":"string"},"destination":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketInventoryDestination:ObsBucketInventoryDestination","description":"Destination bucket settings of an inventory.\nThe structure is documented below.\n"},"filterPrefix":{"description":"Filtering by name prefix. Only objects with the specified name prefix are included in the inventory.\n","type":"string"},"frequency":{"description":"Intervals when inventories are generated.\nAn inventory is generated within one hour after it is configured for the first time. Then it is generated at the specified intervals.\nPossible values:\n* `Daily`\n* `Weekly`\n","type":"string"},"includedObjectVersions":{"description":"Indicates whether versions of objects are included in an inventory.\nPossible values:\n* `All`\n* `Current`\n","type":"string"},"isEnabled":{"description":"Indicates whether the rule is enabled. If this parameter is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>, the inventory is generated.\n","type":"boolean"},"obsBucketInventoryId":{"type":"string"},"optionalFields":{"description":"Extra metadata fields that can be added to an inventory. If this parameter is configured,\nfields specified in this parameter are contained in the inventory.\nPossible values:\n* `Size`\n* `LastModifiedDate`\n* `ETag`\n* `StorageClass`\n* `IsMultipartUploaded`\n* `ReplicationStatus`\n* `EncryptionStatus`\n","items":{"type":"string"},"type":"array"},"region":{"description":"Specifies the bucket region.\n","type":"string"}},"required":["bucket","configurationId","destination","filterPrefix","frequency","includedObjectVersions","isEnabled","obsBucketInventoryId","optionalFields","region"],"requiredInputs":["bucket","configurationId","destination","frequency","includedObjectVersions","isEnabled"],"stateInputs":{"description":"Input properties used for looking up and filtering ObsBucketInventory resources.\n","properties":{"bucket":{"description":"Name of the bucket for saving inventories.\n","type":"string"},"configurationId":{"description":"ID of the inventory configuration. Valid characters: letters, digits, hyphens (-),\nperiods (.) and underscores (_).\n","type":"string"},"destination":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketInventoryDestination:ObsBucketInventoryDestination","description":"Destination bucket settings of an inventory.\nThe structure is documented below.\n"},"filterPrefix":{"description":"Filtering by name prefix. Only objects with the specified name prefix are included in the inventory.\n","type":"string"},"frequency":{"description":"Intervals when inventories are generated.\nAn inventory is generated within one hour after it is configured for the first time. Then it is generated at the specified intervals.\nPossible values:\n* `Daily`\n* `Weekly`\n","type":"string"},"includedObjectVersions":{"description":"Indicates whether versions of objects are included in an inventory.\nPossible values:\n* `All`\n* `Current`\n","type":"string"},"isEnabled":{"description":"Indicates whether the rule is enabled. If this parameter is set to <span pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\">`true`</span>, the inventory is generated.\n","type":"boolean"},"obsBucketInventoryId":{"type":"string"},"optionalFields":{"description":"Extra metadata fields that can be added to an inventory. If this parameter is configured,\nfields specified in this parameter are contained in the inventory.\nPossible values:\n* `Size`\n* `LastModifiedDate`\n* `ETag`\n* `StorageClass`\n* `IsMultipartUploaded`\n* `ReplicationStatus`\n* `EncryptionStatus`\n","items":{"type":"string"},"type":"array"},"region":{"description":"Specifies the bucket region.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/obsBucketObject:ObsBucketObject":{"description":"Up-to-date reference of API arguments for OBS bucket object you can get at\n[documentation portal](https://docs.otc.t-systems.com/object-storage-service/api-ref/apis/operations_on_objects)\n\nProvides an OBS bucket object resource within OpenTelekomCloud.\nNow respects HTTP_PROXY, HTTPS_PROXY environment variables.\n\n## Example Usage\n\n### Uploading to a bucket\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst object = new opentelekomcloud.ObsBucketObject(\"object\", {\n    bucket: \"your_bucket_name\",\n    key: \"new_key_from_content\",\n    content: \"some object content\",\n    contentType: \"application/xml\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nobject = opentelekomcloud.ObsBucketObject(\"object\",\n    bucket=\"your_bucket_name\",\n    key=\"new_key_from_content\",\n    content=\"some object content\",\n    content_type=\"application/xml\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var @object = new Opentelekomcloud.ObsBucketObject(\"object\", new()\n    {\n        Bucket = \"your_bucket_name\",\n        Key = \"new_key_from_content\",\n        Content = \"some object content\",\n        ContentType = \"application/xml\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewObsBucketObject(ctx, \"object\", &opentelekomcloud.ObsBucketObjectArgs{\n\t\t\tBucket:      pulumi.String(\"your_bucket_name\"),\n\t\t\tKey:         pulumi.String(\"new_key_from_content\"),\n\t\t\tContent:     pulumi.String(\"some object content\"),\n\t\t\tContentType: pulumi.String(\"application/xml\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ObsBucketObject;\nimport com.pulumi.opentelekomcloud.ObsBucketObjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var object = new ObsBucketObject(\"object\", ObsBucketObjectArgs.builder()\n            .bucket(\"your_bucket_name\")\n            .key(\"new_key_from_content\")\n            .content(\"some object content\")\n            .contentType(\"application/xml\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  object:\n    type: opentelekomcloud:ObsBucketObject\n    properties:\n      bucket: your_bucket_name\n      key: new_key_from_content\n      content: some object content\n      contentType: application/xml\n```\n<!--End PulumiCodeChooser -->\n\n### Uploading a file to a bucket\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst examplebucket = new opentelekomcloud.ObsBucket(\"examplebucket\", {\n    bucket: \"examplebuckettftest\",\n    acl: \"private\",\n});\nconst object = new opentelekomcloud.ObsBucketObject(\"object\", {\n    bucket: examplebucket.bucket,\n    key: \"new_key_from_file\",\n    source: \"index.html\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nexamplebucket = opentelekomcloud.ObsBucket(\"examplebucket\",\n    bucket=\"examplebuckettftest\",\n    acl=\"private\")\nobject = opentelekomcloud.ObsBucketObject(\"object\",\n    bucket=examplebucket.bucket,\n    key=\"new_key_from_file\",\n    source=\"index.html\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var examplebucket = new Opentelekomcloud.ObsBucket(\"examplebucket\", new()\n    {\n        Bucket = \"examplebuckettftest\",\n        Acl = \"private\",\n    });\n\n    var @object = new Opentelekomcloud.ObsBucketObject(\"object\", new()\n    {\n        Bucket = examplebucket.Bucket,\n        Key = \"new_key_from_file\",\n        Source = \"index.html\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texamplebucket, err := opentelekomcloud.NewObsBucket(ctx, \"examplebucket\", &opentelekomcloud.ObsBucketArgs{\n\t\t\tBucket: pulumi.String(\"examplebuckettftest\"),\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewObsBucketObject(ctx, \"object\", &opentelekomcloud.ObsBucketObjectArgs{\n\t\t\tBucket: examplebucket.Bucket,\n\t\t\tKey:    pulumi.String(\"new_key_from_file\"),\n\t\t\tSource: pulumi.String(\"index.html\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ObsBucket;\nimport com.pulumi.opentelekomcloud.ObsBucketArgs;\nimport com.pulumi.opentelekomcloud.ObsBucketObject;\nimport com.pulumi.opentelekomcloud.ObsBucketObjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var examplebucket = new ObsBucket(\"examplebucket\", ObsBucketArgs.builder()\n            .bucket(\"examplebuckettftest\")\n            .acl(\"private\")\n            .build());\n\n        var object = new ObsBucketObject(\"object\", ObsBucketObjectArgs.builder()\n            .bucket(examplebucket.bucket())\n            .key(\"new_key_from_file\")\n            .source(\"index.html\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  examplebucket:\n    type: opentelekomcloud:ObsBucket\n    properties:\n      bucket: examplebuckettftest\n      acl: private\n  object:\n    type: opentelekomcloud:ObsBucketObject\n    properties:\n      bucket: ${examplebucket.bucket}\n      key: new_key_from_file\n      source: index.html\n```\n<!--End PulumiCodeChooser -->\n\n### Server Side Encryption with OBS Default Master Key\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst examplebucketObject = new opentelekomcloud.ObsBucketObject(\"examplebucket_object\", {\n    bucket: \"your_bucket_name\",\n    key: \"someobject\",\n    source: \"index.html\",\n    encryption: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nexamplebucket_object = opentelekomcloud.ObsBucketObject(\"examplebucket_object\",\n    bucket=\"your_bucket_name\",\n    key=\"someobject\",\n    source=\"index.html\",\n    encryption=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var examplebucketObject = new Opentelekomcloud.ObsBucketObject(\"examplebucket_object\", new()\n    {\n        Bucket = \"your_bucket_name\",\n        Key = \"someobject\",\n        Source = \"index.html\",\n        Encryption = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewObsBucketObject(ctx, \"examplebucket_object\", &opentelekomcloud.ObsBucketObjectArgs{\n\t\t\tBucket:     pulumi.String(\"your_bucket_name\"),\n\t\t\tKey:        pulumi.String(\"someobject\"),\n\t\t\tSource:     pulumi.String(\"index.html\"),\n\t\t\tEncryption: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ObsBucketObject;\nimport com.pulumi.opentelekomcloud.ObsBucketObjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var examplebucketObject = new ObsBucketObject(\"examplebucketObject\", ObsBucketObjectArgs.builder()\n            .bucket(\"your_bucket_name\")\n            .key(\"someobject\")\n            .source(\"index.html\")\n            .encryption(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  examplebucketObject:\n    type: opentelekomcloud:ObsBucketObject\n    name: examplebucket_object\n    properties:\n      bucket: your_bucket_name\n      key: someobject\n      source: index.html\n      encryption: true\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"acl":{"description":"The ACL policy to apply. Defaults to <span pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\">`private`</span>.\n","type":"string"},"bucket":{"description":"The name of the bucket to put the file in.\n","type":"string"},"content":{"description":"The literal content being uploaded to the bucket.\n","type":"string"},"contentType":{"description":"A standard MIME type describing the format of the object data, e.g. application/octet-stream.\nAll Valid MIME Types are valid for this input.\n","type":"string"},"encryption":{"description":"Whether enable server-side encryption of the object in SSE-KMS mode.\n","type":"boolean"},"etag":{"description":"Specifies the unique identifier of the object content. It can be used to trigger updates.\nThe only meaningful value is `md5(file(<span pulumi-lang-nodejs=\"\"pathToFile\"\" pulumi-lang-dotnet=\"\"PathToFile\"\" pulumi-lang-go=\"\"pathToFile\"\" pulumi-lang-python=\"\"path_to_file\"\" pulumi-lang-yaml=\"\"pathToFile\"\" pulumi-lang-java=\"\"pathToFile\"\">\"path_to_file\"</span>))`.\n\nEither <span pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\">`source`</span> or <span pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\">`content`</span> must be provided to specify the bucket content.\nThese two arguments are mutually-exclusive.\n","type":"string"},"key":{"description":"The name of the object once it is in the bucket.\n","type":"string"},"kmsKeyId":{"type":"string"},"obsBucketObjectId":{"description":"the <span pulumi-lang-nodejs=\"`key`\" pulumi-lang-dotnet=\"`Key`\" pulumi-lang-go=\"`key`\" pulumi-lang-python=\"`key`\" pulumi-lang-yaml=\"`key`\" pulumi-lang-java=\"`key`\">`key`</span> of the resource supplied above.\n","type":"string"},"source":{"description":"The path to the source file being uploaded to the bucket.\n","type":"string"},"storageClass":{"description":"Specifies the storage class of the object. Defaults to `STANDARD`.\n","type":"string"}},"properties":{"acl":{"description":"The ACL policy to apply. Defaults to <span pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\">`private`</span>.\n","type":"string"},"bucket":{"description":"The name of the bucket to put the file in.\n","type":"string"},"content":{"description":"The literal content being uploaded to the bucket.\n","type":"string"},"contentType":{"description":"A standard MIME type describing the format of the object data, e.g. application/octet-stream.\nAll Valid MIME Types are valid for this input.\n","type":"string"},"encryption":{"description":"Whether enable server-side encryption of the object in SSE-KMS mode.\n","type":"boolean"},"etag":{"description":"Specifies the unique identifier of the object content. It can be used to trigger updates.\nThe only meaningful value is `md5(file(<span pulumi-lang-nodejs=\"\"pathToFile\"\" pulumi-lang-dotnet=\"\"PathToFile\"\" pulumi-lang-go=\"\"pathToFile\"\" pulumi-lang-python=\"\"path_to_file\"\" pulumi-lang-yaml=\"\"pathToFile\"\" pulumi-lang-java=\"\"pathToFile\"\">\"path_to_file\"</span>))`.\n\nEither <span pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\">`source`</span> or <span pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\">`content`</span> must be provided to specify the bucket content.\nThese two arguments are mutually-exclusive.\n","type":"string"},"key":{"description":"The name of the object once it is in the bucket.\n","type":"string"},"kmsKeyId":{"type":"string"},"obsBucketObjectId":{"description":"the <span pulumi-lang-nodejs=\"`key`\" pulumi-lang-dotnet=\"`Key`\" pulumi-lang-go=\"`key`\" pulumi-lang-python=\"`key`\" pulumi-lang-yaml=\"`key`\" pulumi-lang-java=\"`key`\">`key`</span> of the resource supplied above.\n","type":"string"},"size":{"description":"the size of the object in bytes.\n","type":"number"},"source":{"description":"The path to the source file being uploaded to the bucket.\n","type":"string"},"storageClass":{"description":"Specifies the storage class of the object. Defaults to `STANDARD`.\n","type":"string"},"versionId":{"description":"A unique version ID value for the object, if bucket versioning is enabled.\n","type":"string"}},"required":["bucket","etag","key","obsBucketObjectId","size","storageClass","versionId"],"requiredInputs":["bucket","key"],"stateInputs":{"description":"Input properties used for looking up and filtering ObsBucketObject resources.\n","properties":{"acl":{"description":"The ACL policy to apply. Defaults to <span pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\">`private`</span>.\n","type":"string"},"bucket":{"description":"The name of the bucket to put the file in.\n","type":"string"},"content":{"description":"The literal content being uploaded to the bucket.\n","type":"string"},"contentType":{"description":"A standard MIME type describing the format of the object data, e.g. application/octet-stream.\nAll Valid MIME Types are valid for this input.\n","type":"string"},"encryption":{"description":"Whether enable server-side encryption of the object in SSE-KMS mode.\n","type":"boolean"},"etag":{"description":"Specifies the unique identifier of the object content. It can be used to trigger updates.\nThe only meaningful value is `md5(file(<span pulumi-lang-nodejs=\"\"pathToFile\"\" pulumi-lang-dotnet=\"\"PathToFile\"\" pulumi-lang-go=\"\"pathToFile\"\" pulumi-lang-python=\"\"path_to_file\"\" pulumi-lang-yaml=\"\"pathToFile\"\" pulumi-lang-java=\"\"pathToFile\"\">\"path_to_file\"</span>))`.\n\nEither <span pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\">`source`</span> or <span pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\">`content`</span> must be provided to specify the bucket content.\nThese two arguments are mutually-exclusive.\n","type":"string"},"key":{"description":"The name of the object once it is in the bucket.\n","type":"string"},"kmsKeyId":{"type":"string"},"obsBucketObjectId":{"description":"the <span pulumi-lang-nodejs=\"`key`\" pulumi-lang-dotnet=\"`Key`\" pulumi-lang-go=\"`key`\" pulumi-lang-python=\"`key`\" pulumi-lang-yaml=\"`key`\" pulumi-lang-java=\"`key`\">`key`</span> of the resource supplied above.\n","type":"string"},"size":{"description":"the size of the object in bytes.\n","type":"number"},"source":{"description":"The path to the source file being uploaded to the bucket.\n","type":"string"},"storageClass":{"description":"Specifies the storage class of the object. Defaults to `STANDARD`.\n","type":"string"},"versionId":{"description":"A unique version ID value for the object, if bucket versioning is enabled.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/obsBucketObjectAcl:ObsBucketObjectAcl":{"description":"Up-to-date reference of API arguments for OBS bucket object you can get at\n[documentation portal](https://docs.otc.t-systems.com/object-storage-service/api-ref/apis/operations_on_objects)\n\nManages an OBS bucket object acl resource within OpenTelekomCloud.\n\n> **NOTE:** When creating or updating the OBS bucket object acl, the original object acl will be overwritten. When\ndeleting the OBS bucket object acl, only the owner permissions will be retained, and the other permissions will be\nremoved.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```yaml\nconfiguration:\n  bucket:\n    type: dynamic\n  key:\n    type: dynamic\n  account1:\n    type: dynamic\n  account2:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:ObsBucketAcl\n    properties:\n      bucket: ${bucket}\n      key: ${key}\n      accountPermissions:\n        - accessToObject:\n            - READ\n          accessToAcls:\n            - READ_ACP\n            - WRITE_ACP\n          accountId: ${account1}\n        - accessToObject:\n            - READ\n          accessToAcls:\n            - READ_ACP\n          accountId: ${account2}\n      publicPermission:\n        accessToAcls:\n          - READ_ACP\n          - WRITE_ACP\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe obs bucket object acl can be imported using `bucket` and `key`, separated by a slash, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/obsBucketObjectAcl:ObsBucketObjectAcl test <bucket>/<key>\n```\n\n","inputProperties":{"accountPermissions":{"description":"Specifies the object account permissions.\nThe<span pulumi-lang-nodejs=\" accountPermissionStruct \" pulumi-lang-dotnet=\" AccountPermissionStruct \" pulumi-lang-go=\" accountPermissionStruct \" pulumi-lang-python=\" account_permission_struct \" pulumi-lang-yaml=\" accountPermissionStruct \" pulumi-lang-java=\" accountPermissionStruct \"> account_permission_struct </span>structure is documented below.\n\n<a name=\"OBSBucketObjectAcl_permission_struct\"></a>\nThe <span pulumi-lang-nodejs=\"`permissionStruct`\" pulumi-lang-dotnet=\"`PermissionStruct`\" pulumi-lang-go=\"`permissionStruct`\" pulumi-lang-python=\"`permission_struct`\" pulumi-lang-yaml=\"`permissionStruct`\" pulumi-lang-java=\"`permissionStruct`\">`permission_struct`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketObjectAclAccountPermission:ObsBucketObjectAclAccountPermission"},"type":"array"},"bucket":{"description":"Specifies the name of the bucket which the object belongs to.\n\nChanging this parameter will create a new resource.\n","type":"string"},"key":{"description":"Specifies the name of the object to which to set the acl.\n\nChanging this parameter will create a new resource.\n","type":"string"},"obsBucketObjectAclId":{"description":"The name of the bucket object key.\n","type":"string"},"publicPermission":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketObjectAclPublicPermission:ObsBucketObjectAclPublicPermission","description":"Specifies the object public permission.\nThe<span pulumi-lang-nodejs=\" permissionStruct \" pulumi-lang-dotnet=\" PermissionStruct \" pulumi-lang-go=\" permissionStruct \" pulumi-lang-python=\" permission_struct \" pulumi-lang-yaml=\" permissionStruct \" pulumi-lang-java=\" permissionStruct \"> permission_struct </span>structure is documented below.\n"}},"properties":{"accountPermissions":{"description":"Specifies the object account permissions.\nThe<span pulumi-lang-nodejs=\" accountPermissionStruct \" pulumi-lang-dotnet=\" AccountPermissionStruct \" pulumi-lang-go=\" accountPermissionStruct \" pulumi-lang-python=\" account_permission_struct \" pulumi-lang-yaml=\" accountPermissionStruct \" pulumi-lang-java=\" accountPermissionStruct \"> account_permission_struct </span>structure is documented below.\n\n<a name=\"OBSBucketObjectAcl_permission_struct\"></a>\nThe <span pulumi-lang-nodejs=\"`permissionStruct`\" pulumi-lang-dotnet=\"`PermissionStruct`\" pulumi-lang-go=\"`permissionStruct`\" pulumi-lang-python=\"`permission_struct`\" pulumi-lang-yaml=\"`permissionStruct`\" pulumi-lang-java=\"`permissionStruct`\">`permission_struct`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketObjectAclAccountPermission:ObsBucketObjectAclAccountPermission"},"type":"array"},"bucket":{"description":"Specifies the name of the bucket which the object belongs to.\n\nChanging this parameter will create a new resource.\n","type":"string"},"key":{"description":"Specifies the name of the object to which to set the acl.\n\nChanging this parameter will create a new resource.\n","type":"string"},"obsBucketObjectAclId":{"description":"The name of the bucket object key.\n","type":"string"},"ownerPermissions":{"description":"The object owner permission information.\nThe<span pulumi-lang-nodejs=\" ownerPermissionStruct \" pulumi-lang-dotnet=\" OwnerPermissionStruct \" pulumi-lang-go=\" ownerPermissionStruct \" pulumi-lang-python=\" owner_permission_struct \" pulumi-lang-yaml=\" ownerPermissionStruct \" pulumi-lang-java=\" ownerPermissionStruct \"> owner_permission_struct </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketObjectAclOwnerPermission:ObsBucketObjectAclOwnerPermission"},"type":"array"},"publicPermission":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketObjectAclPublicPermission:ObsBucketObjectAclPublicPermission","description":"Specifies the object public permission.\nThe<span pulumi-lang-nodejs=\" permissionStruct \" pulumi-lang-dotnet=\" PermissionStruct \" pulumi-lang-go=\" permissionStruct \" pulumi-lang-python=\" permission_struct \" pulumi-lang-yaml=\" permissionStruct \" pulumi-lang-java=\" permissionStruct \"> permission_struct </span>structure is documented below.\n"},"region":{"description":"The region of the bucket.\n","type":"string"}},"required":["bucket","key","obsBucketObjectAclId","ownerPermissions","region"],"requiredInputs":["bucket","key"],"stateInputs":{"description":"Input properties used for looking up and filtering ObsBucketObjectAcl resources.\n","properties":{"accountPermissions":{"description":"Specifies the object account permissions.\nThe<span pulumi-lang-nodejs=\" accountPermissionStruct \" pulumi-lang-dotnet=\" AccountPermissionStruct \" pulumi-lang-go=\" accountPermissionStruct \" pulumi-lang-python=\" account_permission_struct \" pulumi-lang-yaml=\" accountPermissionStruct \" pulumi-lang-java=\" accountPermissionStruct \"> account_permission_struct </span>structure is documented below.\n\n<a name=\"OBSBucketObjectAcl_permission_struct\"></a>\nThe <span pulumi-lang-nodejs=\"`permissionStruct`\" pulumi-lang-dotnet=\"`PermissionStruct`\" pulumi-lang-go=\"`permissionStruct`\" pulumi-lang-python=\"`permission_struct`\" pulumi-lang-yaml=\"`permissionStruct`\" pulumi-lang-java=\"`permissionStruct`\">`permission_struct`</span> block supports:\n","items":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketObjectAclAccountPermission:ObsBucketObjectAclAccountPermission"},"type":"array"},"bucket":{"description":"Specifies the name of the bucket which the object belongs to.\n\nChanging this parameter will create a new resource.\n","type":"string"},"key":{"description":"Specifies the name of the object to which to set the acl.\n\nChanging this parameter will create a new resource.\n","type":"string"},"obsBucketObjectAclId":{"description":"The name of the bucket object key.\n","type":"string"},"ownerPermissions":{"description":"The object owner permission information.\nThe<span pulumi-lang-nodejs=\" ownerPermissionStruct \" pulumi-lang-dotnet=\" OwnerPermissionStruct \" pulumi-lang-go=\" ownerPermissionStruct \" pulumi-lang-python=\" owner_permission_struct \" pulumi-lang-yaml=\" ownerPermissionStruct \" pulumi-lang-java=\" ownerPermissionStruct \"> owner_permission_struct </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketObjectAclOwnerPermission:ObsBucketObjectAclOwnerPermission"},"type":"array"},"publicPermission":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketObjectAclPublicPermission:ObsBucketObjectAclPublicPermission","description":"Specifies the object public permission.\nThe<span pulumi-lang-nodejs=\" permissionStruct \" pulumi-lang-dotnet=\" PermissionStruct \" pulumi-lang-go=\" permissionStruct \" pulumi-lang-python=\" permission_struct \" pulumi-lang-yaml=\" permissionStruct \" pulumi-lang-java=\" permissionStruct \"> permission_struct </span>structure is documented below.\n"},"region":{"description":"The region of the bucket.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/obsBucketPolicy:ObsBucketPolicy":{"description":"Up-to-date reference of API arguments for OBS bucket policy you can get at\n[documentation portal](https://docs.otc.t-systems.com/object-storage-service/api-ref/apis/advanced_bucket_settings)\n\nAttaches a policy to an OBS bucket resource within OpenTelekomCloud.\nNow respects HTTP_PROXY, HTTPS_PROXY environment variables.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst bucket = new opentelekomcloud.ObsBucket(\"bucket\", {bucket: \"my-tf-test-bucket\"});\nconst policy = new opentelekomcloud.ObsBucketPolicy(\"policy\", {\n    bucket: bucket.obsBucketId,\n    policy: pulumi.interpolate`{\n  \\\"Statement\\\": [{\n    \\\"Effect\\\": \\\"Allow\\\",\n    \\\"Principal\\\": {\n      \\\"ID\\\": [\\\"*\\\"]\n    },\n    \\\"Action\\\": [\n      \\\"GetObject\\\",\n      \\\"PutObject\\\"\n    ],\n    \\\"Resource\\\": [\n      \\\"${bucket.bucket}/*\\\"\n    ]\n  }]\n}\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nbucket = opentelekomcloud.ObsBucket(\"bucket\", bucket=\"my-tf-test-bucket\")\npolicy = opentelekomcloud.ObsBucketPolicy(\"policy\",\n    bucket=bucket.obs_bucket_id,\n    policy=bucket.bucket.apply(lambda bucket: f\"\"\"{{\n  \\\"Statement\\\": [{{\n    \\\"Effect\\\": \\\"Allow\\\",\n    \\\"Principal\\\": {{\n      \\\"ID\\\": [\\\"*\\\"]\n    }},\n    \\\"Action\\\": [\n      \\\"GetObject\\\",\n      \\\"PutObject\\\"\n    ],\n    \\\"Resource\\\": [\n      \\\"{bucket}/*\\\"\n    ]\n  }}]\n}}\n\"\"\"))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var bucket = new Opentelekomcloud.ObsBucket(\"bucket\", new()\n    {\n        Bucket = \"my-tf-test-bucket\",\n    });\n\n    var policy = new Opentelekomcloud.ObsBucketPolicy(\"policy\", new()\n    {\n        Bucket = bucket.ObsBucketId,\n        Policy = bucket.Bucket.Apply(bucket => @$\"{{\n  \\\"\"Statement\\\"\": [{{\n    \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n    \\\"\"Principal\\\"\": {{\n      \\\"\"ID\\\"\": [\\\"\"*\\\"\"]\n    }},\n    \\\"\"Action\\\"\": [\n      \\\"\"GetObject\\\"\",\n      \\\"\"PutObject\\\"\"\n    ],\n    \\\"\"Resource\\\"\": [\n      \\\"\"{bucket}/*\\\"\"\n    ]\n  }}]\n}}\n\"),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbucket, err := opentelekomcloud.NewObsBucket(ctx, \"bucket\", &opentelekomcloud.ObsBucketArgs{\n\t\t\tBucket: pulumi.String(\"my-tf-test-bucket\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewObsBucketPolicy(ctx, \"policy\", &opentelekomcloud.ObsBucketPolicyArgs{\n\t\t\tBucket: bucket.ObsBucketId,\n\t\t\tPolicy: bucket.Bucket.ApplyT(func(bucket string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(`{\n  \\\"Statement\\\": [{\n    \\\"Effect\\\": \\\"Allow\\\",\n    \\\"Principal\\\": {\n      \\\"ID\\\": [\\\"*\\\"]\n    },\n    \\\"Action\\\": [\n      \\\"GetObject\\\",\n      \\\"PutObject\\\"\n    ],\n    \\\"Resource\\\": [\n      \\\"%v/*\\\"\n    ]\n  }]\n}\n`, bucket), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ObsBucket;\nimport com.pulumi.opentelekomcloud.ObsBucketArgs;\nimport com.pulumi.opentelekomcloud.ObsBucketPolicy;\nimport com.pulumi.opentelekomcloud.ObsBucketPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var bucket = new ObsBucket(\"bucket\", ObsBucketArgs.builder()\n            .bucket(\"my-tf-test-bucket\")\n            .build());\n\n        var policy = new ObsBucketPolicy(\"policy\", ObsBucketPolicyArgs.builder()\n            .bucket(bucket.obsBucketId())\n            .policy(bucket.bucket().applyValue(_bucket -> \"\"\"\n{\n  \\\"Statement\\\": [{\n    \\\"Effect\\\": \\\"Allow\\\",\n    \\\"Principal\\\": {\n      \\\"ID\\\": [\\\"*\\\"]\n    },\n    \\\"Action\\\": [\n      \\\"GetObject\\\",\n      \\\"PutObject\\\"\n    ],\n    \\\"Resource\\\": [\n      \\\"%s/*\\\"\n    ]\n  }]\n}\n\", _bucket)))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  bucket:\n    type: opentelekomcloud:ObsBucket\n    properties:\n      bucket: my-tf-test-bucket\n  policy:\n    type: opentelekomcloud:ObsBucketPolicy\n    properties:\n      bucket: ${bucket.obsBucketId}\n      policy: |\n        {\n          \\\"Statement\\\": [{\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n              \\\"ID\\\": [\\\"*\\\"]\n            },\n            \\\"Action\\\": [\n              \\\"GetObject\\\",\n              \\\"PutObject\\\"\n            ],\n            \\\"Resource\\\": [\n              \\\"${bucket.bucket}/*\\\"\n            ]\n          }]\n        }\n```\n<!--End PulumiCodeChooser -->\n\n~>\n  Please note that used policy syntax is OBS-specific. For s3-compatible policies check\n  <span pulumi-lang-nodejs=\"`opentelekomcloud.S3BucketPolicy`\" pulumi-lang-dotnet=\"`opentelekomcloud.S3BucketPolicy`\" pulumi-lang-go=\"`S3BucketPolicy`\" pulumi-lang-python=\"`S3BucketPolicy`\" pulumi-lang-yaml=\"`opentelekomcloud.S3BucketPolicy`\" pulumi-lang-java=\"`opentelekomcloud.S3BucketPolicy`\">`opentelekomcloud.S3BucketPolicy`</span> resource.\n","inputProperties":{"bucket":{"description":"The name of the bucket to which to apply the policy.\n","type":"string"},"obsBucketPolicyId":{"type":"string"},"policy":{"description":"The text of the policy.\n","type":"string"}},"properties":{"bucket":{"description":"The name of the bucket to which to apply the policy.\n","type":"string"},"obsBucketPolicyId":{"type":"string"},"policy":{"description":"The text of the policy.\n","type":"string"}},"required":["bucket","obsBucketPolicyId","policy"],"requiredInputs":["bucket","policy"],"stateInputs":{"description":"Input properties used for looking up and filtering ObsBucketPolicy resources.\n","properties":{"bucket":{"description":"The name of the bucket to which to apply the policy.\n","type":"string"},"obsBucketPolicyId":{"type":"string"},"policy":{"description":"The text of the policy.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/obsBucketReplication:ObsBucketReplication":{"description":"Up-to-date reference of API arguments for OBS bucket cross-region replication you can get at\n[documentation portal](https://docs.otc.t-systems.com/object-storage-service/api-ref/apis/advanced_bucket_settings/configuring_cross-region_replication_for_a_bucket.html)\n\nManages an OBS bucket **Cross-Region Replication** resource within OpenTelekomCloud.\n\n> **NOTE:** The source bucket and destination bucket must belong to the same account. More cross-Region replication\nconstraints see [Cross-Region replication](https://docs.otc.t-systems.com/object-storage-service/api-ref/apis/advanced_bucket_settings/configuring_cross-region_replication_for_a_bucket.html#obs-04-0046)\n\n## Example Usage\n\n### Replicate all objects\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst bucket = config.requireObject<any>(\"bucket\");\nconst destinationBucket = config.requireObject<any>(\"destinationBucket\");\nconst agency = config.requireObject<any>(\"agency\");\nconst test = new opentelekomcloud.ObsBucketReplication(\"test\", {\n    bucket: bucket,\n    destinationBucket: destinationBucket,\n    agency: agency,\n    rules: [{\n        historyEnabled: false,\n        deleteData: false,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nbucket = config.require_object(\"bucket\")\ndestination_bucket = config.require_object(\"destinationBucket\")\nagency = config.require_object(\"agency\")\ntest = opentelekomcloud.ObsBucketReplication(\"test\",\n    bucket=bucket,\n    destination_bucket=destination_bucket,\n    agency=agency,\n    rules=[{\n        \"history_enabled\": False,\n        \"delete_data\": False,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var bucket = config.RequireObject<dynamic>(\"bucket\");\n    var destinationBucket = config.RequireObject<dynamic>(\"destinationBucket\");\n    var agency = config.RequireObject<dynamic>(\"agency\");\n    var test = new Opentelekomcloud.ObsBucketReplication(\"test\", new()\n    {\n        Bucket = bucket,\n        DestinationBucket = destinationBucket,\n        Agency = agency,\n        Rules = new[]\n        {\n            new Opentelekomcloud.Inputs.ObsBucketReplicationRuleArgs\n            {\n                HistoryEnabled = false,\n                DeleteData = false,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tbucket := cfg.RequireObject(\"bucket\")\n\t\tdestinationBucket := cfg.RequireObject(\"destinationBucket\")\n\t\tagency := cfg.RequireObject(\"agency\")\n\t\t_, err := opentelekomcloud.NewObsBucketReplication(ctx, \"test\", &opentelekomcloud.ObsBucketReplicationArgs{\n\t\t\tBucket:            pulumi.Any(bucket),\n\t\t\tDestinationBucket: pulumi.Any(destinationBucket),\n\t\t\tAgency:            pulumi.Any(agency),\n\t\t\tRules: opentelekomcloud.ObsBucketReplicationRuleArray{\n\t\t\t\t&opentelekomcloud.ObsBucketReplicationRuleArgs{\n\t\t\t\t\tHistoryEnabled: pulumi.Bool(false),\n\t\t\t\t\tDeleteData:     pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ObsBucketReplication;\nimport com.pulumi.opentelekomcloud.ObsBucketReplicationArgs;\nimport com.pulumi.opentelekomcloud.inputs.ObsBucketReplicationRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var bucket = config.get(\"bucket\");\n        final var destinationBucket = config.get(\"destinationBucket\");\n        final var agency = config.get(\"agency\");\n        var test = new ObsBucketReplication(\"test\", ObsBucketReplicationArgs.builder()\n            .bucket(bucket)\n            .destinationBucket(destinationBucket)\n            .agency(agency)\n            .rules(ObsBucketReplicationRuleArgs.builder()\n                .historyEnabled(false)\n                .deleteData(false)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  bucket:\n    type: dynamic\n  destinationBucket:\n    type: dynamic\n  agency:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:ObsBucketReplication\n    properties:\n      bucket: ${bucket}\n      destinationBucket: ${destinationBucket}\n      agency: ${agency}\n      rules:\n        - historyEnabled: false\n          deleteData: false\n```\n<!--End PulumiCodeChooser -->\n\n### Replicate objects matched by prefix\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst bucket = config.requireObject<any>(\"bucket\");\nconst destinationBucket = config.requireObject<any>(\"destinationBucket\");\nconst agency = config.requireObject<any>(\"agency\");\nconst test = new opentelekomcloud.ObsBucketReplication(\"test\", {\n    bucket: bucket,\n    destinationBucket: destinationBucket,\n    agency: agency,\n    rules: [\n        {\n            prefix: \"log\",\n        },\n        {\n            prefix: \"imgs/\",\n            storageClass: \"COLD\",\n            enabled: true,\n            historyEnabled: false,\n            deleteData: true,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nbucket = config.require_object(\"bucket\")\ndestination_bucket = config.require_object(\"destinationBucket\")\nagency = config.require_object(\"agency\")\ntest = opentelekomcloud.ObsBucketReplication(\"test\",\n    bucket=bucket,\n    destination_bucket=destination_bucket,\n    agency=agency,\n    rules=[\n        {\n            \"prefix\": \"log\",\n        },\n        {\n            \"prefix\": \"imgs/\",\n            \"storage_class\": \"COLD\",\n            \"enabled\": True,\n            \"history_enabled\": False,\n            \"delete_data\": True,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var bucket = config.RequireObject<dynamic>(\"bucket\");\n    var destinationBucket = config.RequireObject<dynamic>(\"destinationBucket\");\n    var agency = config.RequireObject<dynamic>(\"agency\");\n    var test = new Opentelekomcloud.ObsBucketReplication(\"test\", new()\n    {\n        Bucket = bucket,\n        DestinationBucket = destinationBucket,\n        Agency = agency,\n        Rules = new[]\n        {\n            new Opentelekomcloud.Inputs.ObsBucketReplicationRuleArgs\n            {\n                Prefix = \"log\",\n            },\n            new Opentelekomcloud.Inputs.ObsBucketReplicationRuleArgs\n            {\n                Prefix = \"imgs/\",\n                StorageClass = \"COLD\",\n                Enabled = true,\n                HistoryEnabled = false,\n                DeleteData = true,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tbucket := cfg.RequireObject(\"bucket\")\n\t\tdestinationBucket := cfg.RequireObject(\"destinationBucket\")\n\t\tagency := cfg.RequireObject(\"agency\")\n\t\t_, err := opentelekomcloud.NewObsBucketReplication(ctx, \"test\", &opentelekomcloud.ObsBucketReplicationArgs{\n\t\t\tBucket:            pulumi.Any(bucket),\n\t\t\tDestinationBucket: pulumi.Any(destinationBucket),\n\t\t\tAgency:            pulumi.Any(agency),\n\t\t\tRules: opentelekomcloud.ObsBucketReplicationRuleArray{\n\t\t\t\t&opentelekomcloud.ObsBucketReplicationRuleArgs{\n\t\t\t\t\tPrefix: pulumi.String(\"log\"),\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.ObsBucketReplicationRuleArgs{\n\t\t\t\t\tPrefix:         pulumi.String(\"imgs/\"),\n\t\t\t\t\tStorageClass:   pulumi.String(\"COLD\"),\n\t\t\t\t\tEnabled:        pulumi.Bool(true),\n\t\t\t\t\tHistoryEnabled: pulumi.Bool(false),\n\t\t\t\t\tDeleteData:     pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.ObsBucketReplication;\nimport com.pulumi.opentelekomcloud.ObsBucketReplicationArgs;\nimport com.pulumi.opentelekomcloud.inputs.ObsBucketReplicationRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var bucket = config.get(\"bucket\");\n        final var destinationBucket = config.get(\"destinationBucket\");\n        final var agency = config.get(\"agency\");\n        var test = new ObsBucketReplication(\"test\", ObsBucketReplicationArgs.builder()\n            .bucket(bucket)\n            .destinationBucket(destinationBucket)\n            .agency(agency)\n            .rules(            \n                ObsBucketReplicationRuleArgs.builder()\n                    .prefix(\"log\")\n                    .build(),\n                ObsBucketReplicationRuleArgs.builder()\n                    .prefix(\"imgs/\")\n                    .storageClass(\"COLD\")\n                    .enabled(true)\n                    .historyEnabled(false)\n                    .deleteData(true)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  bucket:\n    type: dynamic\n  destinationBucket:\n    type: dynamic\n  agency:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:ObsBucketReplication\n    properties:\n      bucket: ${bucket}\n      destinationBucket: ${destinationBucket}\n      agency: ${agency}\n      rules:\n        - prefix: log\n        - prefix: imgs/\n          storageClass: COLD\n          enabled: true\n          historyEnabled: false\n          deleteData: true\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe obs bucket cross-region replication can be imported using the `bucket`, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/obsBucketReplication:ObsBucketReplication test <bucket-name>\n```\n\n","inputProperties":{"agency":{"description":"Specifies the IAM agency name applied to the cross-region replication.\n\n> **NOTE:** The IAM agency is a cloud service agency of OBS. Which must has the **OBS Administrator** permission.\n","type":"string"},"bucket":{"description":"Specifies the name of the source bucket.\n\nChanging this parameter will create a new resource.\n","type":"string"},"destinationBucket":{"description":"Specifies the name of the destination bucket.\n\n> **NOTE:** The destination bucket cannot be in the region where the source bucket resides.\nSome regions do not support cross regional replication. More constraints information see:\n[Cross-Region replication](https://docs.otc.t-systems.com/object-storage-service/api-ref/apis/advanced_bucket_settings/configuring_cross-region_replication_for_a_bucket.html#obs-04-0046)\n","type":"string"},"obsBucketReplicationId":{"description":"The name of the bucket.\n* `rule/id` - The ID of a rule in UUID format.\n","type":"string"},"region":{"description":"Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used.\n\nChanging this parameter will create a new resource.\n","type":"string"},"rules":{"description":"Specifies the configurations of object cross-region replication management.\nThe structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketReplicationRule:ObsBucketReplicationRule"},"type":"array"}},"properties":{"agency":{"description":"Specifies the IAM agency name applied to the cross-region replication.\n\n> **NOTE:** The IAM agency is a cloud service agency of OBS. Which must has the **OBS Administrator** permission.\n","type":"string"},"bucket":{"description":"Specifies the name of the source bucket.\n\nChanging this parameter will create a new resource.\n","type":"string"},"destinationBucket":{"description":"Specifies the name of the destination bucket.\n\n> **NOTE:** The destination bucket cannot be in the region where the source bucket resides.\nSome regions do not support cross regional replication. More constraints information see:\n[Cross-Region replication](https://docs.otc.t-systems.com/object-storage-service/api-ref/apis/advanced_bucket_settings/configuring_cross-region_replication_for_a_bucket.html#obs-04-0046)\n","type":"string"},"obsBucketReplicationId":{"description":"The name of the bucket.\n* `rule/id` - The ID of a rule in UUID format.\n","type":"string"},"region":{"description":"Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used.\n\nChanging this parameter will create a new resource.\n","type":"string"},"rules":{"description":"Specifies the configurations of object cross-region replication management.\nThe structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketReplicationRule:ObsBucketReplicationRule"},"type":"array"}},"required":["agency","bucket","destinationBucket","obsBucketReplicationId","region"],"requiredInputs":["agency","bucket","destinationBucket"],"stateInputs":{"description":"Input properties used for looking up and filtering ObsBucketReplication resources.\n","properties":{"agency":{"description":"Specifies the IAM agency name applied to the cross-region replication.\n\n> **NOTE:** The IAM agency is a cloud service agency of OBS. Which must has the **OBS Administrator** permission.\n","type":"string"},"bucket":{"description":"Specifies the name of the source bucket.\n\nChanging this parameter will create a new resource.\n","type":"string"},"destinationBucket":{"description":"Specifies the name of the destination bucket.\n\n> **NOTE:** The destination bucket cannot be in the region where the source bucket resides.\nSome regions do not support cross regional replication. More constraints information see:\n[Cross-Region replication](https://docs.otc.t-systems.com/object-storage-service/api-ref/apis/advanced_bucket_settings/configuring_cross-region_replication_for_a_bucket.html#obs-04-0046)\n","type":"string"},"obsBucketReplicationId":{"description":"The name of the bucket.\n* `rule/id` - The ID of a rule in UUID format.\n","type":"string"},"region":{"description":"Specifies the region in which to create the resource.\nIf omitted, the provider-level region will be used.\n\nChanging this parameter will create a new resource.\n","type":"string"},"rules":{"description":"Specifies the configurations of object cross-region replication management.\nThe structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FObsBucketReplicationRule:ObsBucketReplicationRule"},"type":"array"}},"type":"object"},"type":"object"},"opentelekomcloud:index/privateNatDnatRuleV3:PrivateNatDnatRuleV3":{"description":"Up-to-date reference of API arguments for Private NAT DNAT rule you can get at\n[documentation portal](https://docs.otc.t-systems.com/nat-gateway/api-ref/apis_for_private_nat_gateways_v3.0/dnat_rules/index.html)\n\nManages a V3 Private NAT DNAT rule resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst transitIpId = config.requireObject<any>(\"transitIpId\");\nconst networkInterfaceId = config.requireObject<any>(\"networkInterfaceId\");\nconst gatewayId = config.requireObject<any>(\"gatewayId\");\nconst rule1 = new opentelekomcloud.PrivateNatDnatRuleV3(\"rule_1\", {\n    description: \"created\",\n    transitIpId: transitIpId,\n    networkInterfaceId: networkInterfaceId,\n    gatewayId: gatewayId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ntransit_ip_id = config.require_object(\"transitIpId\")\nnetwork_interface_id = config.require_object(\"networkInterfaceId\")\ngateway_id = config.require_object(\"gatewayId\")\nrule1 = opentelekomcloud.PrivateNatDnatRuleV3(\"rule_1\",\n    description=\"created\",\n    transit_ip_id=transit_ip_id,\n    network_interface_id=network_interface_id,\n    gateway_id=gateway_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var transitIpId = config.RequireObject<dynamic>(\"transitIpId\");\n    var networkInterfaceId = config.RequireObject<dynamic>(\"networkInterfaceId\");\n    var gatewayId = config.RequireObject<dynamic>(\"gatewayId\");\n    var rule1 = new Opentelekomcloud.PrivateNatDnatRuleV3(\"rule_1\", new()\n    {\n        Description = \"created\",\n        TransitIpId = transitIpId,\n        NetworkInterfaceId = networkInterfaceId,\n        GatewayId = gatewayId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\ttransitIpId := cfg.RequireObject(\"transitIpId\")\n\t\tnetworkInterfaceId := cfg.RequireObject(\"networkInterfaceId\")\n\t\tgatewayId := cfg.RequireObject(\"gatewayId\")\n\t\t_, err := opentelekomcloud.NewPrivateNatDnatRuleV3(ctx, \"rule_1\", &opentelekomcloud.PrivateNatDnatRuleV3Args{\n\t\t\tDescription:        pulumi.String(\"created\"),\n\t\t\tTransitIpId:        pulumi.Any(transitIpId),\n\t\t\tNetworkInterfaceId: pulumi.Any(networkInterfaceId),\n\t\t\tGatewayId:          pulumi.Any(gatewayId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.PrivateNatDnatRuleV3;\nimport com.pulumi.opentelekomcloud.PrivateNatDnatRuleV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var transitIpId = config.get(\"transitIpId\");\n        final var networkInterfaceId = config.get(\"networkInterfaceId\");\n        final var gatewayId = config.get(\"gatewayId\");\n        var rule1 = new PrivateNatDnatRuleV3(\"rule1\", PrivateNatDnatRuleV3Args.builder()\n            .description(\"created\")\n            .transitIpId(transitIpId)\n            .networkInterfaceId(networkInterfaceId)\n            .gatewayId(gatewayId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  transitIpId:\n    type: dynamic\n  networkInterfaceId:\n    type: dynamic\n  gatewayId:\n    type: dynamic\nresources:\n  rule1:\n    type: opentelekomcloud:PrivateNatDnatRuleV3\n    name: rule_1\n    properties:\n      description: created\n      transitIpId: ${transitIpId}\n      networkInterfaceId: ${networkInterfaceId}\n      gatewayId: ${gatewayId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nPrivate NAT DNAT rule V3 resource can be imported using the DNAT rule ID, `id`.\n\n```sh\n$ pulumi import opentelekomcloud:index/privateNatDnatRuleV3:PrivateNatDnatRuleV3 rule_1 <id>\n```\n\n","inputProperties":{"description":{"description":"Provides supplementary information about the DNAT rule. The description can contain up to 255 characters and cannot contain angle brackets (<>).\n","type":"string"},"gatewayId":{"description":"Specifies the private NAT gateway ID.\n","type":"string"},"internalServicePort":{"description":"Specifies the port number of the resource, which can be a compute instance, load balancer (v2 or v3), or virtual IP address. Value range: `0-65535`. Default value: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>.\n","type":"string"},"networkInterfaceId":{"description":"Specifies the port ID of the resource that the NAT gateway is bound to. The resource can be a compute instance, load balancer (v2 or v3), or virtual IP address. Either this parameter or <span pulumi-lang-nodejs=\"`privateIpAddress`\" pulumi-lang-dotnet=\"`PrivateIpAddress`\" pulumi-lang-go=\"`privateIpAddress`\" pulumi-lang-python=\"`private_ip_address`\" pulumi-lang-yaml=\"`privateIpAddress`\" pulumi-lang-java=\"`privateIpAddress`\">`private_ip_address`</span> must be specified. Otherwise, an error will be reported.\n","type":"string"},"privateIpAddress":{"description":"Specifies the port IP address that the NAT gateway uses. The resource can be a compute instance, load balancer (v2 or v3), or virtual IP address. Either this parameter or <span pulumi-lang-nodejs=\"`networkInterfaceId`\" pulumi-lang-dotnet=\"`NetworkInterfaceId`\" pulumi-lang-go=\"`networkInterfaceId`\" pulumi-lang-python=\"`network_interface_id`\" pulumi-lang-yaml=\"`networkInterfaceId`\" pulumi-lang-java=\"`networkInterfaceId`\">`network_interface_id`</span> must be specified. Otherwise, an error will be reported.\n","type":"string"},"protocol":{"description":"Specifies the protocol type. Supported values: <span pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\">`tcp`</span>, <span pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\">`udp`</span>, <span pulumi-lang-nodejs=\"`any`\" pulumi-lang-dotnet=\"`Any`\" pulumi-lang-go=\"`any`\" pulumi-lang-python=\"`any`\" pulumi-lang-yaml=\"`any`\" pulumi-lang-java=\"`any`\">`any`</span>.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FPrivateNatDnatRuleV3Timeouts:PrivateNatDnatRuleV3Timeouts"},"transitIpId":{"description":"Specifies the ID of the transit IP address.\n","type":"string"},"transitServicePort":{"description":"Specifies the port number of the transit IP address. Value range: `0-65535`. Default value: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>.\n","type":"string"}},"properties":{"createdAt":{"description":"Indicates the time when the private NAT DNAT rule was created. It is a UTC time in yyyy-mm-ddThh:mm:ssZ format.\n","type":"string"},"description":{"description":"Provides supplementary information about the DNAT rule. The description can contain up to 255 characters and cannot contain angle brackets (<>).\n","type":"string"},"enterpriseProjectId":{"description":"Indicates the ID of the enterprise project that is associated with the DNAT rule when the DNAT rule is created.\n","type":"string"},"gatewayId":{"description":"Specifies the private NAT gateway ID.\n","type":"string"},"internalServicePort":{"description":"Specifies the port number of the resource, which can be a compute instance, load balancer (v2 or v3), or virtual IP address. Value range: `0-65535`. Default value: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>.\n","type":"string"},"networkInterfaceId":{"description":"Specifies the port ID of the resource that the NAT gateway is bound to. The resource can be a compute instance, load balancer (v2 or v3), or virtual IP address. Either this parameter or <span pulumi-lang-nodejs=\"`privateIpAddress`\" pulumi-lang-dotnet=\"`PrivateIpAddress`\" pulumi-lang-go=\"`privateIpAddress`\" pulumi-lang-python=\"`private_ip_address`\" pulumi-lang-yaml=\"`privateIpAddress`\" pulumi-lang-java=\"`privateIpAddress`\">`private_ip_address`</span> must be specified. Otherwise, an error will be reported.\n","type":"string"},"privateIpAddress":{"description":"Specifies the port IP address that the NAT gateway uses. The resource can be a compute instance, load balancer (v2 or v3), or virtual IP address. Either this parameter or <span pulumi-lang-nodejs=\"`networkInterfaceId`\" pulumi-lang-dotnet=\"`NetworkInterfaceId`\" pulumi-lang-go=\"`networkInterfaceId`\" pulumi-lang-python=\"`network_interface_id`\" pulumi-lang-yaml=\"`networkInterfaceId`\" pulumi-lang-java=\"`networkInterfaceId`\">`network_interface_id`</span> must be specified. Otherwise, an error will be reported.\n","type":"string"},"projectId":{"description":"Indicates the project ID.\n","type":"string"},"protocol":{"description":"Specifies the protocol type. Supported values: <span pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\">`tcp`</span>, <span pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\">`udp`</span>, <span pulumi-lang-nodejs=\"`any`\" pulumi-lang-dotnet=\"`Any`\" pulumi-lang-go=\"`any`\" pulumi-lang-python=\"`any`\" pulumi-lang-yaml=\"`any`\" pulumi-lang-java=\"`any`\">`any`</span>.\n","type":"string"},"status":{"description":"Indicates the private NAT DNAT rule status. The value can be: `ACTIVE` (The DNAT rule is running properly) or `FROZEN` (The DNAT rule is frozen).\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FPrivateNatDnatRuleV3Timeouts:PrivateNatDnatRuleV3Timeouts"},"transitIpId":{"description":"Specifies the ID of the transit IP address.\n","type":"string"},"transitServicePort":{"description":"Specifies the port number of the transit IP address. Value range: `0-65535`. Default value: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>.\n","type":"string"},"type":{"description":"Indicates the backend resource type of the DNAT rule. The type can be: `COMPUTE`, `VIP`, `ELB`, `ELBv3`, `CUSTOMIZE`.\n","type":"string"},"updatedAt":{"description":"Indicates the time when the private NAT DNAT rule was updated. It is a UTC time in yyyy-mm-ddThh:mm:ssZ format.\n","type":"string"}},"required":["createdAt","enterpriseProjectId","gatewayId","internalServicePort","privateIpAddress","projectId","protocol","status","transitIpId","transitServicePort","type","updatedAt"],"requiredInputs":["gatewayId","transitIpId"],"stateInputs":{"description":"Input properties used for looking up and filtering PrivateNatDnatRuleV3 resources.\n","properties":{"createdAt":{"description":"Indicates the time when the private NAT DNAT rule was created. It is a UTC time in yyyy-mm-ddThh:mm:ssZ format.\n","type":"string"},"description":{"description":"Provides supplementary information about the DNAT rule. The description can contain up to 255 characters and cannot contain angle brackets (<>).\n","type":"string"},"enterpriseProjectId":{"description":"Indicates the ID of the enterprise project that is associated with the DNAT rule when the DNAT rule is created.\n","type":"string"},"gatewayId":{"description":"Specifies the private NAT gateway ID.\n","type":"string"},"internalServicePort":{"description":"Specifies the port number of the resource, which can be a compute instance, load balancer (v2 or v3), or virtual IP address. Value range: `0-65535`. Default value: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>.\n","type":"string"},"networkInterfaceId":{"description":"Specifies the port ID of the resource that the NAT gateway is bound to. The resource can be a compute instance, load balancer (v2 or v3), or virtual IP address. Either this parameter or <span pulumi-lang-nodejs=\"`privateIpAddress`\" pulumi-lang-dotnet=\"`PrivateIpAddress`\" pulumi-lang-go=\"`privateIpAddress`\" pulumi-lang-python=\"`private_ip_address`\" pulumi-lang-yaml=\"`privateIpAddress`\" pulumi-lang-java=\"`privateIpAddress`\">`private_ip_address`</span> must be specified. Otherwise, an error will be reported.\n","type":"string"},"privateIpAddress":{"description":"Specifies the port IP address that the NAT gateway uses. The resource can be a compute instance, load balancer (v2 or v3), or virtual IP address. Either this parameter or <span pulumi-lang-nodejs=\"`networkInterfaceId`\" pulumi-lang-dotnet=\"`NetworkInterfaceId`\" pulumi-lang-go=\"`networkInterfaceId`\" pulumi-lang-python=\"`network_interface_id`\" pulumi-lang-yaml=\"`networkInterfaceId`\" pulumi-lang-java=\"`networkInterfaceId`\">`network_interface_id`</span> must be specified. Otherwise, an error will be reported.\n","type":"string"},"projectId":{"description":"Indicates the project ID.\n","type":"string"},"protocol":{"description":"Specifies the protocol type. Supported values: <span pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\">`tcp`</span>, <span pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\">`udp`</span>, <span pulumi-lang-nodejs=\"`any`\" pulumi-lang-dotnet=\"`Any`\" pulumi-lang-go=\"`any`\" pulumi-lang-python=\"`any`\" pulumi-lang-yaml=\"`any`\" pulumi-lang-java=\"`any`\">`any`</span>.\n","type":"string"},"status":{"description":"Indicates the private NAT DNAT rule status. The value can be: `ACTIVE` (The DNAT rule is running properly) or `FROZEN` (The DNAT rule is frozen).\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FPrivateNatDnatRuleV3Timeouts:PrivateNatDnatRuleV3Timeouts"},"transitIpId":{"description":"Specifies the ID of the transit IP address.\n","type":"string"},"transitServicePort":{"description":"Specifies the port number of the transit IP address. Value range: `0-65535`. Default value: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>.\n","type":"string"},"type":{"description":"Indicates the backend resource type of the DNAT rule. The type can be: `COMPUTE`, `VIP`, `ELB`, `ELBv3`, `CUSTOMIZE`.\n","type":"string"},"updatedAt":{"description":"Indicates the time when the private NAT DNAT rule was updated. It is a UTC time in yyyy-mm-ddThh:mm:ssZ format.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/privateNatGatewayV3:PrivateNatGatewayV3":{"description":"Up-to-date reference of API arguments for Private NAT gateway you can get at\n[documentation portal](https://docs.otc.t-systems.com/nat-gateway/api-ref/apis_for_private_nat_gateways_v3.0/private_nat_gateways/index.html)\n\nManages a V3 Private NAT Gateway resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst networkId = config.requireObject<any>(\"networkId\");\nconst gateway1 = new opentelekomcloud.PrivateNatGatewayV3(\"gateway_1\", {\n    name: \"test-acc-nat-gateway\",\n    description: \"created\",\n    spec: \"Small\",\n    downlinkVpcs: [{\n        virsubnetId: networkId,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nnetwork_id = config.require_object(\"networkId\")\ngateway1 = opentelekomcloud.PrivateNatGatewayV3(\"gateway_1\",\n    name=\"test-acc-nat-gateway\",\n    description=\"created\",\n    spec=\"Small\",\n    downlink_vpcs=[{\n        \"virsubnet_id\": network_id,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var networkId = config.RequireObject<dynamic>(\"networkId\");\n    var gateway1 = new Opentelekomcloud.PrivateNatGatewayV3(\"gateway_1\", new()\n    {\n        Name = \"test-acc-nat-gateway\",\n        Description = \"created\",\n        Spec = \"Small\",\n        DownlinkVpcs = new[]\n        {\n            new Opentelekomcloud.Inputs.PrivateNatGatewayV3DownlinkVpcArgs\n            {\n                VirsubnetId = networkId,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tnetworkId := cfg.RequireObject(\"networkId\")\n\t\t_, err := opentelekomcloud.NewPrivateNatGatewayV3(ctx, \"gateway_1\", &opentelekomcloud.PrivateNatGatewayV3Args{\n\t\t\tName:        pulumi.String(\"test-acc-nat-gateway\"),\n\t\t\tDescription: pulumi.String(\"created\"),\n\t\t\tSpec:        pulumi.String(\"Small\"),\n\t\t\tDownlinkVpcs: opentelekomcloud.PrivateNatGatewayV3DownlinkVpcArray{\n\t\t\t\t&opentelekomcloud.PrivateNatGatewayV3DownlinkVpcArgs{\n\t\t\t\t\tVirsubnetId: pulumi.Any(networkId),\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.opentelekomcloud.PrivateNatGatewayV3;\nimport com.pulumi.opentelekomcloud.PrivateNatGatewayV3Args;\nimport com.pulumi.opentelekomcloud.inputs.PrivateNatGatewayV3DownlinkVpcArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var networkId = config.get(\"networkId\");\n        var gateway1 = new PrivateNatGatewayV3(\"gateway1\", PrivateNatGatewayV3Args.builder()\n            .name(\"test-acc-nat-gateway\")\n            .description(\"created\")\n            .spec(\"Small\")\n            .downlinkVpcs(PrivateNatGatewayV3DownlinkVpcArgs.builder()\n                .virsubnetId(networkId)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  networkId:\n    type: dynamic\nresources:\n  gateway1:\n    type: opentelekomcloud:PrivateNatGatewayV3\n    name: gateway_1\n    properties:\n      name: test-acc-nat-gateway\n      description: created\n      spec: Small\n      downlinkVpcs:\n        - virsubnetId: ${networkId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nPrivate NAT Gateway V3 resource can be imported using the gateway ID, `id`.\n\n```sh\n$ pulumi import opentelekomcloud:index/privateNatGatewayV3:PrivateNatGatewayV3 gw_1 <id>\n```\n\n","inputProperties":{"description":{"description":"Provides supplementary information about the private NAT gateway. The description can contain up to 255 characters and cannot contain angle brackets (<>).\n","type":"string"},"downlinkVpcs":{"description":"Specifies the VPC where the private NAT gateway works. The<span pulumi-lang-nodejs=\" downlinkVpcs \" pulumi-lang-dotnet=\" DownlinkVpcs \" pulumi-lang-go=\" downlinkVpcs \" pulumi-lang-python=\" downlink_vpcs \" pulumi-lang-yaml=\" downlinkVpcs \" pulumi-lang-java=\" downlinkVpcs \"> downlink_vpcs </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FPrivateNatGatewayV3DownlinkVpc:PrivateNatGatewayV3DownlinkVpc"},"type":"array"},"enterpriseProjectId":{"description":"Specifies the ID of the enterprise project that is associated with the private NAT gateway when the private NAT gateway is created.\n","type":"string"},"name":{"description":"Specifies the private NAT gateway name. Only digits, letters, underscores (_), and hyphens (-) are allowed.\n","type":"string"},"spec":{"description":"Specifies the private NAT gateway specifications. The value can be: `Small`, `Medium`, `Large`, `Extra-large`. Default value: `Small`.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the tag list in key/value format.\n\n<a name=<span pulumi-lang-nodejs=\"\"downlinkVpcs\"\" pulumi-lang-dotnet=\"\"DownlinkVpcs\"\" pulumi-lang-go=\"\"downlinkVpcs\"\" pulumi-lang-python=\"\"downlink_vpcs\"\" pulumi-lang-yaml=\"\"downlinkVpcs\"\" pulumi-lang-java=\"\"downlinkVpcs\"\">\"downlink_vpcs\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`downlinkVpcs`\" pulumi-lang-dotnet=\"`DownlinkVpcs`\" pulumi-lang-go=\"`downlinkVpcs`\" pulumi-lang-python=\"`downlink_vpcs`\" pulumi-lang-yaml=\"`downlinkVpcs`\" pulumi-lang-java=\"`downlinkVpcs`\">`downlink_vpcs`</span> block supports:\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FPrivateNatGatewayV3Timeouts:PrivateNatGatewayV3Timeouts"}},"properties":{"createdAt":{"description":"Indicates the time when the private NAT gateway was created. It is a UTC time in yyyy-mm-ddThh:mm:ssZ format.\n","type":"string"},"description":{"description":"Provides supplementary information about the private NAT gateway. The description can contain up to 255 characters and cannot contain angle brackets (<>).\n","type":"string"},"downlinkVpcs":{"description":"Specifies the VPC where the private NAT gateway works. The<span pulumi-lang-nodejs=\" downlinkVpcs \" pulumi-lang-dotnet=\" DownlinkVpcs \" pulumi-lang-go=\" downlinkVpcs \" pulumi-lang-python=\" downlink_vpcs \" pulumi-lang-yaml=\" downlinkVpcs \" pulumi-lang-java=\" downlinkVpcs \"> downlink_vpcs </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FPrivateNatGatewayV3DownlinkVpc:PrivateNatGatewayV3DownlinkVpc"},"type":"array"},"enterpriseProjectId":{"description":"Specifies the ID of the enterprise project that is associated with the private NAT gateway when the private NAT gateway is created.\n","type":"string"},"name":{"description":"Specifies the private NAT gateway name. Only digits, letters, underscores (_), and hyphens (-) are allowed.\n","type":"string"},"projectId":{"description":"Indicates the project ID.\n","type":"string"},"ruleMax":{"description":"Indicates Specifies the maximum number of rules. Value range: `0-65535`\n","type":"number"},"spec":{"description":"Specifies the private NAT gateway specifications. The value can be: `Small`, `Medium`, `Large`, `Extra-large`. Default value: `Small`.\n","type":"string"},"status":{"description":"Indicates the private NAT gateway status. The value can be: `ACTIVE` (The private NAT gateway is running properly) or `FROZEN` (The private NAT gateway is frozen).\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the tag list in key/value format.\n\n<a name=<span pulumi-lang-nodejs=\"\"downlinkVpcs\"\" pulumi-lang-dotnet=\"\"DownlinkVpcs\"\" pulumi-lang-go=\"\"downlinkVpcs\"\" pulumi-lang-python=\"\"downlink_vpcs\"\" pulumi-lang-yaml=\"\"downlinkVpcs\"\" pulumi-lang-java=\"\"downlinkVpcs\"\">\"downlink_vpcs\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`downlinkVpcs`\" pulumi-lang-dotnet=\"`DownlinkVpcs`\" pulumi-lang-go=\"`downlinkVpcs`\" pulumi-lang-python=\"`downlink_vpcs`\" pulumi-lang-yaml=\"`downlinkVpcs`\" pulumi-lang-java=\"`downlinkVpcs`\">`downlink_vpcs`</span> block supports:\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FPrivateNatGatewayV3Timeouts:PrivateNatGatewayV3Timeouts"},"transitIpPoolSizeMax":{"description":"Specifies the maximum number of transit IP addresses in a transit IP address pool. Value range: `0-100`\n","type":"number"},"updatedAt":{"description":"Indicates the time when the private NAT gateway was updated. It is a UTC time in yyyy-mm-ddThh:mm:ssZ format.\n","type":"string"}},"required":["createdAt","downlinkVpcs","enterpriseProjectId","name","projectId","ruleMax","status","transitIpPoolSizeMax","updatedAt"],"requiredInputs":["downlinkVpcs"],"stateInputs":{"description":"Input properties used for looking up and filtering PrivateNatGatewayV3 resources.\n","properties":{"createdAt":{"description":"Indicates the time when the private NAT gateway was created. It is a UTC time in yyyy-mm-ddThh:mm:ssZ format.\n","type":"string"},"description":{"description":"Provides supplementary information about the private NAT gateway. The description can contain up to 255 characters and cannot contain angle brackets (<>).\n","type":"string"},"downlinkVpcs":{"description":"Specifies the VPC where the private NAT gateway works. The<span pulumi-lang-nodejs=\" downlinkVpcs \" pulumi-lang-dotnet=\" DownlinkVpcs \" pulumi-lang-go=\" downlinkVpcs \" pulumi-lang-python=\" downlink_vpcs \" pulumi-lang-yaml=\" downlinkVpcs \" pulumi-lang-java=\" downlinkVpcs \"> downlink_vpcs </span>structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FPrivateNatGatewayV3DownlinkVpc:PrivateNatGatewayV3DownlinkVpc"},"type":"array"},"enterpriseProjectId":{"description":"Specifies the ID of the enterprise project that is associated with the private NAT gateway when the private NAT gateway is created.\n","type":"string"},"name":{"description":"Specifies the private NAT gateway name. Only digits, letters, underscores (_), and hyphens (-) are allowed.\n","type":"string"},"projectId":{"description":"Indicates the project ID.\n","type":"string"},"ruleMax":{"description":"Indicates Specifies the maximum number of rules. Value range: `0-65535`\n","type":"number"},"spec":{"description":"Specifies the private NAT gateway specifications. The value can be: `Small`, `Medium`, `Large`, `Extra-large`. Default value: `Small`.\n","type":"string"},"status":{"description":"Indicates the private NAT gateway status. The value can be: `ACTIVE` (The private NAT gateway is running properly) or `FROZEN` (The private NAT gateway is frozen).\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the tag list in key/value format.\n\n<a name=<span pulumi-lang-nodejs=\"\"downlinkVpcs\"\" pulumi-lang-dotnet=\"\"DownlinkVpcs\"\" pulumi-lang-go=\"\"downlinkVpcs\"\" pulumi-lang-python=\"\"downlink_vpcs\"\" pulumi-lang-yaml=\"\"downlinkVpcs\"\" pulumi-lang-java=\"\"downlinkVpcs\"\">\"downlink_vpcs\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`downlinkVpcs`\" pulumi-lang-dotnet=\"`DownlinkVpcs`\" pulumi-lang-go=\"`downlinkVpcs`\" pulumi-lang-python=\"`downlink_vpcs`\" pulumi-lang-yaml=\"`downlinkVpcs`\" pulumi-lang-java=\"`downlinkVpcs`\">`downlink_vpcs`</span> block supports:\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FPrivateNatGatewayV3Timeouts:PrivateNatGatewayV3Timeouts"},"transitIpPoolSizeMax":{"description":"Specifies the maximum number of transit IP addresses in a transit IP address pool. Value range: `0-100`\n","type":"number"},"updatedAt":{"description":"Indicates the time when the private NAT gateway was updated. It is a UTC time in yyyy-mm-ddThh:mm:ssZ format.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/privateNatSnatRuleV3:PrivateNatSnatRuleV3":{"description":"Up-to-date reference of API arguments for Private NAT SNAT rule you can get at\n[documentation portal](https://docs.otc.t-systems.com/nat-gateway/api-ref/apis_for_private_nat_gateways_v3.0/snat_rules/index.html)\n\nManages a V3 Private NAT SNAT rule resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst transitIpId = config.requireObject<any>(\"transitIpId\");\nconst networkId = config.requireObject<any>(\"networkId\");\nconst gatewayId = config.requireObject<any>(\"gatewayId\");\nconst rule1 = new opentelekomcloud.PrivateNatSnatRuleV3(\"rule_1\", {\n    description: \"created\",\n    transitIpIds: [\"var.transit_ip_id\"],\n    virsubnetId: networkId,\n    gatewayId: gatewayId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ntransit_ip_id = config.require_object(\"transitIpId\")\nnetwork_id = config.require_object(\"networkId\")\ngateway_id = config.require_object(\"gatewayId\")\nrule1 = opentelekomcloud.PrivateNatSnatRuleV3(\"rule_1\",\n    description=\"created\",\n    transit_ip_ids=[\"var.transit_ip_id\"],\n    virsubnet_id=network_id,\n    gateway_id=gateway_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var transitIpId = config.RequireObject<dynamic>(\"transitIpId\");\n    var networkId = config.RequireObject<dynamic>(\"networkId\");\n    var gatewayId = config.RequireObject<dynamic>(\"gatewayId\");\n    var rule1 = new Opentelekomcloud.PrivateNatSnatRuleV3(\"rule_1\", new()\n    {\n        Description = \"created\",\n        TransitIpIds = new[]\n        {\n            \"var.transit_ip_id\",\n        },\n        VirsubnetId = networkId,\n        GatewayId = gatewayId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\ttransitIpId := cfg.RequireObject(\"transitIpId\")\n\t\tnetworkId := cfg.RequireObject(\"networkId\")\n\t\tgatewayId := cfg.RequireObject(\"gatewayId\")\n\t\t_, err := opentelekomcloud.NewPrivateNatSnatRuleV3(ctx, \"rule_1\", &opentelekomcloud.PrivateNatSnatRuleV3Args{\n\t\t\tDescription: pulumi.String(\"created\"),\n\t\t\tTransitIpIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"var.transit_ip_id\"),\n\t\t\t},\n\t\t\tVirsubnetId: pulumi.Any(networkId),\n\t\t\tGatewayId:   pulumi.Any(gatewayId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.PrivateNatSnatRuleV3;\nimport com.pulumi.opentelekomcloud.PrivateNatSnatRuleV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var transitIpId = config.get(\"transitIpId\");\n        final var networkId = config.get(\"networkId\");\n        final var gatewayId = config.get(\"gatewayId\");\n        var rule1 = new PrivateNatSnatRuleV3(\"rule1\", PrivateNatSnatRuleV3Args.builder()\n            .description(\"created\")\n            .transitIpIds(\"var.transit_ip_id\")\n            .virsubnetId(networkId)\n            .gatewayId(gatewayId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  transitIpId:\n    type: dynamic\n  networkId:\n    type: dynamic\n  gatewayId:\n    type: dynamic\nresources:\n  rule1:\n    type: opentelekomcloud:PrivateNatSnatRuleV3\n    name: rule_1\n    properties:\n      description: created\n      transitIpIds:\n        - var.transit_ip_id\n      virsubnetId: ${networkId}\n      gatewayId: ${gatewayId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nPrivate NAT SNAT rule V3 resource can be imported using the SNAT rule ID, `id`.\n\n```sh\n$ pulumi import opentelekomcloud:index/privateNatSnatRuleV3:PrivateNatSnatRuleV3 rule_1 <id>\n```\n\n","inputProperties":{"cidr":{"description":"Specifies the CIDR block that matches the SNAT rule. Either this parameter or <span pulumi-lang-nodejs=\"`virsubnetId`\" pulumi-lang-dotnet=\"`VirsubnetId`\" pulumi-lang-go=\"`virsubnetId`\" pulumi-lang-python=\"`virsubnet_id`\" pulumi-lang-yaml=\"`virsubnetId`\" pulumi-lang-java=\"`virsubnetId`\">`virsubnet_id`</span> must be specified.\n","type":"string"},"description":{"description":"Provides supplementary information about the SNAT rule. The description can contain up to 255 characters and cannot contain angle brackets (<>).\n","type":"string"},"gatewayId":{"description":"Specifies the private NAT gateway ID.\n","type":"string"},"privateNatSnatRuleV3Id":{"description":"Private NAT SNAT rule ID.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FPrivateNatSnatRuleV3Timeouts:PrivateNatSnatRuleV3Timeouts"},"transitIpIds":{"description":"Specifies the IDs of the transit IP addresses. A maximum number of <span pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\">`20`</span> IDs is allowed.\n","items":{"type":"string"},"type":"array"},"virsubnetId":{"description":"Specifies the ID of the subnet that matches the SNAT rule. Either this parameter or <span pulumi-lang-nodejs=\"`cidr`\" pulumi-lang-dotnet=\"`Cidr`\" pulumi-lang-go=\"`cidr`\" pulumi-lang-python=\"`cidr`\" pulumi-lang-yaml=\"`cidr`\" pulumi-lang-java=\"`cidr`\">`cidr`</span> must be specified.\n","type":"string"}},"properties":{"cidr":{"description":"Specifies the CIDR block that matches the SNAT rule. Either this parameter or <span pulumi-lang-nodejs=\"`virsubnetId`\" pulumi-lang-dotnet=\"`VirsubnetId`\" pulumi-lang-go=\"`virsubnetId`\" pulumi-lang-python=\"`virsubnet_id`\" pulumi-lang-yaml=\"`virsubnetId`\" pulumi-lang-java=\"`virsubnetId`\">`virsubnet_id`</span> must be specified.\n","type":"string"},"createdAt":{"description":"Indicates the time when the private NAT SNAT rule was created. It is a UTC time in yyyy-mm-ddThh:mm:ssZ format.\n","type":"string"},"description":{"description":"Provides supplementary information about the SNAT rule. The description can contain up to 255 characters and cannot contain angle brackets (<>).\n","type":"string"},"enterpriseProjectId":{"description":"Indicates the ID of the enterprise project that is associated with the SNAT rule when the SNAT rule is created.\n","type":"string"},"gatewayId":{"description":"Specifies the private NAT gateway ID.\n","type":"string"},"privateNatSnatRuleV3Id":{"description":"Private NAT SNAT rule ID.\n","type":"string"},"projectId":{"description":"Indicates the project ID.\n","type":"string"},"status":{"description":"Indicates the private NAT SNAT rule status. The value can be: `ACTIVE` (The SNAT rule is running properly) or `FROZEN` (The SNAT rule is frozen).\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FPrivateNatSnatRuleV3Timeouts:PrivateNatSnatRuleV3Timeouts"},"transitIpAssociations":{"description":"Indicates the list of details of associated transit IP addresses. The structure is described below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FPrivateNatSnatRuleV3TransitIpAssociation:PrivateNatSnatRuleV3TransitIpAssociation"},"type":"array"},"transitIpIds":{"description":"Specifies the IDs of the transit IP addresses. A maximum number of <span pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\">`20`</span> IDs is allowed.\n","items":{"type":"string"},"type":"array"},"updatedAt":{"description":"Indicates the time when the private NAT SNAT rule was updated. It is a UTC time in yyyy-mm-ddThh:mm:ssZ format.\n","type":"string"},"virsubnetId":{"description":"Specifies the ID of the subnet that matches the SNAT rule. Either this parameter or <span pulumi-lang-nodejs=\"`cidr`\" pulumi-lang-dotnet=\"`Cidr`\" pulumi-lang-go=\"`cidr`\" pulumi-lang-python=\"`cidr`\" pulumi-lang-yaml=\"`cidr`\" pulumi-lang-java=\"`cidr`\">`cidr`</span> must be specified.\n","type":"string"}},"required":["cidr","createdAt","enterpriseProjectId","gatewayId","privateNatSnatRuleV3Id","projectId","status","transitIpAssociations","transitIpIds","updatedAt","virsubnetId"],"requiredInputs":["gatewayId","transitIpIds"],"stateInputs":{"description":"Input properties used for looking up and filtering PrivateNatSnatRuleV3 resources.\n","properties":{"cidr":{"description":"Specifies the CIDR block that matches the SNAT rule. Either this parameter or <span pulumi-lang-nodejs=\"`virsubnetId`\" pulumi-lang-dotnet=\"`VirsubnetId`\" pulumi-lang-go=\"`virsubnetId`\" pulumi-lang-python=\"`virsubnet_id`\" pulumi-lang-yaml=\"`virsubnetId`\" pulumi-lang-java=\"`virsubnetId`\">`virsubnet_id`</span> must be specified.\n","type":"string"},"createdAt":{"description":"Indicates the time when the private NAT SNAT rule was created. It is a UTC time in yyyy-mm-ddThh:mm:ssZ format.\n","type":"string"},"description":{"description":"Provides supplementary information about the SNAT rule. The description can contain up to 255 characters and cannot contain angle brackets (<>).\n","type":"string"},"enterpriseProjectId":{"description":"Indicates the ID of the enterprise project that is associated with the SNAT rule when the SNAT rule is created.\n","type":"string"},"gatewayId":{"description":"Specifies the private NAT gateway ID.\n","type":"string"},"privateNatSnatRuleV3Id":{"description":"Private NAT SNAT rule ID.\n","type":"string"},"projectId":{"description":"Indicates the project ID.\n","type":"string"},"status":{"description":"Indicates the private NAT SNAT rule status. The value can be: `ACTIVE` (The SNAT rule is running properly) or `FROZEN` (The SNAT rule is frozen).\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FPrivateNatSnatRuleV3Timeouts:PrivateNatSnatRuleV3Timeouts"},"transitIpAssociations":{"description":"Indicates the list of details of associated transit IP addresses. The structure is described below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FPrivateNatSnatRuleV3TransitIpAssociation:PrivateNatSnatRuleV3TransitIpAssociation"},"type":"array"},"transitIpIds":{"description":"Specifies the IDs of the transit IP addresses. A maximum number of <span pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\">`20`</span> IDs is allowed.\n","items":{"type":"string"},"type":"array"},"updatedAt":{"description":"Indicates the time when the private NAT SNAT rule was updated. It is a UTC time in yyyy-mm-ddThh:mm:ssZ format.\n","type":"string"},"virsubnetId":{"description":"Specifies the ID of the subnet that matches the SNAT rule. Either this parameter or <span pulumi-lang-nodejs=\"`cidr`\" pulumi-lang-dotnet=\"`Cidr`\" pulumi-lang-go=\"`cidr`\" pulumi-lang-python=\"`cidr`\" pulumi-lang-yaml=\"`cidr`\" pulumi-lang-java=\"`cidr`\">`cidr`</span> must be specified.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/privateNatTransitIpV3:PrivateNatTransitIpV3":{"description":"Up-to-date reference of API arguments for Private NAT Transit IP you can get at\n[documentation portal](https://docs.otc.t-systems.com/nat-gateway/api-ref/apis_for_private_nat_gateways_v3.0/transit_ip_addresses/index.html)\n\nManages a V3 Private NAT Transit IP resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst networkId = config.requireObject<any>(\"networkId\");\nconst transitIp1 = new opentelekomcloud.PrivateNatTransitIpV3(\"transit_ip_1\", {\n    virsubnetId: networkId,\n    tags: {\n        kuh: \"muh\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nnetwork_id = config.require_object(\"networkId\")\ntransit_ip1 = opentelekomcloud.PrivateNatTransitIpV3(\"transit_ip_1\",\n    virsubnet_id=network_id,\n    tags={\n        \"kuh\": \"muh\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var networkId = config.RequireObject<dynamic>(\"networkId\");\n    var transitIp1 = new Opentelekomcloud.PrivateNatTransitIpV3(\"transit_ip_1\", new()\n    {\n        VirsubnetId = networkId,\n        Tags = \n        {\n            { \"kuh\", \"muh\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tnetworkId := cfg.RequireObject(\"networkId\")\n\t\t_, err := opentelekomcloud.NewPrivateNatTransitIpV3(ctx, \"transit_ip_1\", &opentelekomcloud.PrivateNatTransitIpV3Args{\n\t\t\tVirsubnetId: pulumi.Any(networkId),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"kuh\": pulumi.String(\"muh\"),\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.opentelekomcloud.PrivateNatTransitIpV3;\nimport com.pulumi.opentelekomcloud.PrivateNatTransitIpV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var networkId = config.get(\"networkId\");\n        var transitIp1 = new PrivateNatTransitIpV3(\"transitIp1\", PrivateNatTransitIpV3Args.builder()\n            .virsubnetId(networkId)\n            .tags(Map.of(\"kuh\", \"muh\"))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  networkId:\n    type: dynamic\nresources:\n  transitIp1:\n    type: opentelekomcloud:PrivateNatTransitIpV3\n    name: transit_ip_1\n    properties:\n      virsubnetId: ${networkId}\n      tags:\n        kuh: muh\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nPrivate NAT Transit IP V3 resource can be imported using the Transit IP ID, `id`.\n\n```sh\n$ pulumi import opentelekomcloud:index/privateNatTransitIpV3:PrivateNatTransitIpV3 ip_1 <id>\n```\n\n","inputProperties":{"enterpriseProjectId":{"description":"Specifies the ID of the enterprise project that is associated with the transit IP address when the transit IP address is being assigned. Default: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>.\n","type":"string"},"ipAddress":{"description":"Specifies the transit IP address.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the tag list in key/value format.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FPrivateNatTransitIpV3Timeouts:PrivateNatTransitIpV3Timeouts"},"virsubnetId":{"description":"Specifies the subnet ID of the current project.\n","type":"string"}},"properties":{"createdAt":{"description":"Indicates the time when the private NAT Transit IP was created. It is a UTC time in yyyy-mm-ddThh:mm:ssZ format.\n","type":"string"},"enterpriseProjectId":{"description":"Specifies the ID of the enterprise project that is associated with the transit IP address when the transit IP address is being assigned. Default: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>.\n","type":"string"},"gatewayId":{"description":"Indicates the ID of the private NAT gateway associated with the transit IP address.\n","type":"string"},"ipAddress":{"description":"Specifies the transit IP address.\n","type":"string"},"networkInterfaceId":{"description":"Indicates the network interface ID of the transit IP address.\n","type":"string"},"projectId":{"description":"Indicates the project ID.\n","type":"string"},"status":{"description":"Indicates the private NAT transit IP status. The value can be: `ACTIVE` (The Transit IP is running properly) or `FROZEN` (The Transit IP is frozen).\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the tag list in key/value format.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FPrivateNatTransitIpV3Timeouts:PrivateNatTransitIpV3Timeouts"},"updatedAt":{"description":"Indicates the time when the private NAT Transit IP was updated. It is a UTC time in yyyy-mm-ddThh:mm:ssZ format.\n","type":"string"},"virsubnetId":{"description":"Specifies the subnet ID of the current project.\n","type":"string"}},"required":["createdAt","enterpriseProjectId","gatewayId","ipAddress","networkInterfaceId","projectId","status","updatedAt","virsubnetId"],"requiredInputs":["virsubnetId"],"stateInputs":{"description":"Input properties used for looking up and filtering PrivateNatTransitIpV3 resources.\n","properties":{"createdAt":{"description":"Indicates the time when the private NAT Transit IP was created. It is a UTC time in yyyy-mm-ddThh:mm:ssZ format.\n","type":"string"},"enterpriseProjectId":{"description":"Specifies the ID of the enterprise project that is associated with the transit IP address when the transit IP address is being assigned. Default: <span pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\">`0`</span>.\n","type":"string"},"gatewayId":{"description":"Indicates the ID of the private NAT gateway associated with the transit IP address.\n","type":"string"},"ipAddress":{"description":"Specifies the transit IP address.\n","type":"string"},"networkInterfaceId":{"description":"Indicates the network interface ID of the transit IP address.\n","type":"string"},"projectId":{"description":"Indicates the project ID.\n","type":"string"},"status":{"description":"Indicates the private NAT transit IP status. The value can be: `ACTIVE` (The Transit IP is running properly) or `FROZEN` (The Transit IP is frozen).\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Specifies the tag list in key/value format.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FPrivateNatTransitIpV3Timeouts:PrivateNatTransitIpV3Timeouts"},"updatedAt":{"description":"Indicates the time when the private NAT Transit IP was updated. It is a UTC time in yyyy-mm-ddThh:mm:ssZ format.\n","type":"string"},"virsubnetId":{"description":"Specifies the subnet ID of the current project.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/rdsBackupV3:RdsBackupV3":{"description":"Up-to-date reference of API arguments for RDS backup rule you can get at\n[documentation portal](https://docs.otc.t-systems.com/relational-database-service/api-ref/api_v3_recommended/backup_and_restoration)\n\nManages a manual RDS backup.\n\n## Example Usage\n\n### Create a basic RDS backup\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = new opentelekomcloud.RdsBackupV3(\"test\", {\n    instanceId: instance.id,\n    name: \"rds-backup-test-01\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.RdsBackupV3(\"test\",\n    instance_id=instance[\"id\"],\n    name=\"rds-backup-test-01\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = new Opentelekomcloud.RdsBackupV3(\"test\", new()\n    {\n        InstanceId = instance.Id,\n        Name = \"rds-backup-test-01\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewRdsBackupV3(ctx, \"test\", &opentelekomcloud.RdsBackupV3Args{\n\t\t\tInstanceId: pulumi.Any(instance.Id),\n\t\t\tName:       pulumi.String(\"rds-backup-test-01\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.RdsBackupV3;\nimport com.pulumi.opentelekomcloud.RdsBackupV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new RdsBackupV3(\"test\", RdsBackupV3Args.builder()\n            .instanceId(instance.id())\n            .name(\"rds-backup-test-01\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: opentelekomcloud:RdsBackupV3\n    properties:\n      instanceId: ${instance.id}\n      name: rds-backup-test-01\n```\n<!--End PulumiCodeChooser -->\n\n### Create a specific RDS databases backup for Microsoft SQL Server\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = new opentelekomcloud.RdsBackupV3(\"test\", {\n    instanceId: instance.id,\n    name: \"rds-backup-test-01\",\n    databases: [\n        \"test\",\n        \"test2\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.RdsBackupV3(\"test\",\n    instance_id=instance[\"id\"],\n    name=\"rds-backup-test-01\",\n    databases=[\n        \"test\",\n        \"test2\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = new Opentelekomcloud.RdsBackupV3(\"test\", new()\n    {\n        InstanceId = instance.Id,\n        Name = \"rds-backup-test-01\",\n        Databases = new[]\n        {\n            \"test\",\n            \"test2\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewRdsBackupV3(ctx, \"test\", &opentelekomcloud.RdsBackupV3Args{\n\t\t\tInstanceId: pulumi.Any(instance.Id),\n\t\t\tName:       pulumi.String(\"rds-backup-test-01\"),\n\t\t\tDatabases: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"test\"),\n\t\t\t\tpulumi.String(\"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.opentelekomcloud.RdsBackupV3;\nimport com.pulumi.opentelekomcloud.RdsBackupV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new RdsBackupV3(\"test\", RdsBackupV3Args.builder()\n            .instanceId(instance.id())\n            .name(\"rds-backup-test-01\")\n            .databases(            \n                \"test\",\n                \"test2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: opentelekomcloud:RdsBackupV3\n    properties:\n      instanceId: ${instance.id}\n      name: rds-backup-test-01\n      databases:\n        - test\n        - test2\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nRDS backup can be imported using related RDS `instance_id` and their `backup_id`, separated by the slashes, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/rdsBackupV3:RdsBackupV3 backup <instance_id>/<backup_id>\n```\n\n","inputProperties":{"databases":{"description":"Specifies a list of self-built Microsoft SQL Server databases that are partially backed up.\n(Only Microsoft SQL Server support partial backups.)\n","items":{"type":"string"},"type":"array"},"instanceId":{"description":"The ID of the RDS instance to which the backup belongs.\n","type":"string"},"name":{"description":"The name of the backup.\n","type":"string"},"rdsBackupV3Id":{"description":"The ID of the backup.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FRdsBackupV3Timeouts:RdsBackupV3Timeouts"}},"properties":{"backupId":{"type":"string"},"beginTime":{"description":"Indicates the backup start time in the \"yyyy-mm-ddThh:mm:ssZ\" format,\nwhere \"T\" indicates the start time of the time field, and \"Z\" indicates the time zone offset.\n","type":"string"},"databases":{"description":"Specifies a list of self-built Microsoft SQL Server databases that are partially backed up.\n(Only Microsoft SQL Server support partial backups.)\n","items":{"type":"string"},"type":"array"},"instanceId":{"description":"The ID of the RDS instance to which the backup belongs.\n","type":"string"},"name":{"description":"The name of the backup.\n","type":"string"},"rdsBackupV3Id":{"description":"The ID of the backup.\n","type":"string"},"size":{"type":"number"},"status":{"description":"Indicates the backup status. Values:\n- BUILDING: Backup in progress\n- COMPLETED: Backup completed\n- FAILED: Backup failed\n- DELETING: Backup being deleted\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FRdsBackupV3Timeouts:RdsBackupV3Timeouts"},"type":{"description":"Indicates the backup type. Values:\n- auto: automated full backup\n- manual: manual full backup\n- fragment: differential full backup\n- incremental: automated incremental backup\n","type":"string"}},"required":["backupId","beginTime","instanceId","name","rdsBackupV3Id","size","status","type"],"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering RdsBackupV3 resources.\n","properties":{"backupId":{"type":"string"},"beginTime":{"description":"Indicates the backup start time in the \"yyyy-mm-ddThh:mm:ssZ\" format,\nwhere \"T\" indicates the start time of the time field, and \"Z\" indicates the time zone offset.\n","type":"string"},"databases":{"description":"Specifies a list of self-built Microsoft SQL Server databases that are partially backed up.\n(Only Microsoft SQL Server support partial backups.)\n","items":{"type":"string"},"type":"array"},"instanceId":{"description":"The ID of the RDS instance to which the backup belongs.\n","type":"string"},"name":{"description":"The name of the backup.\n","type":"string"},"rdsBackupV3Id":{"description":"The ID of the backup.\n","type":"string"},"size":{"type":"number"},"status":{"description":"Indicates the backup status. Values:\n- BUILDING: Backup in progress\n- COMPLETED: Backup completed\n- FAILED: Backup failed\n- DELETING: Backup being deleted\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FRdsBackupV3Timeouts:RdsBackupV3Timeouts"},"type":{"description":"Indicates the backup type. Values:\n- auto: automated full backup\n- manual: manual full backup\n- fragment: differential full backup\n- incremental: automated incremental backup\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/rdsInstanceMinorVersionUpgradeV3:RdsInstanceMinorVersionUpgradeV3":{"description":"Up-to-date reference of API arguments for RDS instance minor version upgrade you can get at\n[documentation portal](https://docs.otc.t-systems.com/relational-database-service/api-ref/api_v3_recommended/db_instance_management/upgrading_a_minor_version.html#rds-05-0024)\n\nManages an RDSv3 instance minor version upgrade resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst test = new opentelekomcloud.RdsInstanceMinorVersionUpgradeV3(\"test\", {instanceId: instanceId});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ntest = opentelekomcloud.RdsInstanceMinorVersionUpgradeV3(\"test\", instance_id=instance_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var test = new Opentelekomcloud.RdsInstanceMinorVersionUpgradeV3(\"test\", new()\n    {\n        InstanceId = instanceId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\t_, err := opentelekomcloud.NewRdsInstanceMinorVersionUpgradeV3(ctx, \"test\", &opentelekomcloud.RdsInstanceMinorVersionUpgradeV3Args{\n\t\t\tInstanceId: pulumi.Any(instanceId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.RdsInstanceMinorVersionUpgradeV3;\nimport com.pulumi.opentelekomcloud.RdsInstanceMinorVersionUpgradeV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        var test = new RdsInstanceMinorVersionUpgradeV3(\"test\", RdsInstanceMinorVersionUpgradeV3Args.builder()\n            .instanceId(instanceId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:RdsInstanceMinorVersionUpgradeV3\n    properties:\n      instanceId: ${instanceId}\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"delay":{"description":"Specifies whether the upgrade is delayed to the maintenance window.\nDefaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n+ **true**: The upgrade is delayed and performed within the maintenance window.\n+ **false**: The upgrade is performed immediately.\n","type":"boolean"},"instanceId":{"description":"Specifies the ID of the RDS instance to upgrade.\n","type":"string"},"rdsInstanceMinorVersionUpgradeV3Id":{"description":"The resource ID, which is the instance ID.\n","type":"string"}},"properties":{"delay":{"description":"Specifies whether the upgrade is delayed to the maintenance window.\nDefaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n+ **true**: The upgrade is delayed and performed within the maintenance window.\n+ **false**: The upgrade is performed immediately.\n","type":"boolean"},"instanceId":{"description":"Specifies the ID of the RDS instance to upgrade.\n","type":"string"},"rdsInstanceMinorVersionUpgradeV3Id":{"description":"The resource ID, which is the instance ID.\n","type":"string"}},"required":["instanceId","rdsInstanceMinorVersionUpgradeV3Id"],"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering RdsInstanceMinorVersionUpgradeV3 resources.\n","properties":{"delay":{"description":"Specifies whether the upgrade is delayed to the maintenance window.\nDefaults to <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n+ **true**: The upgrade is delayed and performed within the maintenance window.\n+ **false**: The upgrade is performed immediately.\n","type":"boolean"},"instanceId":{"description":"Specifies the ID of the RDS instance to upgrade.\n","type":"string"},"rdsInstanceMinorVersionUpgradeV3Id":{"description":"The resource ID, which is the instance ID.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/rdsInstanceV1:RdsInstanceV1":{"description":"Up-to-date reference of API arguments for RDS instance you can get at\n[documentation portal](https://docs.otc.t-systems.com/relational-database-service/api-ref/api_v1_to_be_discarded/db_instance_management)\n\n**DEPRECATED**\nManages RDS instance v1 resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Creating a PostgreSQL RDS instance\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst flavor = opentelekomcloud.getRdsFlavorsV1({\n    datastoreName: \"PostgreSQL\",\n    datastoreVersion: \"16\",\n    speccode: \"rds.pg.x1.xlarge.4\",\n});\nconst secgrpRds = new opentelekomcloud.ComputeSecgroupV2(\"secgrp_rds\", {\n    name: \"secgrp-rds-instance\",\n    description: \"Rds Security Group\",\n});\nconst instance = new opentelekomcloud.RdsInstanceV1(\"instance\", {\n    name: \"rds-instance\",\n    availabilityzone: \"eu-de-01\",\n    datastore: {\n        type: \"PostgreSQL\",\n        version: \"16\",\n    },\n    flavorref: flavor.then(flavor => flavor.id),\n    volume: {\n        type: \"CLOUDSSD\",\n        size: 200,\n    },\n    vpc: \"c1095fe7-03df-4205-ad2d-6f4c181d436e\",\n    dbrtpd: \"P@ssw0rd1!9851\",\n    dbport: \"8635\",\n    nics: {\n        subnetid: \"b65f8d25-c533-47e2-8601-cfaa265a3e3e\",\n    },\n    securitygroup: {\n        id: secgrpRds.computeSecgroupV2Id,\n    },\n    backupstrategy: {\n        starttime: \"04:00:00\",\n        keepdays: 4,\n    },\n    ha: {\n        enable: true,\n        replicationmode: \"async\",\n    },\n    tag: {\n        foo: \"bar\",\n        key: \"value\",\n    },\n}, {\n    dependsOn: [secgrpRds],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nflavor = opentelekomcloud.get_rds_flavors_v1(datastore_name=\"PostgreSQL\",\n    datastore_version=\"16\",\n    speccode=\"rds.pg.x1.xlarge.4\")\nsecgrp_rds = opentelekomcloud.ComputeSecgroupV2(\"secgrp_rds\",\n    name=\"secgrp-rds-instance\",\n    description=\"Rds Security Group\")\ninstance = opentelekomcloud.RdsInstanceV1(\"instance\",\n    name=\"rds-instance\",\n    availabilityzone=\"eu-de-01\",\n    datastore={\n        \"type\": \"PostgreSQL\",\n        \"version\": \"16\",\n    },\n    flavorref=flavor.id,\n    volume={\n        \"type\": \"CLOUDSSD\",\n        \"size\": 200,\n    },\n    vpc=\"c1095fe7-03df-4205-ad2d-6f4c181d436e\",\n    dbrtpd=\"P@ssw0rd1!9851\",\n    dbport=\"8635\",\n    nics={\n        \"subnetid\": \"b65f8d25-c533-47e2-8601-cfaa265a3e3e\",\n    },\n    securitygroup={\n        \"id\": secgrp_rds.compute_secgroup_v2_id,\n    },\n    backupstrategy={\n        \"starttime\": \"04:00:00\",\n        \"keepdays\": 4,\n    },\n    ha={\n        \"enable\": True,\n        \"replicationmode\": \"async\",\n    },\n    tag={\n        \"foo\": \"bar\",\n        \"key\": \"value\",\n    },\n    opts = pulumi.ResourceOptions(depends_on=[secgrp_rds]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var flavor = Opentelekomcloud.GetRdsFlavorsV1.Invoke(new()\n    {\n        DatastoreName = \"PostgreSQL\",\n        DatastoreVersion = \"16\",\n        Speccode = \"rds.pg.x1.xlarge.4\",\n    });\n\n    var secgrpRds = new Opentelekomcloud.ComputeSecgroupV2(\"secgrp_rds\", new()\n    {\n        Name = \"secgrp-rds-instance\",\n        Description = \"Rds Security Group\",\n    });\n\n    var instance = new Opentelekomcloud.RdsInstanceV1(\"instance\", new()\n    {\n        Name = \"rds-instance\",\n        Availabilityzone = \"eu-de-01\",\n        Datastore = new Opentelekomcloud.Inputs.RdsInstanceV1DatastoreArgs\n        {\n            Type = \"PostgreSQL\",\n            Version = \"16\",\n        },\n        Flavorref = flavor.Apply(getRdsFlavorsV1Result => getRdsFlavorsV1Result.Id),\n        Volume = new Opentelekomcloud.Inputs.RdsInstanceV1VolumeArgs\n        {\n            Type = \"CLOUDSSD\",\n            Size = 200,\n        },\n        Vpc = \"c1095fe7-03df-4205-ad2d-6f4c181d436e\",\n        Dbrtpd = \"P@ssw0rd1!9851\",\n        Dbport = \"8635\",\n        Nics = new Opentelekomcloud.Inputs.RdsInstanceV1NicsArgs\n        {\n            Subnetid = \"b65f8d25-c533-47e2-8601-cfaa265a3e3e\",\n        },\n        Securitygroup = new Opentelekomcloud.Inputs.RdsInstanceV1SecuritygroupArgs\n        {\n            Id = secgrpRds.ComputeSecgroupV2Id,\n        },\n        Backupstrategy = new Opentelekomcloud.Inputs.RdsInstanceV1BackupstrategyArgs\n        {\n            Starttime = \"04:00:00\",\n            Keepdays = 4,\n        },\n        Ha = new Opentelekomcloud.Inputs.RdsInstanceV1HaArgs\n        {\n            Enable = true,\n            Replicationmode = \"async\",\n        },\n        Tag = \n        {\n            { \"foo\", \"bar\" },\n            { \"key\", \"value\" },\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            secgrpRds,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tflavor, err := opentelekomcloud.GetRdsFlavorsV1(ctx, &opentelekomcloud.GetRdsFlavorsV1Args{\n\t\t\tDatastoreName:    \"PostgreSQL\",\n\t\t\tDatastoreVersion: \"16\",\n\t\t\tSpeccode:         pulumi.StringRef(\"rds.pg.x1.xlarge.4\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecgrpRds, err := opentelekomcloud.NewComputeSecgroupV2(ctx, \"secgrp_rds\", &opentelekomcloud.ComputeSecgroupV2Args{\n\t\t\tName:        pulumi.String(\"secgrp-rds-instance\"),\n\t\t\tDescription: pulumi.String(\"Rds Security Group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewRdsInstanceV1(ctx, \"instance\", &opentelekomcloud.RdsInstanceV1Args{\n\t\t\tName:             pulumi.String(\"rds-instance\"),\n\t\t\tAvailabilityzone: pulumi.String(\"eu-de-01\"),\n\t\t\tDatastore: &opentelekomcloud.RdsInstanceV1DatastoreArgs{\n\t\t\t\tType:    pulumi.String(\"PostgreSQL\"),\n\t\t\t\tVersion: pulumi.String(\"16\"),\n\t\t\t},\n\t\t\tFlavorref: pulumi.String(flavor.Id),\n\t\t\tVolume: &opentelekomcloud.RdsInstanceV1VolumeArgs{\n\t\t\t\tType: pulumi.String(\"CLOUDSSD\"),\n\t\t\t\tSize: pulumi.Float64(200),\n\t\t\t},\n\t\t\tVpc:    pulumi.String(\"c1095fe7-03df-4205-ad2d-6f4c181d436e\"),\n\t\t\tDbrtpd: pulumi.String(\"P@ssw0rd1!9851\"),\n\t\t\tDbport: pulumi.String(\"8635\"),\n\t\t\tNics: &opentelekomcloud.RdsInstanceV1NicsArgs{\n\t\t\t\tSubnetid: pulumi.String(\"b65f8d25-c533-47e2-8601-cfaa265a3e3e\"),\n\t\t\t},\n\t\t\tSecuritygroup: &opentelekomcloud.RdsInstanceV1SecuritygroupArgs{\n\t\t\t\tId: secgrpRds.ComputeSecgroupV2Id,\n\t\t\t},\n\t\t\tBackupstrategy: &opentelekomcloud.RdsInstanceV1BackupstrategyArgs{\n\t\t\t\tStarttime: pulumi.String(\"04:00:00\"),\n\t\t\t\tKeepdays:  pulumi.Float64(4),\n\t\t\t},\n\t\t\tHa: &opentelekomcloud.RdsInstanceV1HaArgs{\n\t\t\t\tEnable:          pulumi.Bool(true),\n\t\t\t\tReplicationmode: pulumi.String(\"async\"),\n\t\t\t},\n\t\t\tTag: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tsecgrpRds,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetRdsFlavorsV1Args;\nimport com.pulumi.opentelekomcloud.ComputeSecgroupV2;\nimport com.pulumi.opentelekomcloud.ComputeSecgroupV2Args;\nimport com.pulumi.opentelekomcloud.RdsInstanceV1;\nimport com.pulumi.opentelekomcloud.RdsInstanceV1Args;\nimport com.pulumi.opentelekomcloud.inputs.RdsInstanceV1DatastoreArgs;\nimport com.pulumi.opentelekomcloud.inputs.RdsInstanceV1VolumeArgs;\nimport com.pulumi.opentelekomcloud.inputs.RdsInstanceV1NicsArgs;\nimport com.pulumi.opentelekomcloud.inputs.RdsInstanceV1SecuritygroupArgs;\nimport com.pulumi.opentelekomcloud.inputs.RdsInstanceV1BackupstrategyArgs;\nimport com.pulumi.opentelekomcloud.inputs.RdsInstanceV1HaArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var flavor = OpentelekomcloudFunctions.getRdsFlavorsV1(GetRdsFlavorsV1Args.builder()\n            .datastoreName(\"PostgreSQL\")\n            .datastoreVersion(\"16\")\n            .speccode(\"rds.pg.x1.xlarge.4\")\n            .build());\n\n        var secgrpRds = new ComputeSecgroupV2(\"secgrpRds\", ComputeSecgroupV2Args.builder()\n            .name(\"secgrp-rds-instance\")\n            .description(\"Rds Security Group\")\n            .build());\n\n        var instance = new RdsInstanceV1(\"instance\", RdsInstanceV1Args.builder()\n            .name(\"rds-instance\")\n            .availabilityzone(\"eu-de-01\")\n            .datastore(RdsInstanceV1DatastoreArgs.builder()\n                .type(\"PostgreSQL\")\n                .version(\"16\")\n                .build())\n            .flavorref(flavor.id())\n            .volume(RdsInstanceV1VolumeArgs.builder()\n                .type(\"CLOUDSSD\")\n                .size(200.0)\n                .build())\n            .vpc(\"c1095fe7-03df-4205-ad2d-6f4c181d436e\")\n            .dbrtpd(\"P@ssw0rd1!9851\")\n            .dbport(\"8635\")\n            .nics(RdsInstanceV1NicsArgs.builder()\n                .subnetid(\"b65f8d25-c533-47e2-8601-cfaa265a3e3e\")\n                .build())\n            .securitygroup(RdsInstanceV1SecuritygroupArgs.builder()\n                .id(secgrpRds.computeSecgroupV2Id())\n                .build())\n            .backupstrategy(RdsInstanceV1BackupstrategyArgs.builder()\n                .starttime(\"04:00:00\")\n                .keepdays(4.0)\n                .build())\n            .ha(RdsInstanceV1HaArgs.builder()\n                .enable(true)\n                .replicationmode(\"async\")\n                .build())\n            .tag(Map.ofEntries(\n                Map.entry(\"foo\", \"bar\"),\n                Map.entry(\"key\", \"value\")\n            ))\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(secgrpRds)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  secgrpRds:\n    type: opentelekomcloud:ComputeSecgroupV2\n    name: secgrp_rds\n    properties:\n      name: secgrp-rds-instance\n      description: Rds Security Group\n  instance:\n    type: opentelekomcloud:RdsInstanceV1\n    properties:\n      name: rds-instance\n      availabilityzone: eu-de-01\n      datastore:\n        type: PostgreSQL\n        version: '16'\n      flavorref: ${flavor.id}\n      volume:\n        type: CLOUDSSD\n        size: 200\n      vpc: c1095fe7-03df-4205-ad2d-6f4c181d436e\n      dbrtpd: P@ssw0rd1!9851\n      dbport: '8635'\n      nics:\n        subnetid: b65f8d25-c533-47e2-8601-cfaa265a3e3e\n      securitygroup:\n        id: ${secgrpRds.computeSecgroupV2Id}\n      backupstrategy:\n        starttime: 04:00:00\n        keepdays: 4\n      ha:\n        enable: true\n        replicationmode: async\n      tag:\n        foo: bar\n        key: value\n    options:\n      dependsOn:\n        - ${secgrpRds}\nvariables:\n  flavor:\n    fn::invoke:\n      function: opentelekomcloud:getRdsFlavorsV1\n      arguments:\n        datastoreName: PostgreSQL\n        datastoreVersion: '16'\n        speccode: rds.pg.x1.xlarge.4\n```\n<!--End PulumiCodeChooser -->\n\n### Creating a SQLServer RDS instance\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst flavor = opentelekomcloud.getRdsFlavorsV1({\n    datastoreName: \"SQLServer\",\n    datastoreVersion: \"2022_SE\",\n    speccode: \"rds.mssql.c2.xlarge\",\n});\nconst secgrpRds = new opentelekomcloud.ComputeSecgroupV2(\"secgrp_rds\", {\n    name: \"secgrp-rds-instance\",\n    description: \"Rds Security Group\",\n});\nconst instance = new opentelekomcloud.RdsInstanceV1(\"instance\", {\n    name: \"rds-instance\",\n    availabilityzone: \"eu-de-01\",\n    flavorref: flavor.then(flavor => flavor.id),\n    vpc: \"c1095fe7-03df-4205-ad2d-6f4c181d436e\",\n    dbport: \"8635\",\n    dbrtpd: \"P@ssw0rd1!9851\",\n    datastore: {\n        type: \"SQLServer\",\n        version: \"2022_SE\",\n    },\n    volume: {\n        type: \"COMMON\",\n        size: 200,\n    },\n    nics: {\n        subnetid: \"b65f8d25-c533-47e2-8601-cfaa265a3e3e\",\n    },\n    securitygroup: {\n        id: secgrpRds.computeSecgroupV2Id,\n    },\n    backupstrategy: {\n        starttime: \"04:00:00\",\n        keepdays: 4,\n    },\n}, {\n    dependsOn: [secgrpRds],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nflavor = opentelekomcloud.get_rds_flavors_v1(datastore_name=\"SQLServer\",\n    datastore_version=\"2022_SE\",\n    speccode=\"rds.mssql.c2.xlarge\")\nsecgrp_rds = opentelekomcloud.ComputeSecgroupV2(\"secgrp_rds\",\n    name=\"secgrp-rds-instance\",\n    description=\"Rds Security Group\")\ninstance = opentelekomcloud.RdsInstanceV1(\"instance\",\n    name=\"rds-instance\",\n    availabilityzone=\"eu-de-01\",\n    flavorref=flavor.id,\n    vpc=\"c1095fe7-03df-4205-ad2d-6f4c181d436e\",\n    dbport=\"8635\",\n    dbrtpd=\"P@ssw0rd1!9851\",\n    datastore={\n        \"type\": \"SQLServer\",\n        \"version\": \"2022_SE\",\n    },\n    volume={\n        \"type\": \"COMMON\",\n        \"size\": 200,\n    },\n    nics={\n        \"subnetid\": \"b65f8d25-c533-47e2-8601-cfaa265a3e3e\",\n    },\n    securitygroup={\n        \"id\": secgrp_rds.compute_secgroup_v2_id,\n    },\n    backupstrategy={\n        \"starttime\": \"04:00:00\",\n        \"keepdays\": 4,\n    },\n    opts = pulumi.ResourceOptions(depends_on=[secgrp_rds]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var flavor = Opentelekomcloud.GetRdsFlavorsV1.Invoke(new()\n    {\n        DatastoreName = \"SQLServer\",\n        DatastoreVersion = \"2022_SE\",\n        Speccode = \"rds.mssql.c2.xlarge\",\n    });\n\n    var secgrpRds = new Opentelekomcloud.ComputeSecgroupV2(\"secgrp_rds\", new()\n    {\n        Name = \"secgrp-rds-instance\",\n        Description = \"Rds Security Group\",\n    });\n\n    var instance = new Opentelekomcloud.RdsInstanceV1(\"instance\", new()\n    {\n        Name = \"rds-instance\",\n        Availabilityzone = \"eu-de-01\",\n        Flavorref = flavor.Apply(getRdsFlavorsV1Result => getRdsFlavorsV1Result.Id),\n        Vpc = \"c1095fe7-03df-4205-ad2d-6f4c181d436e\",\n        Dbport = \"8635\",\n        Dbrtpd = \"P@ssw0rd1!9851\",\n        Datastore = new Opentelekomcloud.Inputs.RdsInstanceV1DatastoreArgs\n        {\n            Type = \"SQLServer\",\n            Version = \"2022_SE\",\n        },\n        Volume = new Opentelekomcloud.Inputs.RdsInstanceV1VolumeArgs\n        {\n            Type = \"COMMON\",\n            Size = 200,\n        },\n        Nics = new Opentelekomcloud.Inputs.RdsInstanceV1NicsArgs\n        {\n            Subnetid = \"b65f8d25-c533-47e2-8601-cfaa265a3e3e\",\n        },\n        Securitygroup = new Opentelekomcloud.Inputs.RdsInstanceV1SecuritygroupArgs\n        {\n            Id = secgrpRds.ComputeSecgroupV2Id,\n        },\n        Backupstrategy = new Opentelekomcloud.Inputs.RdsInstanceV1BackupstrategyArgs\n        {\n            Starttime = \"04:00:00\",\n            Keepdays = 4,\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            secgrpRds,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tflavor, err := opentelekomcloud.GetRdsFlavorsV1(ctx, &opentelekomcloud.GetRdsFlavorsV1Args{\n\t\t\tDatastoreName:    \"SQLServer\",\n\t\t\tDatastoreVersion: \"2022_SE\",\n\t\t\tSpeccode:         pulumi.StringRef(\"rds.mssql.c2.xlarge\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecgrpRds, err := opentelekomcloud.NewComputeSecgroupV2(ctx, \"secgrp_rds\", &opentelekomcloud.ComputeSecgroupV2Args{\n\t\t\tName:        pulumi.String(\"secgrp-rds-instance\"),\n\t\t\tDescription: pulumi.String(\"Rds Security Group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewRdsInstanceV1(ctx, \"instance\", &opentelekomcloud.RdsInstanceV1Args{\n\t\t\tName:             pulumi.String(\"rds-instance\"),\n\t\t\tAvailabilityzone: pulumi.String(\"eu-de-01\"),\n\t\t\tFlavorref:        pulumi.String(flavor.Id),\n\t\t\tVpc:              pulumi.String(\"c1095fe7-03df-4205-ad2d-6f4c181d436e\"),\n\t\t\tDbport:           pulumi.String(\"8635\"),\n\t\t\tDbrtpd:           pulumi.String(\"P@ssw0rd1!9851\"),\n\t\t\tDatastore: &opentelekomcloud.RdsInstanceV1DatastoreArgs{\n\t\t\t\tType:    pulumi.String(\"SQLServer\"),\n\t\t\t\tVersion: pulumi.String(\"2022_SE\"),\n\t\t\t},\n\t\t\tVolume: &opentelekomcloud.RdsInstanceV1VolumeArgs{\n\t\t\t\tType: pulumi.String(\"COMMON\"),\n\t\t\t\tSize: pulumi.Float64(200),\n\t\t\t},\n\t\t\tNics: &opentelekomcloud.RdsInstanceV1NicsArgs{\n\t\t\t\tSubnetid: pulumi.String(\"b65f8d25-c533-47e2-8601-cfaa265a3e3e\"),\n\t\t\t},\n\t\t\tSecuritygroup: &opentelekomcloud.RdsInstanceV1SecuritygroupArgs{\n\t\t\t\tId: secgrpRds.ComputeSecgroupV2Id,\n\t\t\t},\n\t\t\tBackupstrategy: &opentelekomcloud.RdsInstanceV1BackupstrategyArgs{\n\t\t\t\tStarttime: pulumi.String(\"04:00:00\"),\n\t\t\t\tKeepdays:  pulumi.Float64(4),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tsecgrpRds,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetRdsFlavorsV1Args;\nimport com.pulumi.opentelekomcloud.ComputeSecgroupV2;\nimport com.pulumi.opentelekomcloud.ComputeSecgroupV2Args;\nimport com.pulumi.opentelekomcloud.RdsInstanceV1;\nimport com.pulumi.opentelekomcloud.RdsInstanceV1Args;\nimport com.pulumi.opentelekomcloud.inputs.RdsInstanceV1DatastoreArgs;\nimport com.pulumi.opentelekomcloud.inputs.RdsInstanceV1VolumeArgs;\nimport com.pulumi.opentelekomcloud.inputs.RdsInstanceV1NicsArgs;\nimport com.pulumi.opentelekomcloud.inputs.RdsInstanceV1SecuritygroupArgs;\nimport com.pulumi.opentelekomcloud.inputs.RdsInstanceV1BackupstrategyArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var flavor = OpentelekomcloudFunctions.getRdsFlavorsV1(GetRdsFlavorsV1Args.builder()\n            .datastoreName(\"SQLServer\")\n            .datastoreVersion(\"2022_SE\")\n            .speccode(\"rds.mssql.c2.xlarge\")\n            .build());\n\n        var secgrpRds = new ComputeSecgroupV2(\"secgrpRds\", ComputeSecgroupV2Args.builder()\n            .name(\"secgrp-rds-instance\")\n            .description(\"Rds Security Group\")\n            .build());\n\n        var instance = new RdsInstanceV1(\"instance\", RdsInstanceV1Args.builder()\n            .name(\"rds-instance\")\n            .availabilityzone(\"eu-de-01\")\n            .flavorref(flavor.id())\n            .vpc(\"c1095fe7-03df-4205-ad2d-6f4c181d436e\")\n            .dbport(\"8635\")\n            .dbrtpd(\"P@ssw0rd1!9851\")\n            .datastore(RdsInstanceV1DatastoreArgs.builder()\n                .type(\"SQLServer\")\n                .version(\"2022_SE\")\n                .build())\n            .volume(RdsInstanceV1VolumeArgs.builder()\n                .type(\"COMMON\")\n                .size(200.0)\n                .build())\n            .nics(RdsInstanceV1NicsArgs.builder()\n                .subnetid(\"b65f8d25-c533-47e2-8601-cfaa265a3e3e\")\n                .build())\n            .securitygroup(RdsInstanceV1SecuritygroupArgs.builder()\n                .id(secgrpRds.computeSecgroupV2Id())\n                .build())\n            .backupstrategy(RdsInstanceV1BackupstrategyArgs.builder()\n                .starttime(\"04:00:00\")\n                .keepdays(4.0)\n                .build())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(secgrpRds)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  secgrpRds:\n    type: opentelekomcloud:ComputeSecgroupV2\n    name: secgrp_rds\n    properties:\n      name: secgrp-rds-instance\n      description: Rds Security Group\n  instance:\n    type: opentelekomcloud:RdsInstanceV1\n    properties:\n      name: rds-instance\n      availabilityzone: eu-de-01\n      flavorref: ${flavor.id}\n      vpc: c1095fe7-03df-4205-ad2d-6f4c181d436e\n      dbport: '8635'\n      dbrtpd: P@ssw0rd1!9851\n      datastore:\n        type: SQLServer\n        version: 2022_SE\n      volume:\n        type: COMMON\n        size: 200\n      nics:\n        subnetid: b65f8d25-c533-47e2-8601-cfaa265a3e3e\n      securitygroup:\n        id: ${secgrpRds.computeSecgroupV2Id}\n      backupstrategy:\n        starttime: 04:00:00\n        keepdays: 4\n    options:\n      dependsOn:\n        - ${secgrpRds}\nvariables:\n  flavor:\n    fn::invoke:\n      function: opentelekomcloud:getRdsFlavorsV1\n      arguments:\n        datastoreName: SQLServer\n        datastoreVersion: 2022_SE\n        speccode: rds.mssql.c2.xlarge\n```\n<!--End PulumiCodeChooser -->\n\n### Creating a MySQL RDS instance\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst flavor = opentelekomcloud.getRdsFlavorsV1({\n    datastoreName: \"MySQL\",\n    datastoreVersion: \"8.0\",\n    speccode: \"rds.mysql.n1.2xlarge.2\",\n});\nconst secgrpRds = new opentelekomcloud.ComputeSecgroupV2(\"secgrp_rds\", {\n    name: \"secgrp-rds-instance\",\n    description: \"Rds Security Group\",\n});\nconst instance = new opentelekomcloud.RdsInstanceV1(\"instance\", {\n    name: \"rds-instance\",\n    availabilityzone: \"eu-de-01\",\n    vpc: \"c1095fe7-03df-4205-ad2d-6f4c181d436e\",\n    dbport: \"8635\",\n    dbrtpd: \"P@ssw0rd1!9851\",\n    flavorref: flavor.then(flavor => flavor.id),\n    datastore: {\n        type: \"MySQL\",\n        version: \"8.0\",\n    },\n    volume: {\n        type: \"CLOUDSSD\",\n        size: 200,\n    },\n    nics: {\n        subnetid: \"b65f8d25-c533-47e2-8601-cfaa265a3e3e\",\n    },\n    securitygroup: {\n        id: secgrpRds.computeSecgroupV2Id,\n    },\n    backupstrategy: {\n        starttime: \"04:00:00\",\n        keepdays: 4,\n    },\n    ha: {\n        enable: true,\n        replicationmode: \"async\",\n    },\n}, {\n    dependsOn: [secgrpRds],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nflavor = opentelekomcloud.get_rds_flavors_v1(datastore_name=\"MySQL\",\n    datastore_version=\"8.0\",\n    speccode=\"rds.mysql.n1.2xlarge.2\")\nsecgrp_rds = opentelekomcloud.ComputeSecgroupV2(\"secgrp_rds\",\n    name=\"secgrp-rds-instance\",\n    description=\"Rds Security Group\")\ninstance = opentelekomcloud.RdsInstanceV1(\"instance\",\n    name=\"rds-instance\",\n    availabilityzone=\"eu-de-01\",\n    vpc=\"c1095fe7-03df-4205-ad2d-6f4c181d436e\",\n    dbport=\"8635\",\n    dbrtpd=\"P@ssw0rd1!9851\",\n    flavorref=flavor.id,\n    datastore={\n        \"type\": \"MySQL\",\n        \"version\": \"8.0\",\n    },\n    volume={\n        \"type\": \"CLOUDSSD\",\n        \"size\": 200,\n    },\n    nics={\n        \"subnetid\": \"b65f8d25-c533-47e2-8601-cfaa265a3e3e\",\n    },\n    securitygroup={\n        \"id\": secgrp_rds.compute_secgroup_v2_id,\n    },\n    backupstrategy={\n        \"starttime\": \"04:00:00\",\n        \"keepdays\": 4,\n    },\n    ha={\n        \"enable\": True,\n        \"replicationmode\": \"async\",\n    },\n    opts = pulumi.ResourceOptions(depends_on=[secgrp_rds]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var flavor = Opentelekomcloud.GetRdsFlavorsV1.Invoke(new()\n    {\n        DatastoreName = \"MySQL\",\n        DatastoreVersion = \"8.0\",\n        Speccode = \"rds.mysql.n1.2xlarge.2\",\n    });\n\n    var secgrpRds = new Opentelekomcloud.ComputeSecgroupV2(\"secgrp_rds\", new()\n    {\n        Name = \"secgrp-rds-instance\",\n        Description = \"Rds Security Group\",\n    });\n\n    var instance = new Opentelekomcloud.RdsInstanceV1(\"instance\", new()\n    {\n        Name = \"rds-instance\",\n        Availabilityzone = \"eu-de-01\",\n        Vpc = \"c1095fe7-03df-4205-ad2d-6f4c181d436e\",\n        Dbport = \"8635\",\n        Dbrtpd = \"P@ssw0rd1!9851\",\n        Flavorref = flavor.Apply(getRdsFlavorsV1Result => getRdsFlavorsV1Result.Id),\n        Datastore = new Opentelekomcloud.Inputs.RdsInstanceV1DatastoreArgs\n        {\n            Type = \"MySQL\",\n            Version = \"8.0\",\n        },\n        Volume = new Opentelekomcloud.Inputs.RdsInstanceV1VolumeArgs\n        {\n            Type = \"CLOUDSSD\",\n            Size = 200,\n        },\n        Nics = new Opentelekomcloud.Inputs.RdsInstanceV1NicsArgs\n        {\n            Subnetid = \"b65f8d25-c533-47e2-8601-cfaa265a3e3e\",\n        },\n        Securitygroup = new Opentelekomcloud.Inputs.RdsInstanceV1SecuritygroupArgs\n        {\n            Id = secgrpRds.ComputeSecgroupV2Id,\n        },\n        Backupstrategy = new Opentelekomcloud.Inputs.RdsInstanceV1BackupstrategyArgs\n        {\n            Starttime = \"04:00:00\",\n            Keepdays = 4,\n        },\n        Ha = new Opentelekomcloud.Inputs.RdsInstanceV1HaArgs\n        {\n            Enable = true,\n            Replicationmode = \"async\",\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            secgrpRds,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tflavor, err := opentelekomcloud.GetRdsFlavorsV1(ctx, &opentelekomcloud.GetRdsFlavorsV1Args{\n\t\t\tDatastoreName:    \"MySQL\",\n\t\t\tDatastoreVersion: \"8.0\",\n\t\t\tSpeccode:         pulumi.StringRef(\"rds.mysql.n1.2xlarge.2\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecgrpRds, err := opentelekomcloud.NewComputeSecgroupV2(ctx, \"secgrp_rds\", &opentelekomcloud.ComputeSecgroupV2Args{\n\t\t\tName:        pulumi.String(\"secgrp-rds-instance\"),\n\t\t\tDescription: pulumi.String(\"Rds Security Group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewRdsInstanceV1(ctx, \"instance\", &opentelekomcloud.RdsInstanceV1Args{\n\t\t\tName:             pulumi.String(\"rds-instance\"),\n\t\t\tAvailabilityzone: pulumi.String(\"eu-de-01\"),\n\t\t\tVpc:              pulumi.String(\"c1095fe7-03df-4205-ad2d-6f4c181d436e\"),\n\t\t\tDbport:           pulumi.String(\"8635\"),\n\t\t\tDbrtpd:           pulumi.String(\"P@ssw0rd1!9851\"),\n\t\t\tFlavorref:        pulumi.String(flavor.Id),\n\t\t\tDatastore: &opentelekomcloud.RdsInstanceV1DatastoreArgs{\n\t\t\t\tType:    pulumi.String(\"MySQL\"),\n\t\t\t\tVersion: pulumi.String(\"8.0\"),\n\t\t\t},\n\t\t\tVolume: &opentelekomcloud.RdsInstanceV1VolumeArgs{\n\t\t\t\tType: pulumi.String(\"CLOUDSSD\"),\n\t\t\t\tSize: pulumi.Float64(200),\n\t\t\t},\n\t\t\tNics: &opentelekomcloud.RdsInstanceV1NicsArgs{\n\t\t\t\tSubnetid: pulumi.String(\"b65f8d25-c533-47e2-8601-cfaa265a3e3e\"),\n\t\t\t},\n\t\t\tSecuritygroup: &opentelekomcloud.RdsInstanceV1SecuritygroupArgs{\n\t\t\t\tId: secgrpRds.ComputeSecgroupV2Id,\n\t\t\t},\n\t\t\tBackupstrategy: &opentelekomcloud.RdsInstanceV1BackupstrategyArgs{\n\t\t\t\tStarttime: pulumi.String(\"04:00:00\"),\n\t\t\t\tKeepdays:  pulumi.Float64(4),\n\t\t\t},\n\t\t\tHa: &opentelekomcloud.RdsInstanceV1HaArgs{\n\t\t\t\tEnable:          pulumi.Bool(true),\n\t\t\t\tReplicationmode: pulumi.String(\"async\"),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tsecgrpRds,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetRdsFlavorsV1Args;\nimport com.pulumi.opentelekomcloud.ComputeSecgroupV2;\nimport com.pulumi.opentelekomcloud.ComputeSecgroupV2Args;\nimport com.pulumi.opentelekomcloud.RdsInstanceV1;\nimport com.pulumi.opentelekomcloud.RdsInstanceV1Args;\nimport com.pulumi.opentelekomcloud.inputs.RdsInstanceV1DatastoreArgs;\nimport com.pulumi.opentelekomcloud.inputs.RdsInstanceV1VolumeArgs;\nimport com.pulumi.opentelekomcloud.inputs.RdsInstanceV1NicsArgs;\nimport com.pulumi.opentelekomcloud.inputs.RdsInstanceV1SecuritygroupArgs;\nimport com.pulumi.opentelekomcloud.inputs.RdsInstanceV1BackupstrategyArgs;\nimport com.pulumi.opentelekomcloud.inputs.RdsInstanceV1HaArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var flavor = OpentelekomcloudFunctions.getRdsFlavorsV1(GetRdsFlavorsV1Args.builder()\n            .datastoreName(\"MySQL\")\n            .datastoreVersion(\"8.0\")\n            .speccode(\"rds.mysql.n1.2xlarge.2\")\n            .build());\n\n        var secgrpRds = new ComputeSecgroupV2(\"secgrpRds\", ComputeSecgroupV2Args.builder()\n            .name(\"secgrp-rds-instance\")\n            .description(\"Rds Security Group\")\n            .build());\n\n        var instance = new RdsInstanceV1(\"instance\", RdsInstanceV1Args.builder()\n            .name(\"rds-instance\")\n            .availabilityzone(\"eu-de-01\")\n            .vpc(\"c1095fe7-03df-4205-ad2d-6f4c181d436e\")\n            .dbport(\"8635\")\n            .dbrtpd(\"P@ssw0rd1!9851\")\n            .flavorref(flavor.id())\n            .datastore(RdsInstanceV1DatastoreArgs.builder()\n                .type(\"MySQL\")\n                .version(\"8.0\")\n                .build())\n            .volume(RdsInstanceV1VolumeArgs.builder()\n                .type(\"CLOUDSSD\")\n                .size(200.0)\n                .build())\n            .nics(RdsInstanceV1NicsArgs.builder()\n                .subnetid(\"b65f8d25-c533-47e2-8601-cfaa265a3e3e\")\n                .build())\n            .securitygroup(RdsInstanceV1SecuritygroupArgs.builder()\n                .id(secgrpRds.computeSecgroupV2Id())\n                .build())\n            .backupstrategy(RdsInstanceV1BackupstrategyArgs.builder()\n                .starttime(\"04:00:00\")\n                .keepdays(4.0)\n                .build())\n            .ha(RdsInstanceV1HaArgs.builder()\n                .enable(true)\n                .replicationmode(\"async\")\n                .build())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(secgrpRds)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  secgrpRds:\n    type: opentelekomcloud:ComputeSecgroupV2\n    name: secgrp_rds\n    properties:\n      name: secgrp-rds-instance\n      description: Rds Security Group\n  instance:\n    type: opentelekomcloud:RdsInstanceV1\n    properties:\n      name: rds-instance\n      availabilityzone: eu-de-01\n      vpc: c1095fe7-03df-4205-ad2d-6f4c181d436e\n      dbport: '8635'\n      dbrtpd: P@ssw0rd1!9851\n      flavorref: ${flavor.id}\n      datastore:\n        type: MySQL\n        version: '8.0'\n      volume:\n        type: CLOUDSSD\n        size: 200\n      nics:\n        subnetid: b65f8d25-c533-47e2-8601-cfaa265a3e3e\n      securitygroup:\n        id: ${secgrpRds.computeSecgroupV2Id}\n      backupstrategy:\n        starttime: 04:00:00\n        keepdays: 4\n      ha:\n        enable: true\n        replicationmode: async\n    options:\n      dependsOn:\n        - ${secgrpRds}\nvariables:\n  flavor:\n    fn::invoke:\n      function: opentelekomcloud:getRdsFlavorsV1\n      arguments:\n        datastoreName: MySQL\n        datastoreVersion: '8.0'\n        speccode: rds.mysql.n1.2xlarge.2\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"availabilityzone":{"description":"Specifies the ID of the AZ.\n","type":"string"},"backupstrategy":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV1Backupstrategy:RdsInstanceV1Backupstrategy","description":"Specifies the advanced backup policy. The structure\nis described below.\n"},"datastore":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV1Datastore:RdsInstanceV1Datastore","description":"Specifies database information. The structure is\ndescribed below.\n"},"dbport":{"description":"Specifies the database port number.\n","type":"string"},"dbrtpd":{"description":"Specifies the password for user root of the database.\n","type":"string"},"flavorref":{"description":"Specifies the specification ID (flavors.id in the\nresponse message in Obtaining All DB Instance Specifications). If you want\nto enable ha for the rds instance, a flavor with ha speccode is required.\n","type":"string"},"ha":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV1Ha:RdsInstanceV1Ha","description":"Specifies the parameters configured on HA and is used when\ncreating HA DB instances. The structure is described below. NOTICE:\nRDS for Microsoft SQL Server does not support creating HA DB instances and\nthis parameter is not involved.\n"},"name":{"description":"Specifies the DB instance name. The DB instance name of\nthe same type is unique in the same tenant. The changes of the instance name\nwill be suppressed in HA scenario.\n","type":"string"},"nics":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV1Nics:RdsInstanceV1Nics","description":"Specifies the nics information. For details about how\nto obtain this parameter value, see section \"Subnet\" in the Virtual Private\nCloud API Reference. The structure is described below.\n"},"rdsInstanceV1Id":{"type":"string"},"region":{"type":"string"},"securitygroup":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV1Securitygroup:RdsInstanceV1Securitygroup","description":"Specifies the security group which the RDS DB\ninstance belongs to. The structure is described below.\n"},"tag":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV1Timeouts:RdsInstanceV1Timeouts"},"volume":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV1Volume:RdsInstanceV1Volume","description":"Specifies the volume information. The structure is described\nbelow.\n"},"vpc":{"description":"Specifies the VPC ID. For details about how to obtain this\nparameter value, see section \"Virtual Private Cloud\" in the Virtual Private\nCloud API Reference.\n","type":"string"}},"properties":{"availabilityzone":{"description":"Specifies the ID of the AZ.\n","type":"string"},"backupstrategy":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV1Backupstrategy:RdsInstanceV1Backupstrategy","description":"Specifies the advanced backup policy. The structure\nis described below.\n"},"created":{"description":"Indicates the creation time in the following format: yyyy-mm-dd Thh:mm:ssZ.\n","type":"string"},"datastore":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV1Datastore:RdsInstanceV1Datastore","description":"Specifies database information. The structure is\ndescribed below.\n"},"dbport":{"description":"Specifies the database port number.\n","type":"string"},"dbrtpd":{"description":"Specifies the password for user root of the database.\n","type":"string"},"flavorref":{"description":"Specifies the specification ID (flavors.id in the\nresponse message in Obtaining All DB Instance Specifications). If you want\nto enable ha for the rds instance, a flavor with ha speccode is required.\n","type":"string"},"ha":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV1Ha:RdsInstanceV1Ha","description":"Specifies the parameters configured on HA and is used when\ncreating HA DB instances. The structure is described below. NOTICE:\nRDS for Microsoft SQL Server does not support creating HA DB instances and\nthis parameter is not involved.\n"},"hostname":{"description":"Indicates the instance connection address. It is a blank string.\n","type":"string"},"name":{"description":"Specifies the DB instance name. The DB instance name of\nthe same type is unique in the same tenant. The changes of the instance name\nwill be suppressed in HA scenario.\n","type":"string"},"nics":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV1Nics:RdsInstanceV1Nics","description":"Specifies the nics information. For details about how\nto obtain this parameter value, see section \"Subnet\" in the Virtual Private\nCloud API Reference. The structure is described below.\n"},"rdsInstanceV1Id":{"type":"string"},"region":{"type":"string"},"securitygroup":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV1Securitygroup:RdsInstanceV1Securitygroup","description":"Specifies the security group which the RDS DB\ninstance belongs to. The structure is described below.\n"},"status":{"description":"Indicates the DB instance status.\n","type":"string"},"tag":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV1Timeouts:RdsInstanceV1Timeouts"},"type":{"description":"Indicates the DB instance type, which can be master or readreplica.\n","type":"string"},"updated":{"description":"Indicates the update time in the following format: yyyy-mm-dd Thh:mm:ssZ.\n","type":"string"},"volume":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV1Volume:RdsInstanceV1Volume","description":"Specifies the volume information. The structure is described\nbelow.\n"},"vpc":{"description":"Specifies the VPC ID. For details about how to obtain this\nparameter value, see section \"Virtual Private Cloud\" in the Virtual Private\nCloud API Reference.\n","type":"string"}},"required":["availabilityzone","created","datastore","dbrtpd","flavorref","hostname","name","nics","rdsInstanceV1Id","region","securitygroup","status","type","updated","volume","vpc"],"requiredInputs":["availabilityzone","datastore","dbrtpd","flavorref","nics","securitygroup","volume","vpc"],"stateInputs":{"description":"Input properties used for looking up and filtering RdsInstanceV1 resources.\n","properties":{"availabilityzone":{"description":"Specifies the ID of the AZ.\n","type":"string"},"backupstrategy":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV1Backupstrategy:RdsInstanceV1Backupstrategy","description":"Specifies the advanced backup policy. The structure\nis described below.\n"},"created":{"description":"Indicates the creation time in the following format: yyyy-mm-dd Thh:mm:ssZ.\n","type":"string"},"datastore":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV1Datastore:RdsInstanceV1Datastore","description":"Specifies database information. The structure is\ndescribed below.\n"},"dbport":{"description":"Specifies the database port number.\n","type":"string"},"dbrtpd":{"description":"Specifies the password for user root of the database.\n","type":"string"},"flavorref":{"description":"Specifies the specification ID (flavors.id in the\nresponse message in Obtaining All DB Instance Specifications). If you want\nto enable ha for the rds instance, a flavor with ha speccode is required.\n","type":"string"},"ha":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV1Ha:RdsInstanceV1Ha","description":"Specifies the parameters configured on HA and is used when\ncreating HA DB instances. The structure is described below. NOTICE:\nRDS for Microsoft SQL Server does not support creating HA DB instances and\nthis parameter is not involved.\n"},"hostname":{"description":"Indicates the instance connection address. It is a blank string.\n","type":"string"},"name":{"description":"Specifies the DB instance name. The DB instance name of\nthe same type is unique in the same tenant. The changes of the instance name\nwill be suppressed in HA scenario.\n","type":"string"},"nics":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV1Nics:RdsInstanceV1Nics","description":"Specifies the nics information. For details about how\nto obtain this parameter value, see section \"Subnet\" in the Virtual Private\nCloud API Reference. The structure is described below.\n"},"rdsInstanceV1Id":{"type":"string"},"region":{"type":"string"},"securitygroup":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV1Securitygroup:RdsInstanceV1Securitygroup","description":"Specifies the security group which the RDS DB\ninstance belongs to. The structure is described below.\n"},"status":{"description":"Indicates the DB instance status.\n","type":"string"},"tag":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV1Timeouts:RdsInstanceV1Timeouts"},"type":{"description":"Indicates the DB instance type, which can be master or readreplica.\n","type":"string"},"updated":{"description":"Indicates the update time in the following format: yyyy-mm-dd Thh:mm:ssZ.\n","type":"string"},"volume":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV1Volume:RdsInstanceV1Volume","description":"Specifies the volume information. The structure is described\nbelow.\n"},"vpc":{"description":"Specifies the VPC ID. For details about how to obtain this\nparameter value, see section \"Virtual Private Cloud\" in the Virtual Private\nCloud API Reference.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/rdsInstanceV3:RdsInstanceV3":{"description":"Up-to-date reference of API arguments for RDS instance rule you can get at\n[documentation portal](https://docs.otc.t-systems.com/relational-database-service/api-ref/api_v3_recommended/db_instance_management)\n\nManages RDS instance v3 resource.\n\n## Example Usage\n\n### Create a single db instance\n\n<!--Start PulumiCodeChooser -->\n```yaml\nresources:\n  secgroup:\n    type: opentelekomcloud:NetworkingSecgroupV2\n    properties:\n      name: terraform_test_security_group\n      description: terraform security group acceptance test\n  instance:\n    type: opentelekomcloud:RdsInstanceV3\n    properties:\n      name: terraform_test_rds_instance\n      availabilityZones:\n        - ${availabilityZone}\n      db:\n        password: P@ssw0rd1!9851\n        type: PostgreSQL\n        version: '16'\n        port: '8635'\n      securityGroupId: ${secgroup.networkingSecgroupV2Id}\n      subnetId: ${subnetId}\n      vpcId: ${vpcId}\n      flavor: rds.pg.n1.large.4\n      volume:\n        type: CLOUDSSD\n        size: 100\n      backupStrategy:\n        startTime: 08:00-09:00\n        keepDays: 1\n        period: 1,2,3,4,5\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n### Create a primary/standby db instance\n\n<!--Start PulumiCodeChooser -->\n```yaml\nresources:\n  secgroup:\n    type: opentelekomcloud:NetworkingSecgroupV2\n    properties:\n      name: terraform_test_security_group\n      description: terraform security group acceptance test\n  instance:\n    type: opentelekomcloud:RdsInstanceV3\n    properties:\n      name: terraform_test_rds_instance\n      availabilityZones:\n        - ${availabilityZone1}\n        - ${availabilityZone2}\n      db:\n        password: P@ssw0rd1!9851\n        type: PostgreSQL\n        version: '16'\n        port: '8635'\n      securityGroupId: ${secgroup.networkingSecgroupV2Id}\n      subnetId: ${subnetId}\n      vpcId: ${vpcId}\n      flavor: rds.pg.x1.8xlarge.4.ha\n      haReplicationMode: async\n      volume:\n        type: CLOUDSSD\n        size: 100\n      backupStrategy:\n        startTime: 08:00-09:00\n        keepDays: 1\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n### Create a db instance with public IP\n\n<!--Start PulumiCodeChooser -->\n```yaml\nresources:\n  secgroup:\n    type: opentelekomcloud:NetworkingSecgroupV2\n    properties:\n      name: terraform_test_security_group\n      description: terraform security group acceptance test\n  ip:\n    type: opentelekomcloud:ComputeFloatingipV2\n  instance:\n    type: opentelekomcloud:RdsInstanceV3\n    properties:\n      availabilityZones:\n        - ${availabilityZone1}\n        - ${availabilityZone2}\n      db:\n        password: Telekom!120521\n        type: PostgreSQL\n        version: '16'\n        port: '8635'\n      name: terraform_test_rds_instance\n      securityGroupId: ${secgroup.networkingSecgroupV2Id}\n      subnetId: ${subnetId}\n      vpcId: ${vpcId}\n      volume:\n        type: CLOUDSSD\n        size: 100\n      flavor: rds.pg.x1.8xlarge.4.ha\n      haReplicationMode: async\n      backupStrategy:\n        startTime: 08:00-09:00\n        keepDays: 1\n      publicIps:\n        - ${ip.address}\n      tags:\n        foo: bar\n        key: value\n```\n<!--End PulumiCodeChooser -->\n\n### Create a single db instance with encrypted volume\n\n<!--Start PulumiCodeChooser -->\n```yaml\nresources:\n  key:\n    type: opentelekomcloud:KmsKeyV1\n    properties:\n      keyAlias: key_1\n      keyDescription: first test key\n      isEnabled: true\n  secgroup:\n    type: opentelekomcloud:NetworkingSecgroupV2\n    properties:\n      name: terraform_test_security_group\n      description: terraform security group acceptance test\n  instance:\n    type: opentelekomcloud:RdsInstanceV3\n    properties:\n      name: terraform_test_rds_instance\n      availabilityZones:\n        - ${availabilityZone}\n      securityGroupId: ${secgroup.networkingSecgroupV2Id}\n      subnetId: ${subnetId}\n      vpcId: ${vpcId}\n      flavor: rds.pg.n1.xlarge.2\n      db:\n        password: P@ssw0rd1!9851\n        type: PostgreSQL\n        version: '16'\n        port: '8635'\n      volume:\n        diskEncryptionId: ${key.kmsKeyV1Id}\n        type: CLOUDSSD\n        size: 100\n      backupStrategy:\n        startTime: 08:00-09:00\n        keepDays: 1\n```\n<!--End PulumiCodeChooser -->\n\n### Overriding parameters from template\n\n<!--Start PulumiCodeChooser -->\n```yaml\nresources:\n  sg:\n    type: opentelekomcloud:NetworkingSecgroupV2\n    properties:\n      name: sg-rds-test\n  pg:\n    type: opentelekomcloud:RdsParametergroupV3\n    properties:\n      name: pg-rds-test\n      values:\n        autocommit: OFF\n      datastore:\n        type: postgresql\n        version: '16'\n  instance:\n    type: opentelekomcloud:RdsInstanceV3\n    properties:\n      name: tf_rds_instance_%s\n      availabilityZones:\n        - ${availabilityZone}\n      db:\n        password: Postgres!120521\n        type: PostgreSQL\n        version: '16'\n        port: '8635'\n      securityGroupId: ${sg.networkingSecgroupV2Id}\n      subnetId: ${subnetId}\n      vpcId: ${vpcId}\n      flavor: rds.pg.n1.xlarge.2\n      volume:\n        type: CLOUDSSD\n        size: 40\n      parameters:\n        max_connections: '37'\n```\n<!--End PulumiCodeChooser -->\n\n### Restore backup to a new instance\n\n<!--Start PulumiCodeChooser -->\n```yaml\nresources:\n  fromBackup:\n    type: opentelekomcloud:RdsInstanceV3\n    name: from_backup\n    properties:\n      name: instance-restored\n      availabilityZones: ${instance.availabilityZone}\n      flavor: rds.pg.n1.xlarge.2\n      restorePoint:\n        instanceId: ${backup.instanceId}\n        backupId: ${backup.id}\n      db:\n        password: Postgres!120521\n        type: PostgreSQL\n        version: '16'\n        port: '8635'\n      securityGroupId: ${securityGroupId}\n      subnetId: ${osNetworkId}\n      vpcId: ${osRouterId}\n      volume:\n        type: CLOUDSSD\n        size: 40\n      backupStrategy:\n        startTime: 08:00-09:00\n        keepDays: 1\nvariables:\n  backup:\n    fn::invoke:\n      function: opentelekomcloud:getRdsBackupV3\n      arguments:\n        instanceId: ${rdsInstanceId}\n        type: auto\n```\n<!--End PulumiCodeChooser -->\n\n## Notes\n\nBut due to some attributes missing from the API response, it's required to ignore changes as below.\nAlso, for some MySQL versions the <span pulumi-lang-nodejs=\"`lowerCaseTableNames`\" pulumi-lang-dotnet=\"`LowerCaseTableNames`\" pulumi-lang-go=\"`lowerCaseTableNames`\" pulumi-lang-python=\"`lower_case_table_names`\" pulumi-lang-yaml=\"`lowerCaseTableNames`\" pulumi-lang-java=\"`lowerCaseTableNames`\">`lower_case_table_names`</span> should be also added.\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst instance1 = new opentelekomcloud.RdsInstanceV3(\"instance_1\", {});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ninstance1 = opentelekomcloud.RdsInstanceV3(\"instance_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var instance1 = new Opentelekomcloud.RdsInstanceV3(\"instance_1\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewRdsInstanceV3(ctx, \"instance_1\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.RdsInstanceV3;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var instance1 = new RdsInstanceV3(\"instance1\");\n\n    }\n}\n```\n```yaml\nresources:\n  instance1:\n    type: opentelekomcloud:RdsInstanceV3\n    name: instance_1\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nRDS instance can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/rdsInstanceV3:RdsInstanceV3 instance_1 7117d38e-4c8f-4624-a505-bd96b97d024c\n```\n\n","inputProperties":{"availabilityZone":{"description":"Specifies the AZ name. Changing this parameter will create a new resource.\n","items":{"type":"string"},"type":"array"},"backupStrategy":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV3BackupStrategy:RdsInstanceV3BackupStrategy","description":"Specifies the advanced backup policy. Structure is documented below.\n"},"db":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV3Db:RdsInstanceV3Db","description":"Specifies the database information. Structure is documented below. Changing this parameter will create a new resource.\n"},"flavor":{"description":"Specifies the specification code.\nUse data source<span pulumi-lang-nodejs=\" opentelekomcloud.getRdsFlavorsV3 \" pulumi-lang-dotnet=\" opentelekomcloud.getRdsFlavorsV3 \" pulumi-lang-go=\" getRdsFlavorsV3 \" pulumi-lang-python=\" get_rds_flavors_v3 \" pulumi-lang-yaml=\" opentelekomcloud.getRdsFlavorsV3 \" pulumi-lang-java=\" opentelekomcloud.getRdsFlavorsV3 \"> opentelekomcloud.getRdsFlavorsV3 </span>to get a list of available flavor names.\nExamples could be `rds.pg.n1.large.4` or `rds.pg.x1.8xlarge.4.ha` for HA clusters.\n","type":"string"},"haReplicationMode":{"description":"Specifies the replication mode for the standby DB instance. For MySQL, the value\nis async or semisync. For PostgreSQL, the value is async or sync. For Microsoft SQL Server, the value is sync.\nParameter is required for HA clusters.\n\n> <span pulumi-lang-nodejs=\"`async`\" pulumi-lang-dotnet=\"`Async`\" pulumi-lang-go=\"`async`\" pulumi-lang-python=\"`async`\" pulumi-lang-yaml=\"`async`\" pulumi-lang-java=\"`async`\">`async`</span> indicates the asynchronous replication mode. <span pulumi-lang-nodejs=\"`semisync`\" pulumi-lang-dotnet=\"`Semisync`\" pulumi-lang-go=\"`semisync`\" pulumi-lang-python=\"`semisync`\" pulumi-lang-yaml=\"`semisync`\" pulumi-lang-java=\"`semisync`\">`semisync`</span> indicates the\nsemi-synchronous replication mode. <span pulumi-lang-nodejs=\"`sync`\" pulumi-lang-dotnet=\"`Sync`\" pulumi-lang-go=\"`sync`\" pulumi-lang-python=\"`sync`\" pulumi-lang-yaml=\"`sync`\" pulumi-lang-java=\"`sync`\">`sync`</span> indicates the synchronous\nreplication mode.  Changing this parameter will create a new resource.\n","type":"string"},"lowerCaseTableNames":{"description":"Specifies the case-sensitive state of the database table name,\nthe default value is \"1\". Changing this parameter will create a new resource.\n+ 0: Table names are stored as fixed and table names are case-sensitive.\n+ 1: Table names will be stored in lower case and table names are not case-sensitive.\n","type":"string"},"name":{"description":"Specifies the DB instance name. The DB instance name of the same type\nmust be unique for the same tenant. The value must be 4 to 64\ncharacters in length and start with a letter. It is case-sensitive\nand can contain only letters, digits, hyphens (-), and underscores\n(_).\n","type":"string"},"paramGroupId":{"description":"Specifies the parameter group ID.\n","type":"string"},"parameters":{"additionalProperties":{"type":"string"},"description":"Map of additional configuration parameters. Values should be strings. Parameters set here\noverrides values from configuration template (parameter group).\n","type":"object"},"privateDomainName":{"description":"Specifies the prefix of the new domain name. The value contains <span pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\">`8`</span> to <span pulumi-lang-nodejs=\"`63`\" pulumi-lang-dotnet=\"`63`\" pulumi-lang-go=\"`63`\" pulumi-lang-python=\"`63`\" pulumi-lang-yaml=\"`63`\" pulumi-lang-java=\"`63`\">`63`</span> characters. Only uppercase letters, lowercase letters, and digits are allowed.\n\n> **Warning** The argument <span pulumi-lang-nodejs=\"`privateDomainName`\" pulumi-lang-dotnet=\"`PrivateDomainName`\" pulumi-lang-go=\"`privateDomainName`\" pulumi-lang-python=\"`private_domain_name`\" pulumi-lang-yaml=\"`privateDomainName`\" pulumi-lang-java=\"`privateDomainName`\">`private_domain_name`</span> not supported in `eu-ch2` region.\n","type":"string"},"privateIp":{"description":"Specifies the private IP address of a DB instance.\n","type":"string"},"publicIps":{"description":"Specifies floating IP to be assigned to the instance.\nThis should be a list with single element only.\n\n> Setting public IP is done with assigning floating IP to internally\ncreated port. So RDS itself doesn't know about this assignment. This assignment\nwon't show on the console.\nThis argument will be ignored in future when RDSv3 API for EIP assignment will be implemented.\n","items":{"type":"string"},"type":"array"},"rdsInstanceV3Id":{"description":"Indicates the node ID.\n","type":"string"},"restoreFromBackup":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV3RestoreFromBackup:RdsInstanceV3RestoreFromBackup","deprecationMessage":"Deprecated","description":"**DEPRECATED**  - (Optional) Specifies whether to restore database to an instance described in current resource.\nStructure is documented below.\nPlease use alternative parameter <span pulumi-lang-nodejs=\"`restorePoint`\" pulumi-lang-dotnet=\"`RestorePoint`\" pulumi-lang-go=\"`restorePoint`\" pulumi-lang-python=\"`restore_point`\" pulumi-lang-yaml=\"`restorePoint`\" pulumi-lang-java=\"`restorePoint`\">`restore_point`</span>.\n"},"restorePoint":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV3RestorePoint:RdsInstanceV3RestorePoint","description":"Specifies the restoration information. By selecting this option you can either\ncreate a new RDS instance or restore backup from existing one. Structure is documented below.\n"},"securityGroupId":{"description":"Specifies the security group which the RDS DB instance belongs to.\nChanging this parameter will create a new resource.\n","type":"string"},"sslEnable":{"description":"Specifies whether SSL should be enabled for MySql instances.\n","type":"boolean"},"subnetId":{"description":"Specifies the subnet id. Changing this parameter will create a new resource.\n","type":"string"},"tag":{"additionalProperties":{"type":"string"},"deprecationMessage":"Deprecated","description":"Tags key/value pairs to associate with the instance. Deprecated, please use\nthe <span pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\">`tags`</span> instead.\n","type":"object"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the instance.\n","type":"object"},"timeZone":{"description":"Specifies the UTC time zone. Changing this parameter will create a new resource.\nIf this parameter is not specified, the time zone of each engine uses UTC by default.\nIf this parameter is specified, the value range is from UTC-12:00 to UTC+12:00 on the hour.\nFor example, the parameter can be UTC+08:00 rather than UTC+08:30.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV3Timeouts:RdsInstanceV3Timeouts"},"volume":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV3Volume:RdsInstanceV3Volume","description":"Specifies the volume information. Structure is documented below.\n"},"vpcId":{"description":"Specifies the VPC ID. Changing this parameter will create a new resource.\n","type":"string"}},"properties":{"autoscalingEnabled":{"description":"Indicates whether autoscaling was enabled for this resource.\n","type":"boolean"},"availabilityZone":{"description":"Specifies the AZ name. Changing this parameter will create a new resource.\n","items":{"type":"string"},"type":"array"},"availabilityZones":{"description":"Indicates the instance AZs.\n","items":{"type":"string"},"type":"array"},"backupStrategy":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV3BackupStrategy:RdsInstanceV3BackupStrategy","description":"Specifies the advanced backup policy. Structure is documented below.\n"},"created":{"description":"Indicates the creation time.\n","type":"string"},"db":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV3Db:RdsInstanceV3Db","description":"Specifies the database information. Structure is documented below. Changing this parameter will create a new resource.\n"},"flavor":{"description":"Specifies the specification code.\nUse data source<span pulumi-lang-nodejs=\" opentelekomcloud.getRdsFlavorsV3 \" pulumi-lang-dotnet=\" opentelekomcloud.getRdsFlavorsV3 \" pulumi-lang-go=\" getRdsFlavorsV3 \" pulumi-lang-python=\" get_rds_flavors_v3 \" pulumi-lang-yaml=\" opentelekomcloud.getRdsFlavorsV3 \" pulumi-lang-java=\" opentelekomcloud.getRdsFlavorsV3 \"> opentelekomcloud.getRdsFlavorsV3 </span>to get a list of available flavor names.\nExamples could be `rds.pg.n1.large.4` or `rds.pg.x1.8xlarge.4.ha` for HA clusters.\n","type":"string"},"haReplicationMode":{"description":"Specifies the replication mode for the standby DB instance. For MySQL, the value\nis async or semisync. For PostgreSQL, the value is async or sync. For Microsoft SQL Server, the value is sync.\nParameter is required for HA clusters.\n\n> <span pulumi-lang-nodejs=\"`async`\" pulumi-lang-dotnet=\"`Async`\" pulumi-lang-go=\"`async`\" pulumi-lang-python=\"`async`\" pulumi-lang-yaml=\"`async`\" pulumi-lang-java=\"`async`\">`async`</span> indicates the asynchronous replication mode. <span pulumi-lang-nodejs=\"`semisync`\" pulumi-lang-dotnet=\"`Semisync`\" pulumi-lang-go=\"`semisync`\" pulumi-lang-python=\"`semisync`\" pulumi-lang-yaml=\"`semisync`\" pulumi-lang-java=\"`semisync`\">`semisync`</span> indicates the\nsemi-synchronous replication mode. <span pulumi-lang-nodejs=\"`sync`\" pulumi-lang-dotnet=\"`Sync`\" pulumi-lang-go=\"`sync`\" pulumi-lang-python=\"`sync`\" pulumi-lang-yaml=\"`sync`\" pulumi-lang-java=\"`sync`\">`sync`</span> indicates the synchronous\nreplication mode.  Changing this parameter will create a new resource.\n","type":"string"},"lowerCaseTableNames":{"description":"Specifies the case-sensitive state of the database table name,\nthe default value is \"1\". Changing this parameter will create a new resource.\n+ 0: Table names are stored as fixed and table names are case-sensitive.\n+ 1: Table names will be stored in lower case and table names are not case-sensitive.\n","type":"string"},"name":{"description":"Specifies the DB instance name. The DB instance name of the same type\nmust be unique for the same tenant. The value must be 4 to 64\ncharacters in length and start with a letter. It is case-sensitive\nand can contain only letters, digits, hyphens (-), and underscores\n(_).\n","type":"string"},"nodes":{"description":"Indicates the instance nodes information. Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV3Node:RdsInstanceV3Node"},"type":"array"},"paramGroupId":{"description":"Specifies the parameter group ID.\n","type":"string"},"parameters":{"additionalProperties":{"type":"string"},"description":"Map of additional configuration parameters. Values should be strings. Parameters set here\noverrides values from configuration template (parameter group).\n","type":"object"},"privateDomainName":{"description":"Specifies the prefix of the new domain name. The value contains <span pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\">`8`</span> to <span pulumi-lang-nodejs=\"`63`\" pulumi-lang-dotnet=\"`63`\" pulumi-lang-go=\"`63`\" pulumi-lang-python=\"`63`\" pulumi-lang-yaml=\"`63`\" pulumi-lang-java=\"`63`\">`63`</span> characters. Only uppercase letters, lowercase letters, and digits are allowed.\n\n> **Warning** The argument <span pulumi-lang-nodejs=\"`privateDomainName`\" pulumi-lang-dotnet=\"`PrivateDomainName`\" pulumi-lang-go=\"`privateDomainName`\" pulumi-lang-python=\"`private_domain_name`\" pulumi-lang-yaml=\"`privateDomainName`\" pulumi-lang-java=\"`privateDomainName`\">`private_domain_name`</span> not supported in `eu-ch2` region.\n","type":"string"},"privateFqdn":{"description":"Indicates the fully qualified domain name of an RDS instance (not supported in `eu-ch2` region).\n","type":"string"},"privateIp":{"description":"Specifies the private IP address of a DB instance.\n","type":"string"},"privateIps":{"description":"Indicates the private IP address list. It is a blank string until an\nECS is created.\n","items":{"type":"string"},"type":"array"},"publicIps":{"description":"Specifies floating IP to be assigned to the instance.\nThis should be a list with single element only.\n\n> Setting public IP is done with assigning floating IP to internally\ncreated port. So RDS itself doesn't know about this assignment. This assignment\nwon't show on the console.\nThis argument will be ignored in future when RDSv3 API for EIP assignment will be implemented.\n","items":{"type":"string"},"type":"array"},"rdsInstanceV3Id":{"description":"Indicates the node ID.\n","type":"string"},"restoreFromBackup":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV3RestoreFromBackup:RdsInstanceV3RestoreFromBackup","deprecationMessage":"Deprecated","description":"**DEPRECATED**  - (Optional) Specifies whether to restore database to an instance described in current resource.\nStructure is documented below.\nPlease use alternative parameter <span pulumi-lang-nodejs=\"`restorePoint`\" pulumi-lang-dotnet=\"`RestorePoint`\" pulumi-lang-go=\"`restorePoint`\" pulumi-lang-python=\"`restore_point`\" pulumi-lang-yaml=\"`restorePoint`\" pulumi-lang-java=\"`restorePoint`\">`restore_point`</span>.\n"},"restorePoint":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV3RestorePoint:RdsInstanceV3RestorePoint","description":"Specifies the restoration information. By selecting this option you can either\ncreate a new RDS instance or restore backup from existing one. Structure is documented below.\n"},"restoredBackupId":{"description":"Indicates the backup ID in cases when instance was restored by using\n<span pulumi-lang-nodejs=\"`restoreFromBackup`\" pulumi-lang-dotnet=\"`RestoreFromBackup`\" pulumi-lang-go=\"`restoreFromBackup`\" pulumi-lang-python=\"`restore_from_backup`\" pulumi-lang-yaml=\"`restoreFromBackup`\" pulumi-lang-java=\"`restoreFromBackup`\">`restore_from_backup`</span> block.\n","type":"string"},"securityGroupId":{"description":"Specifies the security group which the RDS DB instance belongs to.\nChanging this parameter will create a new resource.\n","type":"string"},"sslEnable":{"description":"Specifies whether SSL should be enabled for MySql instances.\n","type":"boolean"},"subnetId":{"description":"Specifies the subnet id. Changing this parameter will create a new resource.\n","type":"string"},"tag":{"additionalProperties":{"type":"string"},"deprecationMessage":"Deprecated","description":"Tags key/value pairs to associate with the instance. Deprecated, please use\nthe <span pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\">`tags`</span> instead.\n","type":"object"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the instance.\n","type":"object"},"timeZone":{"description":"Specifies the UTC time zone. Changing this parameter will create a new resource.\nIf this parameter is not specified, the time zone of each engine uses UTC by default.\nIf this parameter is specified, the value range is from UTC-12:00 to UTC+12:00 on the hour.\nFor example, the parameter can be UTC+08:00 rather than UTC+08:30.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV3Timeouts:RdsInstanceV3Timeouts"},"volume":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV3Volume:RdsInstanceV3Volume","description":"Specifies the volume information. Structure is documented below.\n"},"vpcId":{"description":"Specifies the VPC ID. Changing this parameter will create a new resource.\n","type":"string"}},"required":["autoscalingEnabled","availabilityZone","availabilityZones","created","db","flavor","haReplicationMode","name","nodes","parameters","privateDomainName","privateFqdn","privateIps","rdsInstanceV3Id","restoredBackupId","securityGroupId","sslEnable","subnetId","volume","vpcId"],"requiredInputs":["availabilityZone","db","flavor","securityGroupId","subnetId","volume","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering RdsInstanceV3 resources.\n","properties":{"autoscalingEnabled":{"description":"Indicates whether autoscaling was enabled for this resource.\n","type":"boolean"},"availabilityZone":{"description":"Specifies the AZ name. Changing this parameter will create a new resource.\n","items":{"type":"string"},"type":"array"},"availabilityZones":{"description":"Indicates the instance AZs.\n","items":{"type":"string"},"type":"array"},"backupStrategy":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV3BackupStrategy:RdsInstanceV3BackupStrategy","description":"Specifies the advanced backup policy. Structure is documented below.\n"},"created":{"description":"Indicates the creation time.\n","type":"string"},"db":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV3Db:RdsInstanceV3Db","description":"Specifies the database information. Structure is documented below. Changing this parameter will create a new resource.\n"},"flavor":{"description":"Specifies the specification code.\nUse data source<span pulumi-lang-nodejs=\" opentelekomcloud.getRdsFlavorsV3 \" pulumi-lang-dotnet=\" opentelekomcloud.getRdsFlavorsV3 \" pulumi-lang-go=\" getRdsFlavorsV3 \" pulumi-lang-python=\" get_rds_flavors_v3 \" pulumi-lang-yaml=\" opentelekomcloud.getRdsFlavorsV3 \" pulumi-lang-java=\" opentelekomcloud.getRdsFlavorsV3 \"> opentelekomcloud.getRdsFlavorsV3 </span>to get a list of available flavor names.\nExamples could be `rds.pg.n1.large.4` or `rds.pg.x1.8xlarge.4.ha` for HA clusters.\n","type":"string"},"haReplicationMode":{"description":"Specifies the replication mode for the standby DB instance. For MySQL, the value\nis async or semisync. For PostgreSQL, the value is async or sync. For Microsoft SQL Server, the value is sync.\nParameter is required for HA clusters.\n\n> <span pulumi-lang-nodejs=\"`async`\" pulumi-lang-dotnet=\"`Async`\" pulumi-lang-go=\"`async`\" pulumi-lang-python=\"`async`\" pulumi-lang-yaml=\"`async`\" pulumi-lang-java=\"`async`\">`async`</span> indicates the asynchronous replication mode. <span pulumi-lang-nodejs=\"`semisync`\" pulumi-lang-dotnet=\"`Semisync`\" pulumi-lang-go=\"`semisync`\" pulumi-lang-python=\"`semisync`\" pulumi-lang-yaml=\"`semisync`\" pulumi-lang-java=\"`semisync`\">`semisync`</span> indicates the\nsemi-synchronous replication mode. <span pulumi-lang-nodejs=\"`sync`\" pulumi-lang-dotnet=\"`Sync`\" pulumi-lang-go=\"`sync`\" pulumi-lang-python=\"`sync`\" pulumi-lang-yaml=\"`sync`\" pulumi-lang-java=\"`sync`\">`sync`</span> indicates the synchronous\nreplication mode.  Changing this parameter will create a new resource.\n","type":"string"},"lowerCaseTableNames":{"description":"Specifies the case-sensitive state of the database table name,\nthe default value is \"1\". Changing this parameter will create a new resource.\n+ 0: Table names are stored as fixed and table names are case-sensitive.\n+ 1: Table names will be stored in lower case and table names are not case-sensitive.\n","type":"string"},"name":{"description":"Specifies the DB instance name. The DB instance name of the same type\nmust be unique for the same tenant. The value must be 4 to 64\ncharacters in length and start with a letter. It is case-sensitive\nand can contain only letters, digits, hyphens (-), and underscores\n(_).\n","type":"string"},"nodes":{"description":"Indicates the instance nodes information. Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV3Node:RdsInstanceV3Node"},"type":"array"},"paramGroupId":{"description":"Specifies the parameter group ID.\n","type":"string"},"parameters":{"additionalProperties":{"type":"string"},"description":"Map of additional configuration parameters. Values should be strings. Parameters set here\noverrides values from configuration template (parameter group).\n","type":"object"},"privateDomainName":{"description":"Specifies the prefix of the new domain name. The value contains <span pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\">`8`</span> to <span pulumi-lang-nodejs=\"`63`\" pulumi-lang-dotnet=\"`63`\" pulumi-lang-go=\"`63`\" pulumi-lang-python=\"`63`\" pulumi-lang-yaml=\"`63`\" pulumi-lang-java=\"`63`\">`63`</span> characters. Only uppercase letters, lowercase letters, and digits are allowed.\n\n> **Warning** The argument <span pulumi-lang-nodejs=\"`privateDomainName`\" pulumi-lang-dotnet=\"`PrivateDomainName`\" pulumi-lang-go=\"`privateDomainName`\" pulumi-lang-python=\"`private_domain_name`\" pulumi-lang-yaml=\"`privateDomainName`\" pulumi-lang-java=\"`privateDomainName`\">`private_domain_name`</span> not supported in `eu-ch2` region.\n","type":"string"},"privateFqdn":{"description":"Indicates the fully qualified domain name of an RDS instance (not supported in `eu-ch2` region).\n","type":"string"},"privateIp":{"description":"Specifies the private IP address of a DB instance.\n","type":"string"},"privateIps":{"description":"Indicates the private IP address list. It is a blank string until an\nECS is created.\n","items":{"type":"string"},"type":"array"},"publicIps":{"description":"Specifies floating IP to be assigned to the instance.\nThis should be a list with single element only.\n\n> Setting public IP is done with assigning floating IP to internally\ncreated port. So RDS itself doesn't know about this assignment. This assignment\nwon't show on the console.\nThis argument will be ignored in future when RDSv3 API for EIP assignment will be implemented.\n","items":{"type":"string"},"type":"array"},"rdsInstanceV3Id":{"description":"Indicates the node ID.\n","type":"string"},"restoreFromBackup":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV3RestoreFromBackup:RdsInstanceV3RestoreFromBackup","deprecationMessage":"Deprecated","description":"**DEPRECATED**  - (Optional) Specifies whether to restore database to an instance described in current resource.\nStructure is documented below.\nPlease use alternative parameter <span pulumi-lang-nodejs=\"`restorePoint`\" pulumi-lang-dotnet=\"`RestorePoint`\" pulumi-lang-go=\"`restorePoint`\" pulumi-lang-python=\"`restore_point`\" pulumi-lang-yaml=\"`restorePoint`\" pulumi-lang-java=\"`restorePoint`\">`restore_point`</span>.\n"},"restorePoint":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV3RestorePoint:RdsInstanceV3RestorePoint","description":"Specifies the restoration information. By selecting this option you can either\ncreate a new RDS instance or restore backup from existing one. Structure is documented below.\n"},"restoredBackupId":{"description":"Indicates the backup ID in cases when instance was restored by using\n<span pulumi-lang-nodejs=\"`restoreFromBackup`\" pulumi-lang-dotnet=\"`RestoreFromBackup`\" pulumi-lang-go=\"`restoreFromBackup`\" pulumi-lang-python=\"`restore_from_backup`\" pulumi-lang-yaml=\"`restoreFromBackup`\" pulumi-lang-java=\"`restoreFromBackup`\">`restore_from_backup`</span> block.\n","type":"string"},"securityGroupId":{"description":"Specifies the security group which the RDS DB instance belongs to.\nChanging this parameter will create a new resource.\n","type":"string"},"sslEnable":{"description":"Specifies whether SSL should be enabled for MySql instances.\n","type":"boolean"},"subnetId":{"description":"Specifies the subnet id. Changing this parameter will create a new resource.\n","type":"string"},"tag":{"additionalProperties":{"type":"string"},"deprecationMessage":"Deprecated","description":"Tags key/value pairs to associate with the instance. Deprecated, please use\nthe <span pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\">`tags`</span> instead.\n","type":"object"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the instance.\n","type":"object"},"timeZone":{"description":"Specifies the UTC time zone. Changing this parameter will create a new resource.\nIf this parameter is not specified, the time zone of each engine uses UTC by default.\nIf this parameter is specified, the value range is from UTC-12:00 to UTC+12:00 on the hour.\nFor example, the parameter can be UTC+08:00 rather than UTC+08:30.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV3Timeouts:RdsInstanceV3Timeouts"},"volume":{"$ref":"#/types/opentelekomcloud:index%2FRdsInstanceV3Volume:RdsInstanceV3Volume","description":"Specifies the volume information. Structure is documented below.\n"},"vpcId":{"description":"Specifies the VPC ID. Changing this parameter will create a new resource.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/rdsMaintenanceV3:RdsMaintenanceV3":{"description":"Up-to-date reference of API arguments for RDS parameter group rule you can get at\n[documentation portal](https://docs.otc.t-systems.com/relational-database-service/api-ref/api_v3_recommended/db_instance_management/configuring_the_maintenance_window.html)\n\nManages a RDSv3 maintenance windows resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst test = new opentelekomcloud.RdsMaintenanceV3(\"test\", {\n    instanceId: instanceId,\n    startTime: \"12:00\",\n    endTime: \"16:00\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\ntest = opentelekomcloud.RdsMaintenanceV3(\"test\",\n    instance_id=instance_id,\n    start_time=\"12:00\",\n    end_time=\"16:00\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var test = new Opentelekomcloud.RdsMaintenanceV3(\"test\", new()\n    {\n        InstanceId = instanceId,\n        StartTime = \"12:00\",\n        EndTime = \"16:00\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\t_, err := opentelekomcloud.NewRdsMaintenanceV3(ctx, \"test\", &opentelekomcloud.RdsMaintenanceV3Args{\n\t\t\tInstanceId: pulumi.Any(instanceId),\n\t\t\tStartTime:  pulumi.String(\"12:00\"),\n\t\t\tEndTime:    pulumi.String(\"16:00\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.RdsMaintenanceV3;\nimport com.pulumi.opentelekomcloud.RdsMaintenanceV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        var test = new RdsMaintenanceV3(\"test\", RdsMaintenanceV3Args.builder()\n            .instanceId(instanceId)\n            .startTime(\"12:00\")\n            .endTime(\"16:00\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:RdsMaintenanceV3\n    properties:\n      instanceId: ${instanceId}\n      startTime: 12:00\n      endTime: 16:00\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"endTime":{"description":"Specifies the end time.\nThe value must be a valid value in the \"HH:MM\" format. The current time is in the UTC format.\n","type":"string"},"instanceId":{"description":"The ID of the RDS instance to which the maintenance window belongs.\n\n> **NOTE:** The interval between the <span pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\">`start_time`</span> and <span pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\">`end_time`</span> must be four hours.\n","type":"string"},"rdsMaintenanceV3Id":{"type":"string"},"startTime":{"description":"Specifies the start time.\nThe value must be a valid value in the \"HH:MM\" format. The current time is in the UTC format.\n","type":"string"}},"properties":{"endTime":{"description":"Specifies the end time.\nThe value must be a valid value in the \"HH:MM\" format. The current time is in the UTC format.\n","type":"string"},"instanceId":{"description":"The ID of the RDS instance to which the maintenance window belongs.\n\n> **NOTE:** The interval between the <span pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\">`start_time`</span> and <span pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\">`end_time`</span> must be four hours.\n","type":"string"},"rdsMaintenanceV3Id":{"type":"string"},"startTime":{"description":"Specifies the start time.\nThe value must be a valid value in the \"HH:MM\" format. The current time is in the UTC format.\n","type":"string"}},"required":["endTime","instanceId","rdsMaintenanceV3Id","startTime"],"requiredInputs":["endTime","instanceId","startTime"],"stateInputs":{"description":"Input properties used for looking up and filtering RdsMaintenanceV3 resources.\n","properties":{"endTime":{"description":"Specifies the end time.\nThe value must be a valid value in the \"HH:MM\" format. The current time is in the UTC format.\n","type":"string"},"instanceId":{"description":"The ID of the RDS instance to which the maintenance window belongs.\n\n> **NOTE:** The interval between the <span pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\">`start_time`</span> and <span pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\">`end_time`</span> must be four hours.\n","type":"string"},"rdsMaintenanceV3Id":{"type":"string"},"startTime":{"description":"Specifies the start time.\nThe value must be a valid value in the \"HH:MM\" format. The current time is in the UTC format.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/rdsParametergroupV3:RdsParametergroupV3":{"description":"Up-to-date reference of API arguments for RDS parameter group rule you can get at\n[documentation portal](https://docs.otc.t-systems.com/relational-database-service/api-ref/api_v3_recommended/parameter_configuration)\n\nManages a RDSv3 parametergroup resource within OpenTelekomCloud.\n\n> **NOTE:** When you create a PostgreSQL parameter template, some specification parameters do not take effect and are\ninvisible after the parameter template is created. For more information see [Parameter Template Constraints](https://docs.otc.t-systems.com/relational-database-service/api-ref/api_v3_recommended/parameter_configuration/creating_a_parameter_template.html#constraints).\n\nThese parameters can be directly applied in <span pulumi-lang-nodejs=\"`opentelekomcloud.RdsInstanceV3`\" pulumi-lang-dotnet=\"`opentelekomcloud.RdsInstanceV3`\" pulumi-lang-go=\"`RdsInstanceV3`\" pulumi-lang-python=\"`RdsInstanceV3`\" pulumi-lang-yaml=\"`opentelekomcloud.RdsInstanceV3`\" pulumi-lang-java=\"`opentelekomcloud.RdsInstanceV3`\">`opentelekomcloud.RdsInstanceV3`</span> resource by providing a <span pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\">`parameters`</span> argument.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst pg1 = new opentelekomcloud.RdsParametergroupV3(\"pg_1\", {\n    name: \"pg_1\",\n    description: \"some description here\",\n    values: {\n        max_connections: \"10\",\n        autocommit: \"OFF\",\n    },\n    datastore: {\n        type: \"mysql\",\n        version: \"8.0\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\npg1 = opentelekomcloud.RdsParametergroupV3(\"pg_1\",\n    name=\"pg_1\",\n    description=\"some description here\",\n    values={\n        \"max_connections\": \"10\",\n        \"autocommit\": \"OFF\",\n    },\n    datastore={\n        \"type\": \"mysql\",\n        \"version\": \"8.0\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var pg1 = new Opentelekomcloud.RdsParametergroupV3(\"pg_1\", new()\n    {\n        Name = \"pg_1\",\n        Description = \"some description here\",\n        Values = \n        {\n            { \"max_connections\", \"10\" },\n            { \"autocommit\", \"OFF\" },\n        },\n        Datastore = new Opentelekomcloud.Inputs.RdsParametergroupV3DatastoreArgs\n        {\n            Type = \"mysql\",\n            Version = \"8.0\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewRdsParametergroupV3(ctx, \"pg_1\", &opentelekomcloud.RdsParametergroupV3Args{\n\t\t\tName:        pulumi.String(\"pg_1\"),\n\t\t\tDescription: pulumi.String(\"some description here\"),\n\t\t\tValues: pulumi.StringMap{\n\t\t\t\t\"max_connections\": pulumi.String(\"10\"),\n\t\t\t\t\"autocommit\":      pulumi.String(\"OFF\"),\n\t\t\t},\n\t\t\tDatastore: &opentelekomcloud.RdsParametergroupV3DatastoreArgs{\n\t\t\t\tType:    pulumi.String(\"mysql\"),\n\t\t\t\tVersion: pulumi.String(\"8.0\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.RdsParametergroupV3;\nimport com.pulumi.opentelekomcloud.RdsParametergroupV3Args;\nimport com.pulumi.opentelekomcloud.inputs.RdsParametergroupV3DatastoreArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var pg1 = new RdsParametergroupV3(\"pg1\", RdsParametergroupV3Args.builder()\n            .name(\"pg_1\")\n            .description(\"some description here\")\n            .values(Map.ofEntries(\n                Map.entry(\"max_connections\", \"10\"),\n                Map.entry(\"autocommit\", \"OFF\")\n            ))\n            .datastore(RdsParametergroupV3DatastoreArgs.builder()\n                .type(\"mysql\")\n                .version(\"8.0\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  pg1:\n    type: opentelekomcloud:RdsParametergroupV3\n    name: pg_1\n    properties:\n      name: pg_1\n      description: some description here\n      values:\n        max_connections: '10'\n        autocommit: OFF\n      datastore:\n        type: mysql\n        version: '8.0'\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nParameter groups can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/rdsParametergroupV3:RdsParametergroupV3 pg_1 7117d38e-4c8f-4624-a505-bd96b97d024c\n```\n\n","inputProperties":{"datastore":{"$ref":"#/types/opentelekomcloud:index%2FRdsParametergroupV3Datastore:RdsParametergroupV3Datastore","description":"Database object. The database object structure is documented below. Changing this creates a new parameter group.\n"},"description":{"description":"The parameter group description. It contains a maximum of 256 characters\nand cannot contain the following special characters: `>!<\"&'=` the value is left blank by default.\n","type":"string"},"name":{"description":"The parameter group name. It contains a maximum of 64 characters.\n","type":"string"},"rdsParametergroupV3Id":{"description":"ID of the parameter group.\n","type":"string"},"values":{"additionalProperties":{"type":"string"},"description":"Parameter group values key/value pairs defined by users based on the default parameter groups.\n","type":"object"}},"properties":{"configurationParameters":{"description":"Indicates the parameter configuration defined by users based on the default parameters groups.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FRdsParametergroupV3ConfigurationParameter:RdsParametergroupV3ConfigurationParameter"},"type":"array"},"created":{"description":"Indicates the creation time in the following format: `yyyy-MM-ddTHH:mm:ssZ`.\n","type":"string"},"datastore":{"$ref":"#/types/opentelekomcloud:index%2FRdsParametergroupV3Datastore:RdsParametergroupV3Datastore","description":"Database object. The database object structure is documented below. Changing this creates a new parameter group.\n"},"description":{"description":"The parameter group description. It contains a maximum of 256 characters\nand cannot contain the following special characters: `>!<\"&'=` the value is left blank by default.\n","type":"string"},"name":{"description":"The parameter group name. It contains a maximum of 64 characters.\n","type":"string"},"rdsParametergroupV3Id":{"description":"ID of the parameter group.\n","type":"string"},"updated":{"description":"Indicates the update time in the following format: `yyyy-MM-ddTHH:mm:ssZ`.\n","type":"string"},"values":{"additionalProperties":{"type":"string"},"description":"Parameter group values key/value pairs defined by users based on the default parameter groups.\n","type":"object"}},"required":["configurationParameters","created","datastore","name","rdsParametergroupV3Id","updated"],"requiredInputs":["datastore"],"stateInputs":{"description":"Input properties used for looking up and filtering RdsParametergroupV3 resources.\n","properties":{"configurationParameters":{"description":"Indicates the parameter configuration defined by users based on the default parameters groups.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FRdsParametergroupV3ConfigurationParameter:RdsParametergroupV3ConfigurationParameter"},"type":"array"},"created":{"description":"Indicates the creation time in the following format: `yyyy-MM-ddTHH:mm:ssZ`.\n","type":"string"},"datastore":{"$ref":"#/types/opentelekomcloud:index%2FRdsParametergroupV3Datastore:RdsParametergroupV3Datastore","description":"Database object. The database object structure is documented below. Changing this creates a new parameter group.\n"},"description":{"description":"The parameter group description. It contains a maximum of 256 characters\nand cannot contain the following special characters: `>!<\"&'=` the value is left blank by default.\n","type":"string"},"name":{"description":"The parameter group name. It contains a maximum of 64 characters.\n","type":"string"},"rdsParametergroupV3Id":{"description":"ID of the parameter group.\n","type":"string"},"updated":{"description":"Indicates the update time in the following format: `yyyy-MM-ddTHH:mm:ssZ`.\n","type":"string"},"values":{"additionalProperties":{"type":"string"},"description":"Parameter group values key/value pairs defined by users based on the default parameter groups.\n","type":"object"}},"type":"object"},"type":"object"},"opentelekomcloud:index/rdsPublicIpAssociateV3:RdsPublicIpAssociateV3":{"description":"Up-to-date reference of API arguments for RDS public ip association you can get at\n[documentation portal](https://docs.otc.t-systems.com/relational-database-service/api-ref/api_v3_recommended/db_instance_management/binding_and_unbinding_an_eip.html#rds-05-0009)\n\nAssociates a public IP to an RDS instance.\n\n## Example Usage\n\n### Bind\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst instanceId = config.requireObject<any>(\"instanceId\");\nconst publicIp = new opentelekomcloud.RdsPublicIpAssociateV3(\"public_ip\", {\n    instanceId: instanceId,\n    publicIp: eip2.address,\n    publicIpId: eip2.id,\n});\nconst eip1 = new opentelekomcloud.ComputeFloatingipV2(\"eip_1\", {});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ninstance_id = config.require_object(\"instanceId\")\npublic_ip = opentelekomcloud.RdsPublicIpAssociateV3(\"public_ip\",\n    instance_id=instance_id,\n    public_ip=eip2[\"address\"],\n    public_ip_id=eip2[\"id\"])\neip1 = opentelekomcloud.ComputeFloatingipV2(\"eip_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var instanceId = config.RequireObject<dynamic>(\"instanceId\");\n    var publicIp = new Opentelekomcloud.RdsPublicIpAssociateV3(\"public_ip\", new()\n    {\n        InstanceId = instanceId,\n        PublicIp = eip2.Address,\n        PublicIpId = eip2.Id,\n    });\n\n    var eip1 = new Opentelekomcloud.ComputeFloatingipV2(\"eip_1\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceId := cfg.RequireObject(\"instanceId\")\n\t\t_, err := opentelekomcloud.NewRdsPublicIpAssociateV3(ctx, \"public_ip\", &opentelekomcloud.RdsPublicIpAssociateV3Args{\n\t\t\tInstanceId: pulumi.Any(instanceId),\n\t\t\tPublicIp:   pulumi.Any(eip2.Address),\n\t\t\tPublicIpId: pulumi.Any(eip2.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewComputeFloatingipV2(ctx, \"eip_1\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.RdsPublicIpAssociateV3;\nimport com.pulumi.opentelekomcloud.RdsPublicIpAssociateV3Args;\nimport com.pulumi.opentelekomcloud.ComputeFloatingipV2;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceId = config.get(\"instanceId\");\n        var publicIp = new RdsPublicIpAssociateV3(\"publicIp\", RdsPublicIpAssociateV3Args.builder()\n            .instanceId(instanceId)\n            .publicIp(eip2.address())\n            .publicIpId(eip2.id())\n            .build());\n\n        var eip1 = new ComputeFloatingipV2(\"eip1\");\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceId:\n    type: dynamic\nresources:\n  publicIp:\n    type: opentelekomcloud:RdsPublicIpAssociateV3\n    name: public_ip\n    properties:\n      instanceId: ${instanceId}\n      publicIp: ${eip2.address}\n      publicIpId: ${eip2.id}\n  eip1:\n    type: opentelekomcloud:ComputeFloatingipV2\n    name: eip_1\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"instanceId":{"description":"Specifies the RDS instance ID.\n","type":"string"},"publicIp":{"description":"Specifies the EIP to be bound. The value must be in the standard IP address format.\n","type":"string"},"publicIpId":{"description":"Specifies the EIP ID. The value must be in the standard UUID format.\n","type":"string"},"rdsPublicIpAssociateV3Id":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FRdsPublicIpAssociateV3Timeouts:RdsPublicIpAssociateV3Timeouts"}},"properties":{"instanceId":{"description":"Specifies the RDS instance ID.\n","type":"string"},"publicIp":{"description":"Specifies the EIP to be bound. The value must be in the standard IP address format.\n","type":"string"},"publicIpId":{"description":"Specifies the EIP ID. The value must be in the standard UUID format.\n","type":"string"},"rdsPublicIpAssociateV3Id":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FRdsPublicIpAssociateV3Timeouts:RdsPublicIpAssociateV3Timeouts"}},"required":["instanceId","publicIp","publicIpId","rdsPublicIpAssociateV3Id"],"requiredInputs":["instanceId","publicIp","publicIpId"],"stateInputs":{"description":"Input properties used for looking up and filtering RdsPublicIpAssociateV3 resources.\n","properties":{"instanceId":{"description":"Specifies the RDS instance ID.\n","type":"string"},"publicIp":{"description":"Specifies the EIP to be bound. The value must be in the standard IP address format.\n","type":"string"},"publicIpId":{"description":"Specifies the EIP ID. The value must be in the standard UUID format.\n","type":"string"},"rdsPublicIpAssociateV3Id":{"type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FRdsPublicIpAssociateV3Timeouts:RdsPublicIpAssociateV3Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/rdsReadReplicaV3:RdsReadReplicaV3":{"description":"Up-to-date reference of API arguments for RDS replica you can get at\n[documentation portal](https://docs.otc.t-systems.com/relational-database-service/api-ref/api_v3_recommended/db_instance_management)\n\nManages a RDSv3 read replica resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```yaml\nresources:\n  instance:\n    type: opentelekomcloud:RdsInstanceV3\n    properties:\n      name: test-instance\n      availabilityZones: ${azMain}\n      db:\n        password: ${dbPassword}\n        type: PostgreSQL\n        version: '16'\n        port: '8635'\n      securityGroupId: ${sgId}\n      subnetId: ${osNetworkId}\n      vpcId: ${osRouterId}\n      flavor: rds.pg.n1.medium.4.rr\n      volume:\n        type: CLOUDSSD\n        size: 40\n      backupStrategy:\n        startTime: 08:00-09:00\n        keepDays: 1\n      tag:\n        created: terraform\n  replica:\n    type: opentelekomcloud:RdsReadReplicaV3\n    properties:\n      name: test-replica\n      replicaOfId: ${instance.rdsInstanceV3Id}\n      flavorRef: ${instance.flavor}.rr\n      availabilityZone: ${azReplica}\n      volume:\n        type: CLOUDSSD\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nRead replicas can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/rdsReadReplicaV3:RdsReadReplicaV3 rr_1 1a8efa8c-342a-40f0-bc8f-3d27bd603661\n```\n\n","inputProperties":{"availabilityZone":{"type":"string"},"flavorRef":{"type":"string"},"name":{"description":"Specifies the DB replica instance name. The DB instance name of the same type must be unique for the same\ntenant. The value must be <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span> characters in length and start with a letter. It is case-sensitive and can\ncontain only letters, digits, hyphens (`-`), and underscores  (`_`). Changing this parameter will create a new\nresource.\n","type":"string"},"publicIps":{"description":"Specifies floating IP to be assigned to the instance.\nThis should be a list with single element only.\n","items":{"type":"string"},"type":"array"},"rdsReadReplicaV3Id":{"description":"ID of the read replica instance.\n","type":"string"},"region":{"description":"Specifies the region of the replica instance. Changing this parameter will create a new\nresource.\n","type":"string"},"replicaOfId":{"description":"Specifies ID of the replicated instance. Changing this parameter will create a new resource.\n","type":"string"},"sslEnable":{"description":"Specifies whether SSL should be enabled for MySql instances.\n","type":"boolean"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FRdsReadReplicaV3Timeouts:RdsReadReplicaV3Timeouts"},"volume":{"$ref":"#/types/opentelekomcloud:index%2FRdsReadReplicaV3Volume:RdsReadReplicaV3Volume","description":"Specifies the volume information. Structure is documented below.\n"}},"properties":{"availabilityZone":{"type":"string"},"dbs":{"description":"Indicates the database information. Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FRdsReadReplicaV3Db:RdsReadReplicaV3Db"},"type":"array"},"flavorRef":{"type":"string"},"name":{"description":"Specifies the DB replica instance name. The DB instance name of the same type must be unique for the same\ntenant. The value must be <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span> characters in length and start with a letter. It is case-sensitive and can\ncontain only letters, digits, hyphens (`-`), and underscores  (`_`). Changing this parameter will create a new\nresource.\n","type":"string"},"privateIps":{"description":"Indicates the private IP address list.\n","items":{"type":"string"},"type":"array"},"publicIps":{"description":"Specifies floating IP to be assigned to the instance.\nThis should be a list with single element only.\n","items":{"type":"string"},"type":"array"},"rdsReadReplicaV3Id":{"description":"ID of the read replica instance.\n","type":"string"},"region":{"description":"Specifies the region of the replica instance. Changing this parameter will create a new\nresource.\n","type":"string"},"replicaOfId":{"description":"Specifies ID of the replicated instance. Changing this parameter will create a new resource.\n","type":"string"},"securityGroupId":{"description":"Indicates the security group which the replica instance belongs to.\n","type":"string"},"sslEnable":{"description":"Specifies whether SSL should be enabled for MySql instances.\n","type":"boolean"},"subnetId":{"description":"Indicates the subnet id (OpenStack network ID).\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FRdsReadReplicaV3Timeouts:RdsReadReplicaV3Timeouts"},"volume":{"$ref":"#/types/opentelekomcloud:index%2FRdsReadReplicaV3Volume:RdsReadReplicaV3Volume","description":"Specifies the volume information. Structure is documented below.\n"},"vpcId":{"description":"Indicates the VPC ID (OpenStack router ID).\n","type":"string"}},"required":["availabilityZone","dbs","flavorRef","name","privateIps","publicIps","rdsReadReplicaV3Id","region","replicaOfId","securityGroupId","sslEnable","subnetId","volume","vpcId"],"requiredInputs":["flavorRef","replicaOfId","volume"],"stateInputs":{"description":"Input properties used for looking up and filtering RdsReadReplicaV3 resources.\n","properties":{"availabilityZone":{"type":"string"},"dbs":{"description":"Indicates the database information. Structure is documented below.\n","items":{"$ref":"#/types/opentelekomcloud:index%2FRdsReadReplicaV3Db:RdsReadReplicaV3Db"},"type":"array"},"flavorRef":{"type":"string"},"name":{"description":"Specifies the DB replica instance name. The DB instance name of the same type must be unique for the same\ntenant. The value must be <span pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\">`4`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span> characters in length and start with a letter. It is case-sensitive and can\ncontain only letters, digits, hyphens (`-`), and underscores  (`_`). Changing this parameter will create a new\nresource.\n","type":"string"},"privateIps":{"description":"Indicates the private IP address list.\n","items":{"type":"string"},"type":"array"},"publicIps":{"description":"Specifies floating IP to be assigned to the instance.\nThis should be a list with single element only.\n","items":{"type":"string"},"type":"array"},"rdsReadReplicaV3Id":{"description":"ID of the read replica instance.\n","type":"string"},"region":{"description":"Specifies the region of the replica instance. Changing this parameter will create a new\nresource.\n","type":"string"},"replicaOfId":{"description":"Specifies ID of the replicated instance. Changing this parameter will create a new resource.\n","type":"string"},"securityGroupId":{"description":"Indicates the security group which the replica instance belongs to.\n","type":"string"},"sslEnable":{"description":"Specifies whether SSL should be enabled for MySql instances.\n","type":"boolean"},"subnetId":{"description":"Indicates the subnet id (OpenStack network ID).\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FRdsReadReplicaV3Timeouts:RdsReadReplicaV3Timeouts"},"volume":{"$ref":"#/types/opentelekomcloud:index%2FRdsReadReplicaV3Volume:RdsReadReplicaV3Volume","description":"Specifies the volume information. Structure is documented below.\n"},"vpcId":{"description":"Indicates the VPC ID (OpenStack router ID).\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/rmsAdvancedQueryV1:RmsAdvancedQueryV1":{"description":"Up-to-date reference of API arguments for RDS replica you can get at\n[documentation portal](https://docs.otc.t-systems.com/config/api-ref/apis/advanced_queries/index.html)\n\nManages an RMS advanced query resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst test = new opentelekomcloud.RmsAdvancedQueryV1(\"test\", {\n    name: \"advanced_query_name\",\n    expression: \"select * from table_test\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ntest = opentelekomcloud.RmsAdvancedQueryV1(\"test\",\n    name=\"advanced_query_name\",\n    expression=\"select * from table_test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var test = new Opentelekomcloud.RmsAdvancedQueryV1(\"test\", new()\n    {\n        Name = \"advanced_query_name\",\n        Expression = \"select * from table_test\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewRmsAdvancedQueryV1(ctx, \"test\", &opentelekomcloud.RmsAdvancedQueryV1Args{\n\t\t\tName:       pulumi.String(\"advanced_query_name\"),\n\t\t\tExpression: pulumi.String(\"select * from table_test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.RmsAdvancedQueryV1;\nimport com.pulumi.opentelekomcloud.RmsAdvancedQueryV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new RmsAdvancedQueryV1(\"test\", RmsAdvancedQueryV1Args.builder()\n            .name(\"advanced_query_name\")\n            .expression(\"select * from table_test\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: opentelekomcloud:RmsAdvancedQueryV1\n    properties:\n      name: advanced_query_name\n      expression: select * from table_test\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe RMS advanced query can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/rmsAdvancedQueryV1:RmsAdvancedQueryV1 test <id>\n```\n\n","inputProperties":{"description":{"description":"Specifies the advanced query description. It contains 1 to 512 characters.\n","type":"string"},"expression":{"description":"Specifies the advanced query expression. It contains 1 to 4096 characters.\n","type":"string"},"name":{"description":"Specifies the advanced query name. It contains 1 to 64 characters.\n\nChanging this parameter will create a new resource.\n","type":"string"},"rmsAdvancedQueryV1Id":{"description":"The resource ID.\n","type":"string"}},"properties":{"createdAt":{"description":"The resource creation time.\n","type":"string"},"description":{"description":"Specifies the advanced query description. It contains 1 to 512 characters.\n","type":"string"},"expression":{"description":"Specifies the advanced query expression. It contains 1 to 4096 characters.\n","type":"string"},"name":{"description":"Specifies the advanced query name. It contains 1 to 64 characters.\n\nChanging this parameter will create a new resource.\n","type":"string"},"rmsAdvancedQueryV1Id":{"description":"The resource ID.\n","type":"string"},"type":{"description":"The resource type.\n","type":"string"},"updatedAt":{"description":"The resource update time.\n","type":"string"}},"required":["createdAt","expression","name","rmsAdvancedQueryV1Id","type","updatedAt"],"requiredInputs":["expression"],"stateInputs":{"description":"Input properties used for looking up and filtering RmsAdvancedQueryV1 resources.\n","properties":{"createdAt":{"description":"The resource creation time.\n","type":"string"},"description":{"description":"Specifies the advanced query description. It contains 1 to 512 characters.\n","type":"string"},"expression":{"description":"Specifies the advanced query expression. It contains 1 to 4096 characters.\n","type":"string"},"name":{"description":"Specifies the advanced query name. It contains 1 to 64 characters.\n\nChanging this parameter will create a new resource.\n","type":"string"},"rmsAdvancedQueryV1Id":{"description":"The resource ID.\n","type":"string"},"type":{"description":"The resource type.\n","type":"string"},"updatedAt":{"description":"The resource update time.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/rmsPolicyAssignmentEvaluateV1:RmsPolicyAssignmentEvaluateV1":{"description":"Up-to-date reference of API arguments for RMS Policy Assignment Evaluate you can get at\n[documentation portal](https://docs.otc.t-systems.com/config/api-ref/apis/compliance/running_a_resource_compliance_evaluation.html#rms-04-0510)\n\nManages a RMS policy assignment evaluate resource within OpenTelekomCloud resources.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst policyAssignmentId = config.requireObject<any>(\"policyAssignmentId\");\nconst test = new opentelekomcloud.RmsPolicyAssignmentEvaluateV1(\"test\", {policyAssignmentId: policyAssignmentId});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\npolicy_assignment_id = config.require_object(\"policyAssignmentId\")\ntest = opentelekomcloud.RmsPolicyAssignmentEvaluateV1(\"test\", policy_assignment_id=policy_assignment_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var policyAssignmentId = config.RequireObject<dynamic>(\"policyAssignmentId\");\n    var test = new Opentelekomcloud.RmsPolicyAssignmentEvaluateV1(\"test\", new()\n    {\n        PolicyAssignmentId = policyAssignmentId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tpolicyAssignmentId := cfg.RequireObject(\"policyAssignmentId\")\n\t\t_, err := opentelekomcloud.NewRmsPolicyAssignmentEvaluateV1(ctx, \"test\", &opentelekomcloud.RmsPolicyAssignmentEvaluateV1Args{\n\t\t\tPolicyAssignmentId: pulumi.Any(policyAssignmentId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.RmsPolicyAssignmentEvaluateV1;\nimport com.pulumi.opentelekomcloud.RmsPolicyAssignmentEvaluateV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var policyAssignmentId = config.get(\"policyAssignmentId\");\n        var test = new RmsPolicyAssignmentEvaluateV1(\"test\", RmsPolicyAssignmentEvaluateV1Args.builder()\n            .policyAssignmentId(policyAssignmentId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  policyAssignmentId:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:RmsPolicyAssignmentEvaluateV1\n    properties:\n      policyAssignmentId: ${policyAssignmentId}\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"policyAssignmentId":{"description":"Specifies the ID of the policy assignment to evaluate.\n","type":"string"},"rmsPolicyAssignmentEvaluateV1Id":{"description":"The ID of the policy assignment evaluate.\n","type":"string"}},"properties":{"policyAssignmentId":{"description":"Specifies the ID of the policy assignment to evaluate.\n","type":"string"},"rmsPolicyAssignmentEvaluateV1Id":{"description":"The ID of the policy assignment evaluate.\n","type":"string"}},"required":["policyAssignmentId","rmsPolicyAssignmentEvaluateV1Id"],"requiredInputs":["policyAssignmentId"],"stateInputs":{"description":"Input properties used for looking up and filtering RmsPolicyAssignmentEvaluateV1 resources.\n","properties":{"policyAssignmentId":{"description":"Specifies the ID of the policy assignment to evaluate.\n","type":"string"},"rmsPolicyAssignmentEvaluateV1Id":{"description":"The ID of the policy assignment evaluate.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/rmsPolicyAssignmentV1:RmsPolicyAssignmentV1":{"description":"Up-to-date reference of API arguments for RMS Policy Assignment you can get at\n[documentation portal](https://docs.otc.t-systems.com/config/api-ref/apis/compliance/index.html)\n\nUsing this resource to assign the policy and evaluate OpenTelekomCloud resources.\n\n## Example Usage\n\n### Assign a custom policy\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst policyAssignmentName = config.requireObject<any>(\"policyAssignmentName\");\nconst functionUrn = config.requireObject<any>(\"functionUrn\");\nconst functionVersion = config.requireObject<any>(\"functionVersion\");\nconst rmsAdminTrustAgency = config.requireObject<any>(\"rmsAdminTrustAgency\");\nconst test = new opentelekomcloud.RmsPolicyAssignmentV1(\"test\", {\n    name: policyAssignmentName,\n    description: \"The ECS instances that do not conform to the custom function logic are considered non-compliant.\",\n    status: \"Enabled\",\n    customPolicy: {\n        functionUrn: `${functionUrn}:${functionVersion}`,\n        authType: \"agency\",\n        authValue: {\n            agency_name: `\"${rmsAdminTrustAgency}\"`,\n        },\n    },\n    parameters: {\n        string_example: \"\\\"string_value\\\"\",\n        array_example: \"[\\\"array_element\\\"]\",\n        object_example: \"{\\\"terraform_version\\\":\\\"1.xx.x\\\"}\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\npolicy_assignment_name = config.require_object(\"policyAssignmentName\")\nfunction_urn = config.require_object(\"functionUrn\")\nfunction_version = config.require_object(\"functionVersion\")\nrms_admin_trust_agency = config.require_object(\"rmsAdminTrustAgency\")\ntest = opentelekomcloud.RmsPolicyAssignmentV1(\"test\",\n    name=policy_assignment_name,\n    description=\"The ECS instances that do not conform to the custom function logic are considered non-compliant.\",\n    status=\"Enabled\",\n    custom_policy={\n        \"function_urn\": f\"{function_urn}:{function_version}\",\n        \"auth_type\": \"agency\",\n        \"auth_value\": {\n            \"agency_name\": f\"\\\"{rms_admin_trust_agency}\\\"\",\n        },\n    },\n    parameters={\n        \"string_example\": \"\\\"string_value\\\"\",\n        \"array_example\": \"[\\\"array_element\\\"]\",\n        \"object_example\": \"{\\\"terraform_version\\\":\\\"1.xx.x\\\"}\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var policyAssignmentName = config.RequireObject<dynamic>(\"policyAssignmentName\");\n    var functionUrn = config.RequireObject<dynamic>(\"functionUrn\");\n    var functionVersion = config.RequireObject<dynamic>(\"functionVersion\");\n    var rmsAdminTrustAgency = config.RequireObject<dynamic>(\"rmsAdminTrustAgency\");\n    var test = new Opentelekomcloud.RmsPolicyAssignmentV1(\"test\", new()\n    {\n        Name = policyAssignmentName,\n        Description = \"The ECS instances that do not conform to the custom function logic are considered non-compliant.\",\n        Status = \"Enabled\",\n        CustomPolicy = new Opentelekomcloud.Inputs.RmsPolicyAssignmentV1CustomPolicyArgs\n        {\n            FunctionUrn = $\"{functionUrn}:{functionVersion}\",\n            AuthType = \"agency\",\n            AuthValue = \n            {\n                { \"agency_name\", $\"\\\"{rmsAdminTrustAgency}\\\"\" },\n            },\n        },\n        Parameters = \n        {\n            { \"string_example\", \"\\\"string_value\\\"\" },\n            { \"array_example\", \"[\\\"array_element\\\"]\" },\n            { \"object_example\", \"{\\\"terraform_version\\\":\\\"1.xx.x\\\"}\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tpolicyAssignmentName := cfg.RequireObject(\"policyAssignmentName\")\n\t\tfunctionUrn := cfg.RequireObject(\"functionUrn\")\n\t\tfunctionVersion := cfg.RequireObject(\"functionVersion\")\n\t\trmsAdminTrustAgency := cfg.RequireObject(\"rmsAdminTrustAgency\")\n\t\t_, err := opentelekomcloud.NewRmsPolicyAssignmentV1(ctx, \"test\", &opentelekomcloud.RmsPolicyAssignmentV1Args{\n\t\t\tName:        pulumi.Any(policyAssignmentName),\n\t\t\tDescription: pulumi.String(\"The ECS instances that do not conform to the custom function logic are considered non-compliant.\"),\n\t\t\tStatus:      pulumi.String(\"Enabled\"),\n\t\t\tCustomPolicy: &opentelekomcloud.RmsPolicyAssignmentV1CustomPolicyArgs{\n\t\t\t\tFunctionUrn: pulumi.Sprintf(\"%v:%v\", functionUrn, functionVersion),\n\t\t\t\tAuthType:    pulumi.String(\"agency\"),\n\t\t\t\tAuthValue: pulumi.StringMap{\n\t\t\t\t\t\"agency_name\": pulumi.Sprintf(\"\\\"%v\\\"\", rmsAdminTrustAgency),\n\t\t\t\t},\n\t\t\t},\n\t\t\tParameters: pulumi.StringMap{\n\t\t\t\t\"string_example\": pulumi.String(\"\\\"string_value\\\"\"),\n\t\t\t\t\"array_example\":  pulumi.String(\"[\\\"array_element\\\"]\"),\n\t\t\t\t\"object_example\": pulumi.String(\"{\\\"terraform_version\\\":\\\"1.xx.x\\\"}\"),\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.opentelekomcloud.RmsPolicyAssignmentV1;\nimport com.pulumi.opentelekomcloud.RmsPolicyAssignmentV1Args;\nimport com.pulumi.opentelekomcloud.inputs.RmsPolicyAssignmentV1CustomPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var policyAssignmentName = config.get(\"policyAssignmentName\");\n        final var functionUrn = config.get(\"functionUrn\");\n        final var functionVersion = config.get(\"functionVersion\");\n        final var rmsAdminTrustAgency = config.get(\"rmsAdminTrustAgency\");\n        var test = new RmsPolicyAssignmentV1(\"test\", RmsPolicyAssignmentV1Args.builder()\n            .name(policyAssignmentName)\n            .description(\"The ECS instances that do not conform to the custom function logic are considered non-compliant.\")\n            .status(\"Enabled\")\n            .customPolicy(RmsPolicyAssignmentV1CustomPolicyArgs.builder()\n                .functionUrn(String.format(\"%s:%s\", functionUrn,functionVersion))\n                .authType(\"agency\")\n                .authValue(Map.of(\"agency_name\", String.format(\"\\\"%s\\\"\", rmsAdminTrustAgency)))\n                .build())\n            .parameters(Map.ofEntries(\n                Map.entry(\"string_example\", \"\\\"string_value\\\"\"),\n                Map.entry(\"array_example\", \"[\\\"array_element\\\"]\"),\n                Map.entry(\"object_example\", \"{\\\"terraform_version\\\":\\\"1.xx.x\\\"}\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  policyAssignmentName:\n    type: dynamic\n  functionUrn:\n    type: dynamic\n  functionVersion:\n    type: dynamic\n  rmsAdminTrustAgency:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:RmsPolicyAssignmentV1\n    properties:\n      name: ${policyAssignmentName}\n      description: The ECS instances that do not conform to the custom function logic are considered non-compliant.\n      status: Enabled\n      customPolicy:\n        functionUrn: ${functionUrn}:${functionVersion}\n        authType: agency\n        authValue:\n          agency_name: '\"${rmsAdminTrustAgency}\"'\n      parameters:\n        string_example: '\"string_value\"'\n        array_example: '[\"array_element\"]'\n        object_example: '{\"terraform_version\":\"1.xx.x\"}'\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nPolicy assignments can be imported using their `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/rmsPolicyAssignmentV1:RmsPolicyAssignmentV1 test 63f48e3762ce955981ab7e25\n```\n\n","inputProperties":{"customPolicy":{"$ref":"#/types/opentelekomcloud:index%2FRmsPolicyAssignmentV1CustomPolicy:RmsPolicyAssignmentV1CustomPolicy","description":"Specifies the configuration of the custom policy.\nThe object structure is documented below.\n"},"description":{"description":"Specifies the description of the policy assignment, which contain maximum of\n<span pulumi-lang-nodejs=\"`512`\" pulumi-lang-dotnet=\"`512`\" pulumi-lang-go=\"`512`\" pulumi-lang-python=\"`512`\" pulumi-lang-yaml=\"`512`\" pulumi-lang-java=\"`512`\">`512`</span> characters.\n","type":"string"},"name":{"description":"Specifies the name of the policy assignment.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>.\nChange this parameter will create a new resource.\n","type":"string"},"parameters":{"additionalProperties":{"type":"string"},"description":"Specifies the rule definition of the policy assignment.\n","type":"object"},"period":{"description":"Specifies the period of the policy assignment.\nThe valid values are as follows:\n+ **One_Hour**\n+ **Three_Hours**\n+ **Six_Hours**\n+ **Twelve_Hours**\n+ **TwentyFour_Hours**\n\nMost one of <span pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\">`period`</span> and <span pulumi-lang-nodejs=\"`policyFilter`\" pulumi-lang-dotnet=\"`PolicyFilter`\" pulumi-lang-go=\"`policyFilter`\" pulumi-lang-python=\"`policy_filter`\" pulumi-lang-yaml=\"`policyFilter`\" pulumi-lang-java=\"`policyFilter`\">`policy_filter`</span> can be configured.\n","type":"string"},"policyDefinitionId":{"description":"Specifies the ID of the built-in policy definition.\nThis parameter and <span pulumi-lang-nodejs=\"`customPolicy`\" pulumi-lang-dotnet=\"`CustomPolicy`\" pulumi-lang-go=\"`customPolicy`\" pulumi-lang-python=\"`custom_policy`\" pulumi-lang-yaml=\"`customPolicy`\" pulumi-lang-java=\"`customPolicy`\">`custom_policy`</span> are alternative.\n","type":"string"},"policyFilter":{"$ref":"#/types/opentelekomcloud:index%2FRmsPolicyAssignmentV1PolicyFilter:RmsPolicyAssignmentV1PolicyFilter","description":"Specifies the configuration used to filter resources.\nThe object structure is documented below.\n\n> If the <span pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\">`period`</span> is configured, it means that the evaluation is performed periodically.\nIf the <span pulumi-lang-nodejs=\"`policyFilter`\" pulumi-lang-dotnet=\"`PolicyFilter`\" pulumi-lang-go=\"`policyFilter`\" pulumi-lang-python=\"`policy_filter`\" pulumi-lang-yaml=\"`policyFilter`\" pulumi-lang-java=\"`policyFilter`\">`policy_filter`</span> is configured, it means that the evaluation is performed on the specified resources through\nthe filter. If neither parameter is configured, it means that the evaluation is performed on all resources under the\naccount.\n"},"rmsPolicyAssignmentV1Id":{"description":"The ID of the policy assignment.\n","type":"string"},"status":{"description":"Specifies the expect status of the policy.\nThe valid values are **Enabled** and **Disabled**.\n\n<a name=<span pulumi-lang-nodejs=\"\"rmsPolicyFilter\"\" pulumi-lang-dotnet=\"\"RmsPolicyFilter\"\" pulumi-lang-go=\"\"rmsPolicyFilter\"\" pulumi-lang-python=\"\"rms_policy_filter\"\" pulumi-lang-yaml=\"\"rmsPolicyFilter\"\" pulumi-lang-java=\"\"rmsPolicyFilter\"\">\"rms_policy_filter\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`policyFilter`\" pulumi-lang-dotnet=\"`PolicyFilter`\" pulumi-lang-go=\"`policyFilter`\" pulumi-lang-python=\"`policy_filter`\" pulumi-lang-yaml=\"`policyFilter`\" pulumi-lang-java=\"`policyFilter`\">`policy_filter`</span> block supports:\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FRmsPolicyAssignmentV1Timeouts:RmsPolicyAssignmentV1Timeouts"}},"properties":{"createdAt":{"description":"The creation time of the policy assignment.\n","type":"string"},"customPolicy":{"$ref":"#/types/opentelekomcloud:index%2FRmsPolicyAssignmentV1CustomPolicy:RmsPolicyAssignmentV1CustomPolicy","description":"Specifies the configuration of the custom policy.\nThe object structure is documented below.\n"},"description":{"description":"Specifies the description of the policy assignment, which contain maximum of\n<span pulumi-lang-nodejs=\"`512`\" pulumi-lang-dotnet=\"`512`\" pulumi-lang-go=\"`512`\" pulumi-lang-python=\"`512`\" pulumi-lang-yaml=\"`512`\" pulumi-lang-java=\"`512`\">`512`</span> characters.\n","type":"string"},"name":{"description":"Specifies the name of the policy assignment.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>.\nChange this parameter will create a new resource.\n","type":"string"},"parameters":{"additionalProperties":{"type":"string"},"description":"Specifies the rule definition of the policy assignment.\n","type":"object"},"period":{"description":"Specifies the period of the policy assignment.\nThe valid values are as follows:\n+ **One_Hour**\n+ **Three_Hours**\n+ **Six_Hours**\n+ **Twelve_Hours**\n+ **TwentyFour_Hours**\n\nMost one of <span pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\">`period`</span> and <span pulumi-lang-nodejs=\"`policyFilter`\" pulumi-lang-dotnet=\"`PolicyFilter`\" pulumi-lang-go=\"`policyFilter`\" pulumi-lang-python=\"`policy_filter`\" pulumi-lang-yaml=\"`policyFilter`\" pulumi-lang-java=\"`policyFilter`\">`policy_filter`</span> can be configured.\n","type":"string"},"policyDefinitionId":{"description":"Specifies the ID of the built-in policy definition.\nThis parameter and <span pulumi-lang-nodejs=\"`customPolicy`\" pulumi-lang-dotnet=\"`CustomPolicy`\" pulumi-lang-go=\"`customPolicy`\" pulumi-lang-python=\"`custom_policy`\" pulumi-lang-yaml=\"`customPolicy`\" pulumi-lang-java=\"`customPolicy`\">`custom_policy`</span> are alternative.\n","type":"string"},"policyFilter":{"$ref":"#/types/opentelekomcloud:index%2FRmsPolicyAssignmentV1PolicyFilter:RmsPolicyAssignmentV1PolicyFilter","description":"Specifies the configuration used to filter resources.\nThe object structure is documented below.\n\n> If the <span pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\">`period`</span> is configured, it means that the evaluation is performed periodically.\nIf the <span pulumi-lang-nodejs=\"`policyFilter`\" pulumi-lang-dotnet=\"`PolicyFilter`\" pulumi-lang-go=\"`policyFilter`\" pulumi-lang-python=\"`policy_filter`\" pulumi-lang-yaml=\"`policyFilter`\" pulumi-lang-java=\"`policyFilter`\">`policy_filter`</span> is configured, it means that the evaluation is performed on the specified resources through\nthe filter. If neither parameter is configured, it means that the evaluation is performed on all resources under the\naccount.\n"},"rmsPolicyAssignmentV1Id":{"description":"The ID of the policy assignment.\n","type":"string"},"status":{"description":"Specifies the expect status of the policy.\nThe valid values are **Enabled** and **Disabled**.\n\n<a name=<span pulumi-lang-nodejs=\"\"rmsPolicyFilter\"\" pulumi-lang-dotnet=\"\"RmsPolicyFilter\"\" pulumi-lang-go=\"\"rmsPolicyFilter\"\" pulumi-lang-python=\"\"rms_policy_filter\"\" pulumi-lang-yaml=\"\"rmsPolicyFilter\"\" pulumi-lang-java=\"\"rmsPolicyFilter\"\">\"rms_policy_filter\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`policyFilter`\" pulumi-lang-dotnet=\"`PolicyFilter`\" pulumi-lang-go=\"`policyFilter`\" pulumi-lang-python=\"`policy_filter`\" pulumi-lang-yaml=\"`policyFilter`\" pulumi-lang-java=\"`policyFilter`\">`policy_filter`</span> block supports:\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FRmsPolicyAssignmentV1Timeouts:RmsPolicyAssignmentV1Timeouts"},"type":{"description":"The type of the policy assignment.\nThe valid values are as follows:\n+ **builtin**\n+ **custom**\n","type":"string"},"updatedAt":{"description":"The latest update time of the policy assignment.\n","type":"string"}},"required":["createdAt","name","rmsPolicyAssignmentV1Id","status","type","updatedAt"],"stateInputs":{"description":"Input properties used for looking up and filtering RmsPolicyAssignmentV1 resources.\n","properties":{"createdAt":{"description":"The creation time of the policy assignment.\n","type":"string"},"customPolicy":{"$ref":"#/types/opentelekomcloud:index%2FRmsPolicyAssignmentV1CustomPolicy:RmsPolicyAssignmentV1CustomPolicy","description":"Specifies the configuration of the custom policy.\nThe object structure is documented below.\n"},"description":{"description":"Specifies the description of the policy assignment, which contain maximum of\n<span pulumi-lang-nodejs=\"`512`\" pulumi-lang-dotnet=\"`512`\" pulumi-lang-go=\"`512`\" pulumi-lang-python=\"`512`\" pulumi-lang-yaml=\"`512`\" pulumi-lang-java=\"`512`\">`512`</span> characters.\n","type":"string"},"name":{"description":"Specifies the name of the policy assignment.\nThe valid length is limited from <span pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\">`1`</span> to <span pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\">`64`</span>.\nChange this parameter will create a new resource.\n","type":"string"},"parameters":{"additionalProperties":{"type":"string"},"description":"Specifies the rule definition of the policy assignment.\n","type":"object"},"period":{"description":"Specifies the period of the policy assignment.\nThe valid values are as follows:\n+ **One_Hour**\n+ **Three_Hours**\n+ **Six_Hours**\n+ **Twelve_Hours**\n+ **TwentyFour_Hours**\n\nMost one of <span pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\">`period`</span> and <span pulumi-lang-nodejs=\"`policyFilter`\" pulumi-lang-dotnet=\"`PolicyFilter`\" pulumi-lang-go=\"`policyFilter`\" pulumi-lang-python=\"`policy_filter`\" pulumi-lang-yaml=\"`policyFilter`\" pulumi-lang-java=\"`policyFilter`\">`policy_filter`</span> can be configured.\n","type":"string"},"policyDefinitionId":{"description":"Specifies the ID of the built-in policy definition.\nThis parameter and <span pulumi-lang-nodejs=\"`customPolicy`\" pulumi-lang-dotnet=\"`CustomPolicy`\" pulumi-lang-go=\"`customPolicy`\" pulumi-lang-python=\"`custom_policy`\" pulumi-lang-yaml=\"`customPolicy`\" pulumi-lang-java=\"`customPolicy`\">`custom_policy`</span> are alternative.\n","type":"string"},"policyFilter":{"$ref":"#/types/opentelekomcloud:index%2FRmsPolicyAssignmentV1PolicyFilter:RmsPolicyAssignmentV1PolicyFilter","description":"Specifies the configuration used to filter resources.\nThe object structure is documented below.\n\n> If the <span pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\">`period`</span> is configured, it means that the evaluation is performed periodically.\nIf the <span pulumi-lang-nodejs=\"`policyFilter`\" pulumi-lang-dotnet=\"`PolicyFilter`\" pulumi-lang-go=\"`policyFilter`\" pulumi-lang-python=\"`policy_filter`\" pulumi-lang-yaml=\"`policyFilter`\" pulumi-lang-java=\"`policyFilter`\">`policy_filter`</span> is configured, it means that the evaluation is performed on the specified resources through\nthe filter. If neither parameter is configured, it means that the evaluation is performed on all resources under the\naccount.\n"},"rmsPolicyAssignmentV1Id":{"description":"The ID of the policy assignment.\n","type":"string"},"status":{"description":"Specifies the expect status of the policy.\nThe valid values are **Enabled** and **Disabled**.\n\n<a name=<span pulumi-lang-nodejs=\"\"rmsPolicyFilter\"\" pulumi-lang-dotnet=\"\"RmsPolicyFilter\"\" pulumi-lang-go=\"\"rmsPolicyFilter\"\" pulumi-lang-python=\"\"rms_policy_filter\"\" pulumi-lang-yaml=\"\"rmsPolicyFilter\"\" pulumi-lang-java=\"\"rmsPolicyFilter\"\">\"rms_policy_filter\"</span>></a>\nThe <span pulumi-lang-nodejs=\"`policyFilter`\" pulumi-lang-dotnet=\"`PolicyFilter`\" pulumi-lang-go=\"`policyFilter`\" pulumi-lang-python=\"`policy_filter`\" pulumi-lang-yaml=\"`policyFilter`\" pulumi-lang-java=\"`policyFilter`\">`policy_filter`</span> block supports:\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FRmsPolicyAssignmentV1Timeouts:RmsPolicyAssignmentV1Timeouts"},"type":{"description":"The type of the policy assignment.\nThe valid values are as follows:\n+ **builtin**\n+ **custom**\n","type":"string"},"updatedAt":{"description":"The latest update time of the policy assignment.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/rmsResourceRecorderV1:RmsResourceRecorderV1":{"description":"Up-to-date reference of API arguments for RMS Resource Recorder you can get at\n[documentation portal](https://docs.otc.t-systems.com/config/api-ref/apis/resource_recorder/index.html#rms-04-0200)\n\nManages a RMS recorder resource within OpenTelekomCloud.\n\n> Only one resource recorder can be configured.\n\n## Example Usage\n\n### Recorder with All Supported Resources\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst topicUrn = config.requireObject<any>(\"topicUrn\");\nconst bucketName = config.requireObject<any>(\"bucketName\");\nconst deliveryRegion = config.requireObject<any>(\"deliveryRegion\");\nconst test = new opentelekomcloud.RmsResourceRecorderV1(\"test\", {\n    agencyName: \"rms_tracker_agency\",\n    selector: {\n        allSupported: true,\n    },\n    obsChannel: {\n        bucket: bucketName,\n        region: deliveryRegion,\n    },\n    smnChannel: {\n        topicUrn: topicUrn,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\ntopic_urn = config.require_object(\"topicUrn\")\nbucket_name = config.require_object(\"bucketName\")\ndelivery_region = config.require_object(\"deliveryRegion\")\ntest = opentelekomcloud.RmsResourceRecorderV1(\"test\",\n    agency_name=\"rms_tracker_agency\",\n    selector={\n        \"all_supported\": True,\n    },\n    obs_channel={\n        \"bucket\": bucket_name,\n        \"region\": delivery_region,\n    },\n    smn_channel={\n        \"topic_urn\": topic_urn,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var topicUrn = config.RequireObject<dynamic>(\"topicUrn\");\n    var bucketName = config.RequireObject<dynamic>(\"bucketName\");\n    var deliveryRegion = config.RequireObject<dynamic>(\"deliveryRegion\");\n    var test = new Opentelekomcloud.RmsResourceRecorderV1(\"test\", new()\n    {\n        AgencyName = \"rms_tracker_agency\",\n        Selector = new Opentelekomcloud.Inputs.RmsResourceRecorderV1SelectorArgs\n        {\n            AllSupported = true,\n        },\n        ObsChannel = new Opentelekomcloud.Inputs.RmsResourceRecorderV1ObsChannelArgs\n        {\n            Bucket = bucketName,\n            Region = deliveryRegion,\n        },\n        SmnChannel = new Opentelekomcloud.Inputs.RmsResourceRecorderV1SmnChannelArgs\n        {\n            TopicUrn = topicUrn,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\ttopicUrn := cfg.RequireObject(\"topicUrn\")\n\t\tbucketName := cfg.RequireObject(\"bucketName\")\n\t\tdeliveryRegion := cfg.RequireObject(\"deliveryRegion\")\n\t\t_, err := opentelekomcloud.NewRmsResourceRecorderV1(ctx, \"test\", &opentelekomcloud.RmsResourceRecorderV1Args{\n\t\t\tAgencyName: pulumi.String(\"rms_tracker_agency\"),\n\t\t\tSelector: &opentelekomcloud.RmsResourceRecorderV1SelectorArgs{\n\t\t\t\tAllSupported: pulumi.Bool(true),\n\t\t\t},\n\t\t\tObsChannel: &opentelekomcloud.RmsResourceRecorderV1ObsChannelArgs{\n\t\t\t\tBucket: pulumi.Any(bucketName),\n\t\t\t\tRegion: pulumi.Any(deliveryRegion),\n\t\t\t},\n\t\t\tSmnChannel: &opentelekomcloud.RmsResourceRecorderV1SmnChannelArgs{\n\t\t\t\tTopicUrn: pulumi.Any(topicUrn),\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.opentelekomcloud.RmsResourceRecorderV1;\nimport com.pulumi.opentelekomcloud.RmsResourceRecorderV1Args;\nimport com.pulumi.opentelekomcloud.inputs.RmsResourceRecorderV1SelectorArgs;\nimport com.pulumi.opentelekomcloud.inputs.RmsResourceRecorderV1ObsChannelArgs;\nimport com.pulumi.opentelekomcloud.inputs.RmsResourceRecorderV1SmnChannelArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var topicUrn = config.get(\"topicUrn\");\n        final var bucketName = config.get(\"bucketName\");\n        final var deliveryRegion = config.get(\"deliveryRegion\");\n        var test = new RmsResourceRecorderV1(\"test\", RmsResourceRecorderV1Args.builder()\n            .agencyName(\"rms_tracker_agency\")\n            .selector(RmsResourceRecorderV1SelectorArgs.builder()\n                .allSupported(true)\n                .build())\n            .obsChannel(RmsResourceRecorderV1ObsChannelArgs.builder()\n                .bucket(bucketName)\n                .region(deliveryRegion)\n                .build())\n            .smnChannel(RmsResourceRecorderV1SmnChannelArgs.builder()\n                .topicUrn(topicUrn)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  topicUrn:\n    type: dynamic\n  bucketName:\n    type: dynamic\n  deliveryRegion:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:RmsResourceRecorderV1\n    properties:\n      agencyName: rms_tracker_agency\n      selector:\n        allSupported: true\n      obsChannel:\n        bucket: ${bucketName}\n        region: ${deliveryRegion}\n      smnChannel:\n        topicUrn: ${topicUrn}\n```\n<!--End PulumiCodeChooser -->\n\n### Recorder with Specified Resources\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst bucketName = config.requireObject<any>(\"bucketName\");\nconst deliveryRegion = config.requireObject<any>(\"deliveryRegion\");\nconst test = new opentelekomcloud.RmsResourceRecorderV1(\"test\", {\n    agencyName: \"rms_tracker_agency\",\n    selector: {\n        allSupported: false,\n        resourceTypes: [\n            \"vpc.vpcs\",\n            \"rds.instances\",\n            \"dms.kafkas\",\n            \"dms.rabbitmqs\",\n            \"dms.queues\",\n        ],\n    },\n    obsChannel: {\n        bucket: bucketName,\n        region: deliveryRegion,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nbucket_name = config.require_object(\"bucketName\")\ndelivery_region = config.require_object(\"deliveryRegion\")\ntest = opentelekomcloud.RmsResourceRecorderV1(\"test\",\n    agency_name=\"rms_tracker_agency\",\n    selector={\n        \"all_supported\": False,\n        \"resource_types\": [\n            \"vpc.vpcs\",\n            \"rds.instances\",\n            \"dms.kafkas\",\n            \"dms.rabbitmqs\",\n            \"dms.queues\",\n        ],\n    },\n    obs_channel={\n        \"bucket\": bucket_name,\n        \"region\": delivery_region,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var bucketName = config.RequireObject<dynamic>(\"bucketName\");\n    var deliveryRegion = config.RequireObject<dynamic>(\"deliveryRegion\");\n    var test = new Opentelekomcloud.RmsResourceRecorderV1(\"test\", new()\n    {\n        AgencyName = \"rms_tracker_agency\",\n        Selector = new Opentelekomcloud.Inputs.RmsResourceRecorderV1SelectorArgs\n        {\n            AllSupported = false,\n            ResourceTypes = new[]\n            {\n                \"vpc.vpcs\",\n                \"rds.instances\",\n                \"dms.kafkas\",\n                \"dms.rabbitmqs\",\n                \"dms.queues\",\n            },\n        },\n        ObsChannel = new Opentelekomcloud.Inputs.RmsResourceRecorderV1ObsChannelArgs\n        {\n            Bucket = bucketName,\n            Region = deliveryRegion,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tbucketName := cfg.RequireObject(\"bucketName\")\n\t\tdeliveryRegion := cfg.RequireObject(\"deliveryRegion\")\n\t\t_, err := opentelekomcloud.NewRmsResourceRecorderV1(ctx, \"test\", &opentelekomcloud.RmsResourceRecorderV1Args{\n\t\t\tAgencyName: pulumi.String(\"rms_tracker_agency\"),\n\t\t\tSelector: &opentelekomcloud.RmsResourceRecorderV1SelectorArgs{\n\t\t\t\tAllSupported: pulumi.Bool(false),\n\t\t\t\tResourceTypes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"vpc.vpcs\"),\n\t\t\t\t\tpulumi.String(\"rds.instances\"),\n\t\t\t\t\tpulumi.String(\"dms.kafkas\"),\n\t\t\t\t\tpulumi.String(\"dms.rabbitmqs\"),\n\t\t\t\t\tpulumi.String(\"dms.queues\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tObsChannel: &opentelekomcloud.RmsResourceRecorderV1ObsChannelArgs{\n\t\t\t\tBucket: pulumi.Any(bucketName),\n\t\t\t\tRegion: pulumi.Any(deliveryRegion),\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.opentelekomcloud.RmsResourceRecorderV1;\nimport com.pulumi.opentelekomcloud.RmsResourceRecorderV1Args;\nimport com.pulumi.opentelekomcloud.inputs.RmsResourceRecorderV1SelectorArgs;\nimport com.pulumi.opentelekomcloud.inputs.RmsResourceRecorderV1ObsChannelArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var bucketName = config.get(\"bucketName\");\n        final var deliveryRegion = config.get(\"deliveryRegion\");\n        var test = new RmsResourceRecorderV1(\"test\", RmsResourceRecorderV1Args.builder()\n            .agencyName(\"rms_tracker_agency\")\n            .selector(RmsResourceRecorderV1SelectorArgs.builder()\n                .allSupported(false)\n                .resourceTypes(                \n                    \"vpc.vpcs\",\n                    \"rds.instances\",\n                    \"dms.kafkas\",\n                    \"dms.rabbitmqs\",\n                    \"dms.queues\")\n                .build())\n            .obsChannel(RmsResourceRecorderV1ObsChannelArgs.builder()\n                .bucket(bucketName)\n                .region(deliveryRegion)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  bucketName:\n    type: dynamic\n  deliveryRegion:\n    type: dynamic\nresources:\n  test:\n    type: opentelekomcloud:RmsResourceRecorderV1\n    properties:\n      agencyName: rms_tracker_agency\n      selector:\n        allSupported: false\n        resourceTypes:\n          - vpc.vpcs\n          - rds.instances\n          - dms.kafkas\n          - dms.rabbitmqs\n          - dms.queues\n      obsChannel:\n        bucket: ${bucketName}\n        region: ${deliveryRegion}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThe recorder can be imported by providing `domain_id` as resource ID, e.g.\n\nbash\n\n```sh\n$ pulumi import opentelekomcloud:index/rmsResourceRecorderV1:RmsResourceRecorderV1 test domain_id\n```\n\n","inputProperties":{"agencyName":{"description":"Specifies the IAM agency name which must include permissions\nfor sending notifications through SMN and for writing data into OBS.\n","type":"string"},"obsChannel":{"$ref":"#/types/opentelekomcloud:index%2FRmsResourceRecorderV1ObsChannel:RmsResourceRecorderV1ObsChannel","description":"Specifies configurations of the OBS bucket used for data dumping.\nThe object structure is documented below.\n"},"rmsResourceRecorderV1Id":{"description":"The resource ID.\n","type":"string"},"selector":{"$ref":"#/types/opentelekomcloud:index%2FRmsResourceRecorderV1Selector:RmsResourceRecorderV1Selector","description":"Specifies configurations of resource selector.\nThe object structure is documented below.\n"},"smnChannel":{"$ref":"#/types/opentelekomcloud:index%2FRmsResourceRecorderV1SmnChannel:RmsResourceRecorderV1SmnChannel","description":"Specifies configurations of the SMN channel used to send notifications.\nThe object structure is documented below.\n\n> At least one <span pulumi-lang-nodejs=\"`obsChannel`\" pulumi-lang-dotnet=\"`ObsChannel`\" pulumi-lang-go=\"`obsChannel`\" pulumi-lang-python=\"`obs_channel`\" pulumi-lang-yaml=\"`obsChannel`\" pulumi-lang-java=\"`obsChannel`\">`obs_channel`</span> or <span pulumi-lang-nodejs=\"`smnChannel`\" pulumi-lang-dotnet=\"`SmnChannel`\" pulumi-lang-go=\"`smnChannel`\" pulumi-lang-python=\"`smn_channel`\" pulumi-lang-yaml=\"`smnChannel`\" pulumi-lang-java=\"`smnChannel`\">`smn_channel`</span> must be configured.\n\n<a name=\"Recorder_SelectorConfigBody\"></a>\nThe <span pulumi-lang-nodejs=\"`selector`\" pulumi-lang-dotnet=\"`Selector`\" pulumi-lang-go=\"`selector`\" pulumi-lang-python=\"`selector`\" pulumi-lang-yaml=\"`selector`\" pulumi-lang-java=\"`selector`\">`selector`</span> block supports:\n"}},"properties":{"agencyName":{"description":"Specifies the IAM agency name which must include permissions\nfor sending notifications through SMN and for writing data into OBS.\n","type":"string"},"obsChannel":{"$ref":"#/types/opentelekomcloud:index%2FRmsResourceRecorderV1ObsChannel:RmsResourceRecorderV1ObsChannel","description":"Specifies configurations of the OBS bucket used for data dumping.\nThe object structure is documented below.\n"},"retentionPeriod":{"description":"The number of days for data storage.\n","type":"number"},"rmsResourceRecorderV1Id":{"description":"The resource ID.\n","type":"string"},"selector":{"$ref":"#/types/opentelekomcloud:index%2FRmsResourceRecorderV1Selector:RmsResourceRecorderV1Selector","description":"Specifies configurations of resource selector.\nThe object structure is documented below.\n"},"smnChannel":{"$ref":"#/types/opentelekomcloud:index%2FRmsResourceRecorderV1SmnChannel:RmsResourceRecorderV1SmnChannel","description":"Specifies configurations of the SMN channel used to send notifications.\nThe object structure is documented below.\n\n> At least one <span pulumi-lang-nodejs=\"`obsChannel`\" pulumi-lang-dotnet=\"`ObsChannel`\" pulumi-lang-go=\"`obsChannel`\" pulumi-lang-python=\"`obs_channel`\" pulumi-lang-yaml=\"`obsChannel`\" pulumi-lang-java=\"`obsChannel`\">`obs_channel`</span> or <span pulumi-lang-nodejs=\"`smnChannel`\" pulumi-lang-dotnet=\"`SmnChannel`\" pulumi-lang-go=\"`smnChannel`\" pulumi-lang-python=\"`smn_channel`\" pulumi-lang-yaml=\"`smnChannel`\" pulumi-lang-java=\"`smnChannel`\">`smn_channel`</span> must be configured.\n\n<a name=\"Recorder_SelectorConfigBody\"></a>\nThe <span pulumi-lang-nodejs=\"`selector`\" pulumi-lang-dotnet=\"`Selector`\" pulumi-lang-go=\"`selector`\" pulumi-lang-python=\"`selector`\" pulumi-lang-yaml=\"`selector`\" pulumi-lang-java=\"`selector`\">`selector`</span> block supports:\n"}},"required":["agencyName","retentionPeriod","rmsResourceRecorderV1Id","selector"],"requiredInputs":["agencyName","selector"],"stateInputs":{"description":"Input properties used for looking up and filtering RmsResourceRecorderV1 resources.\n","properties":{"agencyName":{"description":"Specifies the IAM agency name which must include permissions\nfor sending notifications through SMN and for writing data into OBS.\n","type":"string"},"obsChannel":{"$ref":"#/types/opentelekomcloud:index%2FRmsResourceRecorderV1ObsChannel:RmsResourceRecorderV1ObsChannel","description":"Specifies configurations of the OBS bucket used for data dumping.\nThe object structure is documented below.\n"},"retentionPeriod":{"description":"The number of days for data storage.\n","type":"number"},"rmsResourceRecorderV1Id":{"description":"The resource ID.\n","type":"string"},"selector":{"$ref":"#/types/opentelekomcloud:index%2FRmsResourceRecorderV1Selector:RmsResourceRecorderV1Selector","description":"Specifies configurations of resource selector.\nThe object structure is documented below.\n"},"smnChannel":{"$ref":"#/types/opentelekomcloud:index%2FRmsResourceRecorderV1SmnChannel:RmsResourceRecorderV1SmnChannel","description":"Specifies configurations of the SMN channel used to send notifications.\nThe object structure is documented below.\n\n> At least one <span pulumi-lang-nodejs=\"`obsChannel`\" pulumi-lang-dotnet=\"`ObsChannel`\" pulumi-lang-go=\"`obsChannel`\" pulumi-lang-python=\"`obs_channel`\" pulumi-lang-yaml=\"`obsChannel`\" pulumi-lang-java=\"`obsChannel`\">`obs_channel`</span> or <span pulumi-lang-nodejs=\"`smnChannel`\" pulumi-lang-dotnet=\"`SmnChannel`\" pulumi-lang-go=\"`smnChannel`\" pulumi-lang-python=\"`smn_channel`\" pulumi-lang-yaml=\"`smnChannel`\" pulumi-lang-java=\"`smnChannel`\">`smn_channel`</span> must be configured.\n\n<a name=\"Recorder_SelectorConfigBody\"></a>\nThe <span pulumi-lang-nodejs=\"`selector`\" pulumi-lang-dotnet=\"`Selector`\" pulumi-lang-go=\"`selector`\" pulumi-lang-python=\"`selector`\" pulumi-lang-yaml=\"`selector`\" pulumi-lang-java=\"`selector`\">`selector`</span> block supports:\n"}},"type":"object"},"type":"object"},"opentelekomcloud:index/rtsSoftwareConfigV1:RtsSoftwareConfigV1":{"description":"Up-to-date reference of API arguments for RTS config you can get at\n[documentation portal](https://docs.otc.t-systems.com/resource-template-service/api-ref/apis/software_configuration_management)\n\nProvides an RTS software config resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst configName = config.requireObject<any>(\"configName\");\nconst myconfig = new opentelekomcloud.RtsSoftwareConfigV1(\"myconfig\", {name: configName});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nconfig_name = config.require_object(\"configName\")\nmyconfig = opentelekomcloud.RtsSoftwareConfigV1(\"myconfig\", name=config_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var configName = config.RequireObject<dynamic>(\"configName\");\n    var myconfig = new Opentelekomcloud.RtsSoftwareConfigV1(\"myconfig\", new()\n    {\n        Name = configName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tconfigName := cfg.RequireObject(\"configName\")\n\t\t_, err := opentelekomcloud.NewRtsSoftwareConfigV1(ctx, \"myconfig\", &opentelekomcloud.RtsSoftwareConfigV1Args{\n\t\t\tName: pulumi.Any(configName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.RtsSoftwareConfigV1;\nimport com.pulumi.opentelekomcloud.RtsSoftwareConfigV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var configName = config.get(\"configName\");\n        var myconfig = new RtsSoftwareConfigV1(\"myconfig\", RtsSoftwareConfigV1Args.builder()\n            .name(configName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  configName:\n    type: dynamic\nresources:\n  myconfig:\n    type: opentelekomcloud:RtsSoftwareConfigV1\n    properties:\n      name: ${configName}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nSoftware Config can be imported using the `config id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/rtsSoftwareConfigV1:RtsSoftwareConfigV1 opentelekomcloud_rts_software_config_v1 4779ab1c-7c1a-44b1-a02e-93dfc361b32d\n```\n\n","inputProperties":{"config":{"description":"The software configuration code.\n","type":"string"},"group":{"description":"The namespace that groups this software configuration by when it is delivered to a server.\n","type":"string"},"inputValues":{"description":"A list of software configuration inputs.\n","items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array"},"name":{"description":"The name of the software configuration.\n","type":"string"},"options":{"additionalProperties":{"type":"string"},"description":"The software configuration options.\n","type":"object"},"outputValues":{"description":"A list of software configuration outputs.\n","items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array"},"region":{"type":"string"},"rtsSoftwareConfigV1Id":{"description":"The id of the software config.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FRtsSoftwareConfigV1Timeouts:RtsSoftwareConfigV1Timeouts"}},"properties":{"config":{"description":"The software configuration code.\n","type":"string"},"group":{"description":"The namespace that groups this software configuration by when it is delivered to a server.\n","type":"string"},"inputValues":{"description":"A list of software configuration inputs.\n","items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array"},"name":{"description":"The name of the software configuration.\n","type":"string"},"options":{"additionalProperties":{"type":"string"},"description":"The software configuration options.\n","type":"object"},"outputValues":{"description":"A list of software configuration outputs.\n","items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array"},"region":{"type":"string"},"rtsSoftwareConfigV1Id":{"description":"The id of the software config.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FRtsSoftwareConfigV1Timeouts:RtsSoftwareConfigV1Timeouts"}},"required":["name","region","rtsSoftwareConfigV1Id"],"stateInputs":{"description":"Input properties used for looking up and filtering RtsSoftwareConfigV1 resources.\n","properties":{"config":{"description":"The software configuration code.\n","type":"string"},"group":{"description":"The namespace that groups this software configuration by when it is delivered to a server.\n","type":"string"},"inputValues":{"description":"A list of software configuration inputs.\n","items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array"},"name":{"description":"The name of the software configuration.\n","type":"string"},"options":{"additionalProperties":{"type":"string"},"description":"The software configuration options.\n","type":"object"},"outputValues":{"description":"A list of software configuration outputs.\n","items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array"},"region":{"type":"string"},"rtsSoftwareConfigV1Id":{"description":"The id of the software config.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FRtsSoftwareConfigV1Timeouts:RtsSoftwareConfigV1Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/rtsSoftwareDeploymentV1:RtsSoftwareDeploymentV1":{"description":"Up-to-date reference of API arguments for RTS deployment you can get at\n[documentation portal](https://docs.otc.t-systems.com/resource-template-service/api-ref/apis/software_configuration_management)\n\nProvides an RTS software deployment resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst configId = config.requireObject<any>(\"configId\");\nconst serverId = config.requireObject<any>(\"serverId\");\nconst mydeployment = new opentelekomcloud.RtsSoftwareDeploymentV1(\"mydeployment\", {\n    configId: configId,\n    serverId: serverId,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nconfig_id = config.require_object(\"configId\")\nserver_id = config.require_object(\"serverId\")\nmydeployment = opentelekomcloud.RtsSoftwareDeploymentV1(\"mydeployment\",\n    config_id=config_id,\n    server_id=server_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var configId = config.RequireObject<dynamic>(\"configId\");\n    var serverId = config.RequireObject<dynamic>(\"serverId\");\n    var mydeployment = new Opentelekomcloud.RtsSoftwareDeploymentV1(\"mydeployment\", new()\n    {\n        ConfigId = configId,\n        ServerId = serverId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tconfigId := cfg.RequireObject(\"configId\")\n\t\tserverId := cfg.RequireObject(\"serverId\")\n\t\t_, err := opentelekomcloud.NewRtsSoftwareDeploymentV1(ctx, \"mydeployment\", &opentelekomcloud.RtsSoftwareDeploymentV1Args{\n\t\t\tConfigId: pulumi.Any(configId),\n\t\t\tServerId: pulumi.Any(serverId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.RtsSoftwareDeploymentV1;\nimport com.pulumi.opentelekomcloud.RtsSoftwareDeploymentV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var configId = config.get(\"configId\");\n        final var serverId = config.get(\"serverId\");\n        var mydeployment = new RtsSoftwareDeploymentV1(\"mydeployment\", RtsSoftwareDeploymentV1Args.builder()\n            .configId(configId)\n            .serverId(serverId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  configId:\n    type: dynamic\n  serverId:\n    type: dynamic\nresources:\n  mydeployment:\n    type: opentelekomcloud:RtsSoftwareDeploymentV1\n    properties:\n      configId: ${configId}\n      serverId: ${serverId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nSoftware deployment can be imported using the `deployment id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/rtsSoftwareDeploymentV1:RtsSoftwareDeploymentV1 opentelekomcloud_rts_software_deployment_v1 4779ab1c-7c1a-44b1-a02e-93dfc361b32d\n```\n\n","inputProperties":{"action":{"description":"The stack action that triggers this deployment resource.\n","type":"string"},"configId":{"description":"The id of the software configuration resource running on an instance.\n","type":"string"},"inputValues":{"additionalProperties":{"type":"string"},"description":"The input data stored in the form of a key-value pair.\n","type":"object"},"outputValues":{"additionalProperties":{"type":"string"},"description":"The output data stored in the form of a key-value pair.\n","type":"object"},"region":{"type":"string"},"rtsSoftwareDeploymentV1Id":{"description":"The id of the software deployment.\n","type":"string"},"serverId":{"description":"The id of the instance.\n","type":"string"},"status":{"description":"The current status of deployment resources.\n","type":"string"},"statusReason":{"description":"The cause of the current deployment resource status.\n","type":"string"},"tenantId":{"description":"The id of the authenticated tenant who can perform operations on the deployment resources.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FRtsSoftwareDeploymentV1Timeouts:RtsSoftwareDeploymentV1Timeouts"}},"properties":{"action":{"description":"The stack action that triggers this deployment resource.\n","type":"string"},"configId":{"description":"The id of the software configuration resource running on an instance.\n","type":"string"},"inputValues":{"additionalProperties":{"type":"string"},"description":"The input data stored in the form of a key-value pair.\n","type":"object"},"outputValues":{"additionalProperties":{"type":"string"},"description":"The output data stored in the form of a key-value pair.\n","type":"object"},"region":{"type":"string"},"rtsSoftwareDeploymentV1Id":{"description":"The id of the software deployment.\n","type":"string"},"serverId":{"description":"The id of the instance.\n","type":"string"},"status":{"description":"The current status of deployment resources.\n","type":"string"},"statusReason":{"description":"The cause of the current deployment resource status.\n","type":"string"},"tenantId":{"description":"The id of the authenticated tenant who can perform operations on the deployment resources.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FRtsSoftwareDeploymentV1Timeouts:RtsSoftwareDeploymentV1Timeouts"}},"required":["action","configId","inputValues","outputValues","region","rtsSoftwareDeploymentV1Id","serverId","status","statusReason"],"requiredInputs":["configId","serverId"],"stateInputs":{"description":"Input properties used for looking up and filtering RtsSoftwareDeploymentV1 resources.\n","properties":{"action":{"description":"The stack action that triggers this deployment resource.\n","type":"string"},"configId":{"description":"The id of the software configuration resource running on an instance.\n","type":"string"},"inputValues":{"additionalProperties":{"type":"string"},"description":"The input data stored in the form of a key-value pair.\n","type":"object"},"outputValues":{"additionalProperties":{"type":"string"},"description":"The output data stored in the form of a key-value pair.\n","type":"object"},"region":{"type":"string"},"rtsSoftwareDeploymentV1Id":{"description":"The id of the software deployment.\n","type":"string"},"serverId":{"description":"The id of the instance.\n","type":"string"},"status":{"description":"The current status of deployment resources.\n","type":"string"},"statusReason":{"description":"The cause of the current deployment resource status.\n","type":"string"},"tenantId":{"description":"The id of the authenticated tenant who can perform operations on the deployment resources.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FRtsSoftwareDeploymentV1Timeouts:RtsSoftwareDeploymentV1Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/rtsStackV1:RtsStackV1":{"description":"Up-to-date reference of API arguments for RTS stack you can get at\n[documentation portal](https://docs.otc.t-systems.com/resource-template-service/api-ref/apis/stack_management)\n\nProvides an OpenTelekomCloud Stack.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst config = new pulumi.Config();\nconst name = config.requireObject<any>(\"name\");\nconst networkId = config.requireObject<any>(\"networkId\");\nconst instanceType = config.requireObject<any>(\"instanceType\");\nconst imageId = config.requireObject<any>(\"imageId\");\nconst mystack = new opentelekomcloud.RtsStackV1(\"mystack\", {\n    name: name,\n    disableRollback: true,\n    timeoutMins: 60,\n    parameters: {\n        network_id: networkId,\n        instance_type: instanceType,\n        image_id: imageId,\n    },\n    templateBody: `  {\n    \\\\\"heat_template_version\\\\\": \\\\\"2016-04-08\\\\\",\n    \\\\\"description\\\\\": \\\\\"Simple template to deploy\\\\\",\n    \\\\\"parameters\\\\\": {\n        \\\\\"image_id\\\\\": {\n            \\\\\"type\\\\\": \\\\\"string\\\\\",\n            \\\\\"description\\\\\": \\\\\"Image to be used for compute instance\\\\\",\n            \\\\\"label\\\\\": \\\\\"Image ID\\\\\"\n        },\n        \\\\\"network_id\\\\\": {\n            \\\\\"type\\\\\": \\\\\"string\\\\\",\n            \\\\\"description\\\\\": \\\\\"The Network to be used\\\\\",\n            \\\\\"label\\\\\": \\\\\"Network UUID\\\\\"\n        },\n        \\\\\"instance_type\\\\\": {\n            \\\\\"type\\\\\": \\\\\"string\\\\\",\n            \\\\\"description\\\\\": \\\\\"Type of instance (Flavor) to be used\\\\\",\n            \\\\\"label\\\\\": \\\\\"Instance Type\\\\\"\n        }\n    },\n    \\\\\"resources\\\\\": {\n        \\\\\"my_instance\\\\\": {\n            \\\\\"type\\\\\": \\\\\"OS::Nova::Server\\\\\",\n            \\\\\"properties\\\\\": {\n                \\\\\"image\\\\\": {\n                    \\\\\"get_param\\\\\": \\\\\"image_id\\\\\"\n                },\n                \\\\\"flavor\\\\\": {\n                    \\\\\"get_param\\\\\": \\\\\"instance_type\\\\\"\n                },\n                \\\\\"networks\\\\\": [{\n                    \\\\\"network\\\\\": {\n                        \\\\\"get_param\\\\\": \\\\\"network_id\\\\\"\n                    }\n                }]\n            }\n        }\n    },\n    \\\\\"outputs\\\\\": {\n      \\\\\"InstanceIP\\\\\": {\n        \\\\\"description\\\\\": \\\\\"Instance IP\\\\\",\n        \\\\\"value\\\\\": { \\\\\"get_attr\\\\\": [\\\\\"my_instance\\\\\", \\\\\"first_address\\\\\"] }\n      }\n    }\n  }\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nconfig = pulumi.Config()\nname = config.require_object(\"name\")\nnetwork_id = config.require_object(\"networkId\")\ninstance_type = config.require_object(\"instanceType\")\nimage_id = config.require_object(\"imageId\")\nmystack = opentelekomcloud.RtsStackV1(\"mystack\",\n    name=name,\n    disable_rollback=True,\n    timeout_mins=60,\n    parameters={\n        \"network_id\": network_id,\n        \"instance_type\": instance_type,\n        \"image_id\": image_id,\n    },\n    template_body=\"\"\"  {\n    \\\"heat_template_version\\\": \\\"2016-04-08\\\",\n    \\\"description\\\": \\\"Simple template to deploy\\\",\n    \\\"parameters\\\": {\n        \\\"image_id\\\": {\n            \\\"type\\\": \\\"string\\\",\n            \\\"description\\\": \\\"Image to be used for compute instance\\\",\n            \\\"label\\\": \\\"Image ID\\\"\n        },\n        \\\"network_id\\\": {\n            \\\"type\\\": \\\"string\\\",\n            \\\"description\\\": \\\"The Network to be used\\\",\n            \\\"label\\\": \\\"Network UUID\\\"\n        },\n        \\\"instance_type\\\": {\n            \\\"type\\\": \\\"string\\\",\n            \\\"description\\\": \\\"Type of instance (Flavor) to be used\\\",\n            \\\"label\\\": \\\"Instance Type\\\"\n        }\n    },\n    \\\"resources\\\": {\n        \\\"my_instance\\\": {\n            \\\"type\\\": \\\"OS::Nova::Server\\\",\n            \\\"properties\\\": {\n                \\\"image\\\": {\n                    \\\"get_param\\\": \\\"image_id\\\"\n                },\n                \\\"flavor\\\": {\n                    \\\"get_param\\\": \\\"instance_type\\\"\n                },\n                \\\"networks\\\": [{\n                    \\\"network\\\": {\n                        \\\"get_param\\\": \\\"network_id\\\"\n                    }\n                }]\n            }\n        }\n    },\n    \\\"outputs\\\": {\n      \\\"InstanceIP\\\": {\n        \\\"description\\\": \\\"Instance IP\\\",\n        \\\"value\\\": { \\\"get_attr\\\": [\\\"my_instance\\\", \\\"first_address\\\"] }\n      }\n    }\n  }\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var name = config.RequireObject<dynamic>(\"name\");\n    var networkId = config.RequireObject<dynamic>(\"networkId\");\n    var instanceType = config.RequireObject<dynamic>(\"instanceType\");\n    var imageId = config.RequireObject<dynamic>(\"imageId\");\n    var mystack = new Opentelekomcloud.RtsStackV1(\"mystack\", new()\n    {\n        Name = name,\n        DisableRollback = true,\n        TimeoutMins = 60,\n        Parameters = \n        {\n            { \"network_id\", networkId },\n            { \"instance_type\", instanceType },\n            { \"image_id\", imageId },\n        },\n        TemplateBody = @\"  {\n    \\\"\"heat_template_version\\\"\": \\\"\"2016-04-08\\\"\",\n    \\\"\"description\\\"\": \\\"\"Simple template to deploy\\\"\",\n    \\\"\"parameters\\\"\": {\n        \\\"\"image_id\\\"\": {\n            \\\"\"type\\\"\": \\\"\"string\\\"\",\n            \\\"\"description\\\"\": \\\"\"Image to be used for compute instance\\\"\",\n            \\\"\"label\\\"\": \\\"\"Image ID\\\"\"\n        },\n        \\\"\"network_id\\\"\": {\n            \\\"\"type\\\"\": \\\"\"string\\\"\",\n            \\\"\"description\\\"\": \\\"\"The Network to be used\\\"\",\n            \\\"\"label\\\"\": \\\"\"Network UUID\\\"\"\n        },\n        \\\"\"instance_type\\\"\": {\n            \\\"\"type\\\"\": \\\"\"string\\\"\",\n            \\\"\"description\\\"\": \\\"\"Type of instance (Flavor) to be used\\\"\",\n            \\\"\"label\\\"\": \\\"\"Instance Type\\\"\"\n        }\n    },\n    \\\"\"resources\\\"\": {\n        \\\"\"my_instance\\\"\": {\n            \\\"\"type\\\"\": \\\"\"OS::Nova::Server\\\"\",\n            \\\"\"properties\\\"\": {\n                \\\"\"image\\\"\": {\n                    \\\"\"get_param\\\"\": \\\"\"image_id\\\"\"\n                },\n                \\\"\"flavor\\\"\": {\n                    \\\"\"get_param\\\"\": \\\"\"instance_type\\\"\"\n                },\n                \\\"\"networks\\\"\": [{\n                    \\\"\"network\\\"\": {\n                        \\\"\"get_param\\\"\": \\\"\"network_id\\\"\"\n                    }\n                }]\n            }\n        }\n    },\n    \\\"\"outputs\\\"\": {\n      \\\"\"InstanceIP\\\"\": {\n        \\\"\"description\\\"\": \\\"\"Instance IP\\\"\",\n        \\\"\"value\\\"\": { \\\"\"get_attr\\\"\": [\\\"\"my_instance\\\"\", \\\"\"first_address\\\"\"] }\n      }\n    }\n  }\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := cfg.RequireObject(\"name\")\n\t\tnetworkId := cfg.RequireObject(\"networkId\")\n\t\tinstanceType := cfg.RequireObject(\"instanceType\")\n\t\timageId := cfg.RequireObject(\"imageId\")\n\t\t_, err := opentelekomcloud.NewRtsStackV1(ctx, \"mystack\", &opentelekomcloud.RtsStackV1Args{\n\t\t\tName:            pulumi.Any(name),\n\t\t\tDisableRollback: pulumi.Bool(true),\n\t\t\tTimeoutMins:     pulumi.Float64(60),\n\t\t\tParameters: pulumi.StringMap{\n\t\t\t\t\"network_id\":    pulumi.Any(networkId),\n\t\t\t\t\"instance_type\": pulumi.Any(instanceType),\n\t\t\t\t\"image_id\":      pulumi.Any(imageId),\n\t\t\t},\n\t\t\tTemplateBody: pulumi.String(`  {\n    \\\"heat_template_version\\\": \\\"2016-04-08\\\",\n    \\\"description\\\": \\\"Simple template to deploy\\\",\n    \\\"parameters\\\": {\n        \\\"image_id\\\": {\n            \\\"type\\\": \\\"string\\\",\n            \\\"description\\\": \\\"Image to be used for compute instance\\\",\n            \\\"label\\\": \\\"Image ID\\\"\n        },\n        \\\"network_id\\\": {\n            \\\"type\\\": \\\"string\\\",\n            \\\"description\\\": \\\"The Network to be used\\\",\n            \\\"label\\\": \\\"Network UUID\\\"\n        },\n        \\\"instance_type\\\": {\n            \\\"type\\\": \\\"string\\\",\n            \\\"description\\\": \\\"Type of instance (Flavor) to be used\\\",\n            \\\"label\\\": \\\"Instance Type\\\"\n        }\n    },\n    \\\"resources\\\": {\n        \\\"my_instance\\\": {\n            \\\"type\\\": \\\"OS::Nova::Server\\\",\n            \\\"properties\\\": {\n                \\\"image\\\": {\n                    \\\"get_param\\\": \\\"image_id\\\"\n                },\n                \\\"flavor\\\": {\n                    \\\"get_param\\\": \\\"instance_type\\\"\n                },\n                \\\"networks\\\": [{\n                    \\\"network\\\": {\n                        \\\"get_param\\\": \\\"network_id\\\"\n                    }\n                }]\n            }\n        }\n    },\n    \\\"outputs\\\": {\n      \\\"InstanceIP\\\": {\n        \\\"description\\\": \\\"Instance IP\\\",\n        \\\"value\\\": { \\\"get_attr\\\": [\\\"my_instance\\\", \\\"first_address\\\"] }\n      }\n    }\n  }\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.RtsStackV1;\nimport com.pulumi.opentelekomcloud.RtsStackV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\");\n        final var networkId = config.get(\"networkId\");\n        final var instanceType = config.get(\"instanceType\");\n        final var imageId = config.get(\"imageId\");\n        var mystack = new RtsStackV1(\"mystack\", RtsStackV1Args.builder()\n            .name(name)\n            .disableRollback(true)\n            .timeoutMins(60.0)\n            .parameters(Map.ofEntries(\n                Map.entry(\"network_id\", networkId),\n                Map.entry(\"instance_type\", instanceType),\n                Map.entry(\"image_id\", imageId)\n            ))\n            .templateBody(\"\"\"\n  {\n    \\\"heat_template_version\\\": \\\"2016-04-08\\\",\n    \\\"description\\\": \\\"Simple template to deploy\\\",\n    \\\"parameters\\\": {\n        \\\"image_id\\\": {\n            \\\"type\\\": \\\"string\\\",\n            \\\"description\\\": \\\"Image to be used for compute instance\\\",\n            \\\"label\\\": \\\"Image ID\\\"\n        },\n        \\\"network_id\\\": {\n            \\\"type\\\": \\\"string\\\",\n            \\\"description\\\": \\\"The Network to be used\\\",\n            \\\"label\\\": \\\"Network UUID\\\"\n        },\n        \\\"instance_type\\\": {\n            \\\"type\\\": \\\"string\\\",\n            \\\"description\\\": \\\"Type of instance (Flavor) to be used\\\",\n            \\\"label\\\": \\\"Instance Type\\\"\n        }\n    },\n    \\\"resources\\\": {\n        \\\"my_instance\\\": {\n            \\\"type\\\": \\\"OS::Nova::Server\\\",\n            \\\"properties\\\": {\n                \\\"image\\\": {\n                    \\\"get_param\\\": \\\"image_id\\\"\n                },\n                \\\"flavor\\\": {\n                    \\\"get_param\\\": \\\"instance_type\\\"\n                },\n                \\\"networks\\\": [{\n                    \\\"network\\\": {\n                        \\\"get_param\\\": \\\"network_id\\\"\n                    }\n                }]\n            }\n        }\n    },\n    \\\"outputs\\\": {\n      \\\"InstanceIP\\\": {\n        \\\"description\\\": \\\"Instance IP\\\",\n        \\\"value\\\": { \\\"get_attr\\\": [\\\"my_instance\\\", \\\"first_address\\\"] }\n      }\n    }\n  }\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: dynamic\n  networkId:\n    type: dynamic\n  instanceType:\n    type: dynamic\n  imageId:\n    type: dynamic\nresources:\n  mystack:\n    type: opentelekomcloud:RtsStackV1\n    properties:\n      name: ${name}\n      disableRollback: true\n      timeoutMins: 60\n      parameters:\n        network_id: ${networkId}\n        instance_type: ${instanceType}\n        image_id: ${imageId}\n      templateBody: |2\n          {\n            \\\"heat_template_version\\\": \\\"2016-04-08\\\",\n            \\\"description\\\": \\\"Simple template to deploy\\\",\n            \\\"parameters\\\": {\n                \\\"image_id\\\": {\n                    \\\"type\\\": \\\"string\\\",\n                    \\\"description\\\": \\\"Image to be used for compute instance\\\",\n                    \\\"label\\\": \\\"Image ID\\\"\n                },\n                \\\"network_id\\\": {\n                    \\\"type\\\": \\\"string\\\",\n                    \\\"description\\\": \\\"The Network to be used\\\",\n                    \\\"label\\\": \\\"Network UUID\\\"\n                },\n                \\\"instance_type\\\": {\n                    \\\"type\\\": \\\"string\\\",\n                    \\\"description\\\": \\\"Type of instance (Flavor) to be used\\\",\n                    \\\"label\\\": \\\"Instance Type\\\"\n                }\n            },\n            \\\"resources\\\": {\n                \\\"my_instance\\\": {\n                    \\\"type\\\": \\\"OS::Nova::Server\\\",\n                    \\\"properties\\\": {\n                        \\\"image\\\": {\n                            \\\"get_param\\\": \\\"image_id\\\"\n                        },\n                        \\\"flavor\\\": {\n                            \\\"get_param\\\": \\\"instance_type\\\"\n                        },\n                        \\\"networks\\\": [{\n                            \\\"network\\\": {\n                                \\\"get_param\\\": \\\"network_id\\\"\n                            }\n                        }]\n                    }\n                }\n            },\n            \\\"outputs\\\": {\n              \\\"InstanceIP\\\": {\n                \\\"description\\\": \\\"Instance IP\\\",\n                \\\"value\\\": { \\\"get_attr\\\": [\\\"my_instance\\\", \\\"first_address\\\"] }\n              }\n            }\n          }\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nRTS Stacks can be imported using the `name`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/rtsStackV1:RtsStackV1 mystack rts-stack\n```\n\n","inputProperties":{"disableRollback":{"description":"Set to true to disable rollback of the stack if stack creation failed.\n","type":"boolean"},"environment":{"description":"Tthe environment information about the stack.\n","type":"string"},"files":{"additionalProperties":{"type":"string"},"description":"Files used in the environment.\n","type":"object"},"name":{"description":"A unique name for the stack. The value must meet the regular expression rule (`^[a-zA-Z][a-zA-Z0-9_.-]{0,254}$`). Changing this creates a new stack.\n","type":"string"},"parameters":{"additionalProperties":{"type":"string"},"description":"A list of Parameter structures that specify input parameters for the stack.\n","type":"object"},"region":{"type":"string"},"rtsStackV1Id":{"type":"string"},"templateBody":{"description":"Structure containing the template body. The template content must use the yaml syntax.\n","type":"string"},"templateUrl":{"description":"Location of a file containing the template body.\n","type":"string"},"timeoutMins":{"description":"Specifies the timeout duration.\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FRtsStackV1Timeouts:RtsStackV1Timeouts"}},"properties":{"capabilities":{"description":"List of stack capabilities for stack.\n","items":{"type":"string"},"type":"array"},"disableRollback":{"description":"Set to true to disable rollback of the stack if stack creation failed.\n","type":"boolean"},"environment":{"description":"Tthe environment information about the stack.\n","type":"string"},"files":{"additionalProperties":{"type":"string"},"description":"Files used in the environment.\n","type":"object"},"name":{"description":"A unique name for the stack. The value must meet the regular expression rule (`^[a-zA-Z][a-zA-Z0-9_.-]{0,254}$`). Changing this creates a new stack.\n","type":"string"},"notificationTopics":{"description":"List of notification topics for stack.\n","items":{"type":"string"},"type":"array"},"outputs":{"additionalProperties":{"type":"string"},"description":"A map of outputs from the stack.\n","type":"object"},"parameters":{"additionalProperties":{"type":"string"},"description":"A list of Parameter structures that specify input parameters for the stack.\n","type":"object"},"region":{"type":"string"},"rtsStackV1Id":{"type":"string"},"status":{"description":"Specifies the stack status.\n","type":"string"},"statusReason":{"type":"string"},"templateBody":{"description":"Structure containing the template body. The template content must use the yaml syntax.\n","type":"string"},"templateUrl":{"description":"Location of a file containing the template body.\n","type":"string"},"timeoutMins":{"description":"Specifies the timeout duration.\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FRtsStackV1Timeouts:RtsStackV1Timeouts"}},"required":["capabilities","disableRollback","name","notificationTopics","outputs","parameters","region","rtsStackV1Id","status","statusReason","templateBody","timeoutMins"],"stateInputs":{"description":"Input properties used for looking up and filtering RtsStackV1 resources.\n","properties":{"capabilities":{"description":"List of stack capabilities for stack.\n","items":{"type":"string"},"type":"array"},"disableRollback":{"description":"Set to true to disable rollback of the stack if stack creation failed.\n","type":"boolean"},"environment":{"description":"Tthe environment information about the stack.\n","type":"string"},"files":{"additionalProperties":{"type":"string"},"description":"Files used in the environment.\n","type":"object"},"name":{"description":"A unique name for the stack. The value must meet the regular expression rule (`^[a-zA-Z][a-zA-Z0-9_.-]{0,254}$`). Changing this creates a new stack.\n","type":"string"},"notificationTopics":{"description":"List of notification topics for stack.\n","items":{"type":"string"},"type":"array"},"outputs":{"additionalProperties":{"type":"string"},"description":"A map of outputs from the stack.\n","type":"object"},"parameters":{"additionalProperties":{"type":"string"},"description":"A list of Parameter structures that specify input parameters for the stack.\n","type":"object"},"region":{"type":"string"},"rtsStackV1Id":{"type":"string"},"status":{"description":"Specifies the stack status.\n","type":"string"},"statusReason":{"type":"string"},"templateBody":{"description":"Structure containing the template body. The template content must use the yaml syntax.\n","type":"string"},"templateUrl":{"description":"Location of a file containing the template body.\n","type":"string"},"timeoutMins":{"description":"Specifies the timeout duration.\n","type":"number"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FRtsStackV1Timeouts:RtsStackV1Timeouts"}},"type":"object"},"type":"object"},"opentelekomcloud:index/s3Bucket:S3Bucket":{"description":"Provides a S3 bucket resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Private Bucket w/ Tags\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst bucket = new opentelekomcloud.S3Bucket(\"bucket\", {\n    bucket: \"my-tf-test-bucket\",\n    acl: \"private\",\n    tags: {\n        Name: \"My bucket\",\n        Environment: \"Dev\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nbucket = opentelekomcloud.S3Bucket(\"bucket\",\n    bucket=\"my-tf-test-bucket\",\n    acl=\"private\",\n    tags={\n        \"Name\": \"My bucket\",\n        \"Environment\": \"Dev\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var bucket = new Opentelekomcloud.S3Bucket(\"bucket\", new()\n    {\n        Bucket = \"my-tf-test-bucket\",\n        Acl = \"private\",\n        Tags = \n        {\n            { \"Name\", \"My bucket\" },\n            { \"Environment\", \"Dev\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewS3Bucket(ctx, \"bucket\", &opentelekomcloud.S3BucketArgs{\n\t\t\tBucket: pulumi.String(\"my-tf-test-bucket\"),\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\":        pulumi.String(\"My bucket\"),\n\t\t\t\t\"Environment\": pulumi.String(\"Dev\"),\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.opentelekomcloud.S3Bucket;\nimport com.pulumi.opentelekomcloud.S3BucketArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var bucket = new S3Bucket(\"bucket\", S3BucketArgs.builder()\n            .bucket(\"my-tf-test-bucket\")\n            .acl(\"private\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Name\", \"My bucket\"),\n                Map.entry(\"Environment\", \"Dev\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  bucket:\n    type: opentelekomcloud:S3Bucket\n    properties:\n      bucket: my-tf-test-bucket\n      acl: private\n      tags:\n        Name: My bucket\n        Environment: Dev\n```\n<!--End PulumiCodeChooser -->\n\n### Using CORS\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst bucket = new opentelekomcloud.S3Bucket(\"bucket\", {\n    bucket: \"s3-website-test.hashicorp.com\",\n    acl: \"public-read\",\n    corsRules: [{\n        allowedHeaders: [\"*\"],\n        allowedMethods: [\n            \"PUT\",\n            \"POST\",\n        ],\n        allowedOrigins: [\"https://s3-website-test.hashicorp.com\"],\n        exposeHeaders: [\"ETag\"],\n        maxAgeSeconds: 3000,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nbucket = opentelekomcloud.S3Bucket(\"bucket\",\n    bucket=\"s3-website-test.hashicorp.com\",\n    acl=\"public-read\",\n    cors_rules=[{\n        \"allowed_headers\": [\"*\"],\n        \"allowed_methods\": [\n            \"PUT\",\n            \"POST\",\n        ],\n        \"allowed_origins\": [\"https://s3-website-test.hashicorp.com\"],\n        \"expose_headers\": [\"ETag\"],\n        \"max_age_seconds\": 3000,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var bucket = new Opentelekomcloud.S3Bucket(\"bucket\", new()\n    {\n        Bucket = \"s3-website-test.hashicorp.com\",\n        Acl = \"public-read\",\n        CorsRules = new[]\n        {\n            new Opentelekomcloud.Inputs.S3BucketCorsRuleArgs\n            {\n                AllowedHeaders = new[]\n                {\n                    \"*\",\n                },\n                AllowedMethods = new[]\n                {\n                    \"PUT\",\n                    \"POST\",\n                },\n                AllowedOrigins = new[]\n                {\n                    \"https://s3-website-test.hashicorp.com\",\n                },\n                ExposeHeaders = new[]\n                {\n                    \"ETag\",\n                },\n                MaxAgeSeconds = 3000,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewS3Bucket(ctx, \"bucket\", &opentelekomcloud.S3BucketArgs{\n\t\t\tBucket: pulumi.String(\"s3-website-test.hashicorp.com\"),\n\t\t\tAcl:    pulumi.String(\"public-read\"),\n\t\t\tCorsRules: opentelekomcloud.S3BucketCorsRuleArray{\n\t\t\t\t&opentelekomcloud.S3BucketCorsRuleArgs{\n\t\t\t\t\tAllowedHeaders: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"*\"),\n\t\t\t\t\t},\n\t\t\t\t\tAllowedMethods: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"PUT\"),\n\t\t\t\t\t\tpulumi.String(\"POST\"),\n\t\t\t\t\t},\n\t\t\t\t\tAllowedOrigins: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"https://s3-website-test.hashicorp.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tExposeHeaders: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ETag\"),\n\t\t\t\t\t},\n\t\t\t\t\tMaxAgeSeconds: pulumi.Float64(3000),\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.opentelekomcloud.S3Bucket;\nimport com.pulumi.opentelekomcloud.S3BucketArgs;\nimport com.pulumi.opentelekomcloud.inputs.S3BucketCorsRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var bucket = new S3Bucket(\"bucket\", S3BucketArgs.builder()\n            .bucket(\"s3-website-test.hashicorp.com\")\n            .acl(\"public-read\")\n            .corsRules(S3BucketCorsRuleArgs.builder()\n                .allowedHeaders(\"*\")\n                .allowedMethods(                \n                    \"PUT\",\n                    \"POST\")\n                .allowedOrigins(\"https://s3-website-test.hashicorp.com\")\n                .exposeHeaders(\"ETag\")\n                .maxAgeSeconds(3000.0)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  bucket:\n    type: opentelekomcloud:S3Bucket\n    properties:\n      bucket: s3-website-test.hashicorp.com\n      acl: public-read\n      corsRules:\n        - allowedHeaders:\n            - '*'\n          allowedMethods:\n            - PUT\n            - POST\n          allowedOrigins:\n            - https://s3-website-test.hashicorp.com\n          exposeHeaders:\n            - ETag\n          maxAgeSeconds: 3000\n```\n<!--End PulumiCodeChooser -->\n\n### Using versioning\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst bucket = new opentelekomcloud.S3Bucket(\"bucket\", {\n    bucket: \"my-tf-test-bucket\",\n    acl: \"private\",\n    versioning: {\n        enabled: true,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nbucket = opentelekomcloud.S3Bucket(\"bucket\",\n    bucket=\"my-tf-test-bucket\",\n    acl=\"private\",\n    versioning={\n        \"enabled\": True,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var bucket = new Opentelekomcloud.S3Bucket(\"bucket\", new()\n    {\n        Bucket = \"my-tf-test-bucket\",\n        Acl = \"private\",\n        Versioning = new Opentelekomcloud.Inputs.S3BucketVersioningArgs\n        {\n            Enabled = true,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewS3Bucket(ctx, \"bucket\", &opentelekomcloud.S3BucketArgs{\n\t\t\tBucket: pulumi.String(\"my-tf-test-bucket\"),\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t\tVersioning: &opentelekomcloud.S3BucketVersioningArgs{\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.S3Bucket;\nimport com.pulumi.opentelekomcloud.S3BucketArgs;\nimport com.pulumi.opentelekomcloud.inputs.S3BucketVersioningArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var bucket = new S3Bucket(\"bucket\", S3BucketArgs.builder()\n            .bucket(\"my-tf-test-bucket\")\n            .acl(\"private\")\n            .versioning(S3BucketVersioningArgs.builder()\n                .enabled(true)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  bucket:\n    type: opentelekomcloud:S3Bucket\n    properties:\n      bucket: my-tf-test-bucket\n      acl: private\n      versioning:\n        enabled: true\n```\n<!--End PulumiCodeChooser -->\n\n### Enable Logging\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst logBucket = new opentelekomcloud.S3Bucket(\"log_bucket\", {\n    bucket: \"my-tf-log-bucket\",\n    acl: \"log-delivery-write\",\n});\nconst b = new opentelekomcloud.S3Bucket(\"b\", {\n    bucket: \"my-tf-test-bucket\",\n    acl: \"private\",\n    loggings: [{\n        targetBucket: logBucket.s3BucketId,\n        targetPrefix: \"log/\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nlog_bucket = opentelekomcloud.S3Bucket(\"log_bucket\",\n    bucket=\"my-tf-log-bucket\",\n    acl=\"log-delivery-write\")\nb = opentelekomcloud.S3Bucket(\"b\",\n    bucket=\"my-tf-test-bucket\",\n    acl=\"private\",\n    loggings=[{\n        \"target_bucket\": log_bucket.s3_bucket_id,\n        \"target_prefix\": \"log/\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var logBucket = new Opentelekomcloud.S3Bucket(\"log_bucket\", new()\n    {\n        Bucket = \"my-tf-log-bucket\",\n        Acl = \"log-delivery-write\",\n    });\n\n    var b = new Opentelekomcloud.S3Bucket(\"b\", new()\n    {\n        Bucket = \"my-tf-test-bucket\",\n        Acl = \"private\",\n        Loggings = new[]\n        {\n            new Opentelekomcloud.Inputs.S3BucketLoggingArgs\n            {\n                TargetBucket = logBucket.S3BucketId,\n                TargetPrefix = \"log/\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tlogBucket, err := opentelekomcloud.NewS3Bucket(ctx, \"log_bucket\", &opentelekomcloud.S3BucketArgs{\n\t\t\tBucket: pulumi.String(\"my-tf-log-bucket\"),\n\t\t\tAcl:    pulumi.String(\"log-delivery-write\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewS3Bucket(ctx, \"b\", &opentelekomcloud.S3BucketArgs{\n\t\t\tBucket: pulumi.String(\"my-tf-test-bucket\"),\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t\tLoggings: opentelekomcloud.S3BucketLoggingArray{\n\t\t\t\t&opentelekomcloud.S3BucketLoggingArgs{\n\t\t\t\t\tTargetBucket: logBucket.S3BucketId,\n\t\t\t\t\tTargetPrefix: pulumi.String(\"log/\"),\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.opentelekomcloud.S3Bucket;\nimport com.pulumi.opentelekomcloud.S3BucketArgs;\nimport com.pulumi.opentelekomcloud.inputs.S3BucketLoggingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var logBucket = new S3Bucket(\"logBucket\", S3BucketArgs.builder()\n            .bucket(\"my-tf-log-bucket\")\n            .acl(\"log-delivery-write\")\n            .build());\n\n        var b = new S3Bucket(\"b\", S3BucketArgs.builder()\n            .bucket(\"my-tf-test-bucket\")\n            .acl(\"private\")\n            .loggings(S3BucketLoggingArgs.builder()\n                .targetBucket(logBucket.s3BucketId())\n                .targetPrefix(\"log/\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  logBucket:\n    type: opentelekomcloud:S3Bucket\n    name: log_bucket\n    properties:\n      bucket: my-tf-log-bucket\n      acl: log-delivery-write\n  b:\n    type: opentelekomcloud:S3Bucket\n    properties:\n      bucket: my-tf-test-bucket\n      acl: private\n      loggings:\n        - targetBucket: ${logBucket.s3BucketId}\n          targetPrefix: log/\n```\n<!--End PulumiCodeChooser -->\n\n### Using object lifecycle\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst bucket = new opentelekomcloud.S3Bucket(\"bucket\", {\n    bucket: \"my-bucket\",\n    acl: \"private\",\n    lifecycleRules: [\n        {\n            id: \"log\",\n            enabled: true,\n            prefix: \"log/\",\n            expirations: [{\n                days: 90,\n            }],\n        },\n        {\n            id: \"tmp\",\n            prefix: \"tmp/\",\n            enabled: true,\n            expirations: [{\n                date: \"2016-01-12\",\n            }],\n        },\n    ],\n});\nconst versioningBucket = new opentelekomcloud.S3Bucket(\"versioning_bucket\", {\n    bucket: \"my-versioning-bucket\",\n    acl: \"private\",\n    versioning: {\n        enabled: true,\n    },\n    lifecycleRules: [{\n        prefix: \"config/\",\n        enabled: true,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nbucket = opentelekomcloud.S3Bucket(\"bucket\",\n    bucket=\"my-bucket\",\n    acl=\"private\",\n    lifecycle_rules=[\n        {\n            \"id\": \"log\",\n            \"enabled\": True,\n            \"prefix\": \"log/\",\n            \"expirations\": [{\n                \"days\": 90,\n            }],\n        },\n        {\n            \"id\": \"tmp\",\n            \"prefix\": \"tmp/\",\n            \"enabled\": True,\n            \"expirations\": [{\n                \"date\": \"2016-01-12\",\n            }],\n        },\n    ])\nversioning_bucket = opentelekomcloud.S3Bucket(\"versioning_bucket\",\n    bucket=\"my-versioning-bucket\",\n    acl=\"private\",\n    versioning={\n        \"enabled\": True,\n    },\n    lifecycle_rules=[{\n        \"prefix\": \"config/\",\n        \"enabled\": True,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var bucket = new Opentelekomcloud.S3Bucket(\"bucket\", new()\n    {\n        Bucket = \"my-bucket\",\n        Acl = \"private\",\n        LifecycleRules = new[]\n        {\n            new Opentelekomcloud.Inputs.S3BucketLifecycleRuleArgs\n            {\n                Id = \"log\",\n                Enabled = true,\n                Prefix = \"log/\",\n                Expirations = new[]\n                {\n                    new Opentelekomcloud.Inputs.S3BucketLifecycleRuleExpirationArgs\n                    {\n                        Days = 90,\n                    },\n                },\n            },\n            new Opentelekomcloud.Inputs.S3BucketLifecycleRuleArgs\n            {\n                Id = \"tmp\",\n                Prefix = \"tmp/\",\n                Enabled = true,\n                Expirations = new[]\n                {\n                    new Opentelekomcloud.Inputs.S3BucketLifecycleRuleExpirationArgs\n                    {\n                        Date = \"2016-01-12\",\n                    },\n                },\n            },\n        },\n    });\n\n    var versioningBucket = new Opentelekomcloud.S3Bucket(\"versioning_bucket\", new()\n    {\n        Bucket = \"my-versioning-bucket\",\n        Acl = \"private\",\n        Versioning = new Opentelekomcloud.Inputs.S3BucketVersioningArgs\n        {\n            Enabled = true,\n        },\n        LifecycleRules = new[]\n        {\n            new Opentelekomcloud.Inputs.S3BucketLifecycleRuleArgs\n            {\n                Prefix = \"config/\",\n                Enabled = true,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := opentelekomcloud.NewS3Bucket(ctx, \"bucket\", &opentelekomcloud.S3BucketArgs{\n\t\t\tBucket: pulumi.String(\"my-bucket\"),\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t\tLifecycleRules: opentelekomcloud.S3BucketLifecycleRuleArray{\n\t\t\t\t&opentelekomcloud.S3BucketLifecycleRuleArgs{\n\t\t\t\t\tId:      pulumi.String(\"log\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tPrefix:  pulumi.String(\"log/\"),\n\t\t\t\t\tExpirations: opentelekomcloud.S3BucketLifecycleRuleExpirationArray{\n\t\t\t\t\t\t&opentelekomcloud.S3BucketLifecycleRuleExpirationArgs{\n\t\t\t\t\t\t\tDays: pulumi.Float64(90),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&opentelekomcloud.S3BucketLifecycleRuleArgs{\n\t\t\t\t\tId:      pulumi.String(\"tmp\"),\n\t\t\t\t\tPrefix:  pulumi.String(\"tmp/\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tExpirations: opentelekomcloud.S3BucketLifecycleRuleExpirationArray{\n\t\t\t\t\t\t&opentelekomcloud.S3BucketLifecycleRuleExpirationArgs{\n\t\t\t\t\t\t\tDate: pulumi.String(\"2016-01-12\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewS3Bucket(ctx, \"versioning_bucket\", &opentelekomcloud.S3BucketArgs{\n\t\t\tBucket: pulumi.String(\"my-versioning-bucket\"),\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t\tVersioning: &opentelekomcloud.S3BucketVersioningArgs{\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t},\n\t\t\tLifecycleRules: opentelekomcloud.S3BucketLifecycleRuleArray{\n\t\t\t\t&opentelekomcloud.S3BucketLifecycleRuleArgs{\n\t\t\t\t\tPrefix:  pulumi.String(\"config/\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.S3Bucket;\nimport com.pulumi.opentelekomcloud.S3BucketArgs;\nimport com.pulumi.opentelekomcloud.inputs.S3BucketLifecycleRuleArgs;\nimport com.pulumi.opentelekomcloud.inputs.S3BucketVersioningArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var bucket = new S3Bucket(\"bucket\", S3BucketArgs.builder()\n            .bucket(\"my-bucket\")\n            .acl(\"private\")\n            .lifecycleRules(            \n                S3BucketLifecycleRuleArgs.builder()\n                    .id(\"log\")\n                    .enabled(true)\n                    .prefix(\"log/\")\n                    .expirations(S3BucketLifecycleRuleExpirationArgs.builder()\n                        .days(90.0)\n                        .build())\n                    .build(),\n                S3BucketLifecycleRuleArgs.builder()\n                    .id(\"tmp\")\n                    .prefix(\"tmp/\")\n                    .enabled(true)\n                    .expirations(S3BucketLifecycleRuleExpirationArgs.builder()\n                        .date(\"2016-01-12\")\n                        .build())\n                    .build())\n            .build());\n\n        var versioningBucket = new S3Bucket(\"versioningBucket\", S3BucketArgs.builder()\n            .bucket(\"my-versioning-bucket\")\n            .acl(\"private\")\n            .versioning(S3BucketVersioningArgs.builder()\n                .enabled(true)\n                .build())\n            .lifecycleRules(S3BucketLifecycleRuleArgs.builder()\n                .prefix(\"config/\")\n                .enabled(true)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  bucket:\n    type: opentelekomcloud:S3Bucket\n    properties:\n      bucket: my-bucket\n      acl: private\n      lifecycleRules:\n        - id: log\n          enabled: true\n          prefix: log/\n          expirations:\n            - days: 90\n        - id: tmp\n          prefix: tmp/\n          enabled: true\n          expirations:\n            - date: 2016-01-12\n  versioningBucket:\n    type: opentelekomcloud:S3Bucket\n    name: versioning_bucket\n    properties:\n      bucket: my-versioning-bucket\n      acl: private\n      versioning:\n        enabled: true\n      lifecycleRules:\n        - prefix: config/\n          enabled: true\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nS3 bucket can be imported using the `bucket`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/s3Bucket:S3Bucket bucket bucket-name\n```\n\n","inputProperties":{"acl":{"description":"The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl)\nto apply. Defaults to <span pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\">`private`</span>.\n","type":"string"},"arn":{"description":"The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`.\n","type":"string"},"bucket":{"type":"string"},"bucketPrefix":{"description":"Creates a unique bucket name beginning with the specified prefix.\nConflicts with <span pulumi-lang-nodejs=\"`bucket`\" pulumi-lang-dotnet=\"`Bucket`\" pulumi-lang-go=\"`bucket`\" pulumi-lang-python=\"`bucket`\" pulumi-lang-yaml=\"`bucket`\" pulumi-lang-java=\"`bucket`\">`bucket`</span>.\n","type":"string"},"corsRules":{"description":"A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) (documented below).\n","items":{"$ref":"#/types/opentelekomcloud:index%2FS3BucketCorsRule:S3BucketCorsRule"},"type":"array"},"forceDestroy":{"description":"A boolean that indicates all objects should be deleted from the bucket\nso that the bucket can be destroyed without error. These objects are *not* recoverable.\n","type":"boolean"},"hostedZoneId":{"description":"The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints)\nfor this bucket's region.\n","type":"string"},"lifecycleRules":{"description":"A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html)\n","items":{"$ref":"#/types/opentelekomcloud:index%2FS3BucketLifecycleRule:S3BucketLifecycleRule"},"type":"array"},"loggings":{"description":"A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) (documented below).\n","items":{"$ref":"#/types/opentelekomcloud:index%2FS3BucketLogging:S3BucketLogging"},"type":"array"},"policy":{"type":"string"},"region":{"type":"string"},"s3BucketId":{"description":"The name of the bucket.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the bucket.\n","type":"object"},"versioning":{"$ref":"#/types/opentelekomcloud:index%2FS3BucketVersioning:S3BucketVersioning","description":"A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) (documented below)\n"},"website":{"$ref":"#/types/opentelekomcloud:index%2FS3BucketWebsite:S3BucketWebsite","description":"A website object (documented below).\n"},"websiteDomain":{"description":"The domain of the website endpoint, if the bucket is configured with a website. If not,\nthis will be an empty string. This is used to create Route 53 alias records.\n","type":"string"},"websiteEndpoint":{"description":"The website endpoint, if the bucket is configured with a website. If not, this will be an empty string.\n","type":"string"}},"properties":{"acl":{"description":"The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl)\nto apply. Defaults to <span pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\">`private`</span>.\n","type":"string"},"arn":{"description":"The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`.\n","type":"string"},"bucket":{"type":"string"},"bucketDomainName":{"description":"The bucket domain name. Will be of format `bucketname.s3.amazonaws.com`.\n","type":"string"},"bucketPrefix":{"description":"Creates a unique bucket name beginning with the specified prefix.\nConflicts with <span pulumi-lang-nodejs=\"`bucket`\" pulumi-lang-dotnet=\"`Bucket`\" pulumi-lang-go=\"`bucket`\" pulumi-lang-python=\"`bucket`\" pulumi-lang-yaml=\"`bucket`\" pulumi-lang-java=\"`bucket`\">`bucket`</span>.\n","type":"string"},"corsRules":{"description":"A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) (documented below).\n","items":{"$ref":"#/types/opentelekomcloud:index%2FS3BucketCorsRule:S3BucketCorsRule"},"type":"array"},"forceDestroy":{"description":"A boolean that indicates all objects should be deleted from the bucket\nso that the bucket can be destroyed without error. These objects are *not* recoverable.\n","type":"boolean"},"hostedZoneId":{"description":"The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints)\nfor this bucket's region.\n","type":"string"},"lifecycleRules":{"description":"A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html)\n","items":{"$ref":"#/types/opentelekomcloud:index%2FS3BucketLifecycleRule:S3BucketLifecycleRule"},"type":"array"},"loggings":{"description":"A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) (documented below).\n","items":{"$ref":"#/types/opentelekomcloud:index%2FS3BucketLogging:S3BucketLogging"},"type":"array"},"policy":{"type":"string"},"region":{"type":"string"},"s3BucketId":{"description":"The name of the bucket.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the bucket.\n","type":"object"},"versioning":{"$ref":"#/types/opentelekomcloud:index%2FS3BucketVersioning:S3BucketVersioning","description":"A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) (documented below)\n"},"website":{"$ref":"#/types/opentelekomcloud:index%2FS3BucketWebsite:S3BucketWebsite","description":"A website object (documented below).\n"},"websiteDomain":{"description":"The domain of the website endpoint, if the bucket is configured with a website. If not,\nthis will be an empty string. This is used to create Route 53 alias records.\n","type":"string"},"websiteEndpoint":{"description":"The website endpoint, if the bucket is configured with a website. If not, this will be an empty string.\n","type":"string"}},"required":["arn","bucket","bucketDomainName","hostedZoneId","region","s3BucketId","websiteDomain","websiteEndpoint"],"stateInputs":{"description":"Input properties used for looking up and filtering S3Bucket resources.\n","properties":{"acl":{"description":"The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl)\nto apply. Defaults to <span pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\">`private`</span>.\n","type":"string"},"arn":{"description":"The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`.\n","type":"string"},"bucket":{"type":"string"},"bucketDomainName":{"description":"The bucket domain name. Will be of format `bucketname.s3.amazonaws.com`.\n","type":"string"},"bucketPrefix":{"description":"Creates a unique bucket name beginning with the specified prefix.\nConflicts with <span pulumi-lang-nodejs=\"`bucket`\" pulumi-lang-dotnet=\"`Bucket`\" pulumi-lang-go=\"`bucket`\" pulumi-lang-python=\"`bucket`\" pulumi-lang-yaml=\"`bucket`\" pulumi-lang-java=\"`bucket`\">`bucket`</span>.\n","type":"string"},"corsRules":{"description":"A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) (documented below).\n","items":{"$ref":"#/types/opentelekomcloud:index%2FS3BucketCorsRule:S3BucketCorsRule"},"type":"array"},"forceDestroy":{"description":"A boolean that indicates all objects should be deleted from the bucket\nso that the bucket can be destroyed without error. These objects are *not* recoverable.\n","type":"boolean"},"hostedZoneId":{"description":"The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints)\nfor this bucket's region.\n","type":"string"},"lifecycleRules":{"description":"A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html)\n","items":{"$ref":"#/types/opentelekomcloud:index%2FS3BucketLifecycleRule:S3BucketLifecycleRule"},"type":"array"},"loggings":{"description":"A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) (documented below).\n","items":{"$ref":"#/types/opentelekomcloud:index%2FS3BucketLogging:S3BucketLogging"},"type":"array"},"policy":{"type":"string"},"region":{"type":"string"},"s3BucketId":{"description":"The name of the bucket.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the bucket.\n","type":"object"},"versioning":{"$ref":"#/types/opentelekomcloud:index%2FS3BucketVersioning:S3BucketVersioning","description":"A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) (documented below)\n"},"website":{"$ref":"#/types/opentelekomcloud:index%2FS3BucketWebsite:S3BucketWebsite","description":"A website object (documented below).\n"},"websiteDomain":{"description":"The domain of the website endpoint, if the bucket is configured with a website. If not,\nthis will be an empty string. This is used to create Route 53 alias records.\n","type":"string"},"websiteEndpoint":{"description":"The website endpoint, if the bucket is configured with a website. If not, this will be an empty string.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/s3BucketObject:S3BucketObject":{"description":"Provides a S3 bucket object resource within OpenTelekomCloud.\n\n## Example Usage\n\n### Server Side Encryption with S3 Default Master Key\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst examplebucket = new opentelekomcloud.S3Bucket(\"examplebucket\", {\n    bucket: \"examplebuckettftest\",\n    acl: \"private\",\n});\nconst examplebucketObject = new opentelekomcloud.S3BucketObject(\"examplebucket_object\", {\n    key: \"someobject\",\n    bucket: examplebucket.bucket,\n    source: \"index.html\",\n    serverSideEncryption: \"aws:kms\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nexamplebucket = opentelekomcloud.S3Bucket(\"examplebucket\",\n    bucket=\"examplebuckettftest\",\n    acl=\"private\")\nexamplebucket_object = opentelekomcloud.S3BucketObject(\"examplebucket_object\",\n    key=\"someobject\",\n    bucket=examplebucket.bucket,\n    source=\"index.html\",\n    server_side_encryption=\"aws:kms\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var examplebucket = new Opentelekomcloud.S3Bucket(\"examplebucket\", new()\n    {\n        Bucket = \"examplebuckettftest\",\n        Acl = \"private\",\n    });\n\n    var examplebucketObject = new Opentelekomcloud.S3BucketObject(\"examplebucket_object\", new()\n    {\n        Key = \"someobject\",\n        Bucket = examplebucket.Bucket,\n        Source = \"index.html\",\n        ServerSideEncryption = \"aws:kms\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texamplebucket, err := opentelekomcloud.NewS3Bucket(ctx, \"examplebucket\", &opentelekomcloud.S3BucketArgs{\n\t\t\tBucket: pulumi.String(\"examplebuckettftest\"),\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewS3BucketObject(ctx, \"examplebucket_object\", &opentelekomcloud.S3BucketObjectArgs{\n\t\t\tKey:                  pulumi.String(\"someobject\"),\n\t\t\tBucket:               examplebucket.Bucket,\n\t\t\tSource:               pulumi.String(\"index.html\"),\n\t\t\tServerSideEncryption: pulumi.String(\"aws:kms\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.S3Bucket;\nimport com.pulumi.opentelekomcloud.S3BucketArgs;\nimport com.pulumi.opentelekomcloud.S3BucketObject;\nimport com.pulumi.opentelekomcloud.S3BucketObjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var examplebucket = new S3Bucket(\"examplebucket\", S3BucketArgs.builder()\n            .bucket(\"examplebuckettftest\")\n            .acl(\"private\")\n            .build());\n\n        var examplebucketObject = new S3BucketObject(\"examplebucketObject\", S3BucketObjectArgs.builder()\n            .key(\"someobject\")\n            .bucket(examplebucket.bucket())\n            .source(\"index.html\")\n            .serverSideEncryption(\"aws:kms\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  examplebucket:\n    type: opentelekomcloud:S3Bucket\n    properties:\n      bucket: examplebuckettftest\n      acl: private\n  examplebucketObject:\n    type: opentelekomcloud:S3BucketObject\n    name: examplebucket_object\n    properties:\n      key: someobject\n      bucket: ${examplebucket.bucket}\n      source: index.html\n      serverSideEncryption: aws:kms\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"acl":{"description":"The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Defaults to \"private\".\n","type":"string"},"bucket":{"description":"The name of the bucket to put the file in.\n","type":"string"},"cacheControl":{"description":"Specifies caching behavior along the request/reply chain.\nRead [w3c<span pulumi-lang-nodejs=\" cacheControl]\" pulumi-lang-dotnet=\" CacheControl]\" pulumi-lang-go=\" cacheControl]\" pulumi-lang-python=\" cache_control]\" pulumi-lang-yaml=\" cacheControl]\" pulumi-lang-java=\" cacheControl]\"> cache_control]</span>(http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details.\n","type":"string"},"content":{"description":"The literal content being uploaded to the bucket.\n","type":"string"},"contentDisposition":{"description":"Specifies presentational information for the object.\nRead [wc3<span pulumi-lang-nodejs=\" contentDisposition]\" pulumi-lang-dotnet=\" ContentDisposition]\" pulumi-lang-go=\" contentDisposition]\" pulumi-lang-python=\" content_disposition]\" pulumi-lang-yaml=\" contentDisposition]\" pulumi-lang-java=\" contentDisposition]\"> content_disposition]</span>(http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information.\n","type":"string"},"contentEncoding":{"description":"Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information.\n","type":"string"},"contentLanguage":{"description":"The language the content is in e.g. en-US or en-GB.\n","type":"string"},"contentType":{"description":"A standard MIME type describing the format of the object data, e.g. application/octet-stream. All Valid MIME Types are valid for this input.\n","type":"string"},"etag":{"description":"Used to trigger updates. The only meaningful value is `${md5(file(\"path/to/file\"))}`.\nThis attribute is not compatible with <span pulumi-lang-nodejs=\"`kmsKeyId`\" pulumi-lang-dotnet=\"`KmsKeyId`\" pulumi-lang-go=\"`kmsKeyId`\" pulumi-lang-python=\"`kms_key_id`\" pulumi-lang-yaml=\"`kmsKeyId`\" pulumi-lang-java=\"`kmsKeyId`\">`kms_key_id`</span>.\n","type":"string"},"key":{"description":"The name of the object once it is in the bucket.\n","type":"string"},"s3BucketObjectId":{"description":"the <span pulumi-lang-nodejs=\"`key`\" pulumi-lang-dotnet=\"`Key`\" pulumi-lang-go=\"`key`\" pulumi-lang-python=\"`key`\" pulumi-lang-yaml=\"`key`\" pulumi-lang-java=\"`key`\">`key`</span> of the resource supplied above\n","type":"string"},"serverSideEncryption":{"description":"Specifies server-side encryption of the object in S3. Valid values are \"`AES256`\" and \"`aws:kms`\".\n\nEither <span pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\">`source`</span> or <span pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\">`content`</span> must be provided to specify the bucket content. These two arguments are mutually-exclusive.\n","type":"string"},"source":{"description":"The path to the source file being uploaded to the bucket.\n","type":"string"},"sseKmsKeyId":{"type":"string"},"websiteRedirect":{"description":"Specifies a target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html).\n","type":"string"}},"properties":{"acl":{"description":"The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Defaults to \"private\".\n","type":"string"},"bucket":{"description":"The name of the bucket to put the file in.\n","type":"string"},"cacheControl":{"description":"Specifies caching behavior along the request/reply chain.\nRead [w3c<span pulumi-lang-nodejs=\" cacheControl]\" pulumi-lang-dotnet=\" CacheControl]\" pulumi-lang-go=\" cacheControl]\" pulumi-lang-python=\" cache_control]\" pulumi-lang-yaml=\" cacheControl]\" pulumi-lang-java=\" cacheControl]\"> cache_control]</span>(http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details.\n","type":"string"},"content":{"description":"The literal content being uploaded to the bucket.\n","type":"string"},"contentDisposition":{"description":"Specifies presentational information for the object.\nRead [wc3<span pulumi-lang-nodejs=\" contentDisposition]\" pulumi-lang-dotnet=\" ContentDisposition]\" pulumi-lang-go=\" contentDisposition]\" pulumi-lang-python=\" content_disposition]\" pulumi-lang-yaml=\" contentDisposition]\" pulumi-lang-java=\" contentDisposition]\"> content_disposition]</span>(http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information.\n","type":"string"},"contentEncoding":{"description":"Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information.\n","type":"string"},"contentLanguage":{"description":"The language the content is in e.g. en-US or en-GB.\n","type":"string"},"contentType":{"description":"A standard MIME type describing the format of the object data, e.g. application/octet-stream. All Valid MIME Types are valid for this input.\n","type":"string"},"etag":{"description":"Used to trigger updates. The only meaningful value is `${md5(file(\"path/to/file\"))}`.\nThis attribute is not compatible with <span pulumi-lang-nodejs=\"`kmsKeyId`\" pulumi-lang-dotnet=\"`KmsKeyId`\" pulumi-lang-go=\"`kmsKeyId`\" pulumi-lang-python=\"`kms_key_id`\" pulumi-lang-yaml=\"`kmsKeyId`\" pulumi-lang-java=\"`kmsKeyId`\">`kms_key_id`</span>.\n","type":"string"},"key":{"description":"The name of the object once it is in the bucket.\n","type":"string"},"s3BucketObjectId":{"description":"the <span pulumi-lang-nodejs=\"`key`\" pulumi-lang-dotnet=\"`Key`\" pulumi-lang-go=\"`key`\" pulumi-lang-python=\"`key`\" pulumi-lang-yaml=\"`key`\" pulumi-lang-java=\"`key`\">`key`</span> of the resource supplied above\n","type":"string"},"serverSideEncryption":{"description":"Specifies server-side encryption of the object in S3. Valid values are \"`AES256`\" and \"`aws:kms`\".\n\nEither <span pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\">`source`</span> or <span pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\">`content`</span> must be provided to specify the bucket content. These two arguments are mutually-exclusive.\n","type":"string"},"source":{"description":"The path to the source file being uploaded to the bucket.\n","type":"string"},"sseKmsKeyId":{"type":"string"},"versionId":{"description":"A unique version ID value for the object, if bucket versioning is enabled.\n","type":"string"},"websiteRedirect":{"description":"Specifies a target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html).\n","type":"string"}},"required":["bucket","contentType","etag","key","s3BucketObjectId","serverSideEncryption","sseKmsKeyId","versionId"],"requiredInputs":["bucket","key"],"stateInputs":{"description":"Input properties used for looking up and filtering S3BucketObject resources.\n","properties":{"acl":{"description":"The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Defaults to \"private\".\n","type":"string"},"bucket":{"description":"The name of the bucket to put the file in.\n","type":"string"},"cacheControl":{"description":"Specifies caching behavior along the request/reply chain.\nRead [w3c<span pulumi-lang-nodejs=\" cacheControl]\" pulumi-lang-dotnet=\" CacheControl]\" pulumi-lang-go=\" cacheControl]\" pulumi-lang-python=\" cache_control]\" pulumi-lang-yaml=\" cacheControl]\" pulumi-lang-java=\" cacheControl]\"> cache_control]</span>(http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details.\n","type":"string"},"content":{"description":"The literal content being uploaded to the bucket.\n","type":"string"},"contentDisposition":{"description":"Specifies presentational information for the object.\nRead [wc3<span pulumi-lang-nodejs=\" contentDisposition]\" pulumi-lang-dotnet=\" ContentDisposition]\" pulumi-lang-go=\" contentDisposition]\" pulumi-lang-python=\" content_disposition]\" pulumi-lang-yaml=\" contentDisposition]\" pulumi-lang-java=\" contentDisposition]\"> content_disposition]</span>(http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information.\n","type":"string"},"contentEncoding":{"description":"Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information.\n","type":"string"},"contentLanguage":{"description":"The language the content is in e.g. en-US or en-GB.\n","type":"string"},"contentType":{"description":"A standard MIME type describing the format of the object data, e.g. application/octet-stream. All Valid MIME Types are valid for this input.\n","type":"string"},"etag":{"description":"Used to trigger updates. The only meaningful value is `${md5(file(\"path/to/file\"))}`.\nThis attribute is not compatible with <span pulumi-lang-nodejs=\"`kmsKeyId`\" pulumi-lang-dotnet=\"`KmsKeyId`\" pulumi-lang-go=\"`kmsKeyId`\" pulumi-lang-python=\"`kms_key_id`\" pulumi-lang-yaml=\"`kmsKeyId`\" pulumi-lang-java=\"`kmsKeyId`\">`kms_key_id`</span>.\n","type":"string"},"key":{"description":"The name of the object once it is in the bucket.\n","type":"string"},"s3BucketObjectId":{"description":"the <span pulumi-lang-nodejs=\"`key`\" pulumi-lang-dotnet=\"`Key`\" pulumi-lang-go=\"`key`\" pulumi-lang-python=\"`key`\" pulumi-lang-yaml=\"`key`\" pulumi-lang-java=\"`key`\">`key`</span> of the resource supplied above\n","type":"string"},"serverSideEncryption":{"description":"Specifies server-side encryption of the object in S3. Valid values are \"`AES256`\" and \"`aws:kms`\".\n\nEither <span pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\">`source`</span> or <span pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\">`content`</span> must be provided to specify the bucket content. These two arguments are mutually-exclusive.\n","type":"string"},"source":{"description":"The path to the source file being uploaded to the bucket.\n","type":"string"},"sseKmsKeyId":{"type":"string"},"versionId":{"description":"A unique version ID value for the object, if bucket versioning is enabled.\n","type":"string"},"websiteRedirect":{"description":"Specifies a target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html).\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/s3BucketPolicy:S3BucketPolicy":{"description":"Attaches a policy to an S3 bucket resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst b = new opentelekomcloud.S3Bucket(\"b\", {bucket: \"my-tf-test-bucket\"});\nconst bS3BucketPolicy = new opentelekomcloud.S3BucketPolicy(\"b\", {\n    bucket: b.s3BucketId,\n    policy: pulumi.interpolate`  {\n  \\\"Id\\\": \\\"MYBUCKETPOLICY\\\",\n  \\\"Statement\\\": [\n    {\n      \\\"Sid\\\": \\\"IPAllow\\\",\n      \\\"Effect\\\": \\\"Deny\\\",\n      \\\"Principal\\\": \\\"*\\\",\n      \\\"Action\\\": \\\"s3:*\\\",\n      \\\"Resource\\\": \\\"arn:aws:s3:::${b.bucket}/*\\\",\n      \\\"Condition\\\": {\n         \\\"IpAddress\\\": {\\\"aws:SourceIp\\\": \\\"8.8.8.8/32\\\"}\n      }\n    }\n  ]}\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\nb = opentelekomcloud.S3Bucket(\"b\", bucket=\"my-tf-test-bucket\")\nb_s3_bucket_policy = opentelekomcloud.S3BucketPolicy(\"b\",\n    bucket=b.s3_bucket_id,\n    policy=b.bucket.apply(lambda bucket: f\"\"\"  {{\n  \\\"Id\\\": \\\"MYBUCKETPOLICY\\\",\n  \\\"Statement\\\": [\n    {{\n      \\\"Sid\\\": \\\"IPAllow\\\",\n      \\\"Effect\\\": \\\"Deny\\\",\n      \\\"Principal\\\": \\\"*\\\",\n      \\\"Action\\\": \\\"s3:*\\\",\n      \\\"Resource\\\": \\\"arn:aws:s3:::{bucket}/*\\\",\n      \\\"Condition\\\": {{\n         \\\"IpAddress\\\": {{\\\"aws:SourceIp\\\": \\\"8.8.8.8/32\\\"}}\n      }}\n    }}\n  ]}}\n\"\"\"))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var b = new Opentelekomcloud.S3Bucket(\"b\", new()\n    {\n        Bucket = \"my-tf-test-bucket\",\n    });\n\n    var bS3BucketPolicy = new Opentelekomcloud.S3BucketPolicy(\"b\", new()\n    {\n        Bucket = b.S3BucketId,\n        Policy = b.Bucket.Apply(bucket => @$\"  {{\n  \\\"\"Id\\\"\": \\\"\"MYBUCKETPOLICY\\\"\",\n  \\\"\"Statement\\\"\": [\n    {{\n      \\\"\"Sid\\\"\": \\\"\"IPAllow\\\"\",\n      \\\"\"Effect\\\"\": \\\"\"Deny\\\"\",\n      \\\"\"Principal\\\"\": \\\"\"*\\\"\",\n      \\\"\"Action\\\"\": \\\"\"s3:*\\\"\",\n      \\\"\"Resource\\\"\": \\\"\"arn:aws:s3:::{bucket}/*\\\"\",\n      \\\"\"Condition\\\"\": {{\n         \\\"\"IpAddress\\\"\": {{\\\"\"aws:SourceIp\\\"\": \\\"\"8.8.8.8/32\\\"\"}}\n      }}\n    }}\n  ]}}\n\"),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tb, err := opentelekomcloud.NewS3Bucket(ctx, \"b\", &opentelekomcloud.S3BucketArgs{\n\t\t\tBucket: pulumi.String(\"my-tf-test-bucket\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewS3BucketPolicy(ctx, \"b\", &opentelekomcloud.S3BucketPolicyArgs{\n\t\t\tBucket: b.S3BucketId,\n\t\t\tPolicy: b.Bucket.ApplyT(func(bucket string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(`  {\n  \\\"Id\\\": \\\"MYBUCKETPOLICY\\\",\n  \\\"Statement\\\": [\n    {\n      \\\"Sid\\\": \\\"IPAllow\\\",\n      \\\"Effect\\\": \\\"Deny\\\",\n      \\\"Principal\\\": \\\"*\\\",\n      \\\"Action\\\": \\\"s3:*\\\",\n      \\\"Resource\\\": \\\"arn:aws:s3:::%v/*\\\",\n      \\\"Condition\\\": {\n         \\\"IpAddress\\\": {\\\"aws:SourceIp\\\": \\\"8.8.8.8/32\\\"}\n      }\n    }\n  ]}\n`, bucket), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.S3Bucket;\nimport com.pulumi.opentelekomcloud.S3BucketArgs;\nimport com.pulumi.opentelekomcloud.S3BucketPolicy;\nimport com.pulumi.opentelekomcloud.S3BucketPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var b = new S3Bucket(\"b\", S3BucketArgs.builder()\n            .bucket(\"my-tf-test-bucket\")\n            .build());\n\n        var bS3BucketPolicy = new S3BucketPolicy(\"bS3BucketPolicy\", S3BucketPolicyArgs.builder()\n            .bucket(b.s3BucketId())\n            .policy(b.bucket().applyValue(_bucket -> \"\"\"\n  {\n  \\\"Id\\\": \\\"MYBUCKETPOLICY\\\",\n  \\\"Statement\\\": [\n    {\n      \\\"Sid\\\": \\\"IPAllow\\\",\n      \\\"Effect\\\": \\\"Deny\\\",\n      \\\"Principal\\\": \\\"*\\\",\n      \\\"Action\\\": \\\"s3:*\\\",\n      \\\"Resource\\\": \\\"arn:aws:s3:::%s/*\\\",\n      \\\"Condition\\\": {\n         \\\"IpAddress\\\": {\\\"aws:SourceIp\\\": \\\"8.8.8.8/32\\\"}\n      }\n    }\n  ]}\n\", _bucket)))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  b:\n    type: opentelekomcloud:S3Bucket\n    properties:\n      bucket: my-tf-test-bucket\n  bS3BucketPolicy:\n    type: opentelekomcloud:S3BucketPolicy\n    name: b\n    properties:\n      bucket: ${b.s3BucketId}\n      policy: |2\n          {\n          \\\"Id\\\": \\\"MYBUCKETPOLICY\\\",\n          \\\"Statement\\\": [\n            {\n              \\\"Sid\\\": \\\"IPAllow\\\",\n              \\\"Effect\\\": \\\"Deny\\\",\n              \\\"Principal\\\": \\\"*\\\",\n              \\\"Action\\\": \\\"s3:*\\\",\n              \\\"Resource\\\": \\\"arn:aws:s3:::${b.bucket}/*\\\",\n              \\\"Condition\\\": {\n                 \\\"IpAddress\\\": {\\\"aws:SourceIp\\\": \\\"8.8.8.8/32\\\"}\n              }\n            }\n          ]}\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"bucket":{"description":"The name of the bucket to which to apply the policy.\n","type":"string"},"policy":{"description":"The text of the policy.\n","type":"string"},"s3BucketPolicyId":{"type":"string"}},"properties":{"bucket":{"description":"The name of the bucket to which to apply the policy.\n","type":"string"},"policy":{"description":"The text of the policy.\n","type":"string"},"s3BucketPolicyId":{"type":"string"}},"required":["bucket","policy","s3BucketPolicyId"],"requiredInputs":["bucket","policy"],"stateInputs":{"description":"Input properties used for looking up and filtering S3BucketPolicy resources.\n","properties":{"bucket":{"description":"The name of the bucket to which to apply the policy.\n","type":"string"},"policy":{"description":"The text of the policy.\n","type":"string"},"s3BucketPolicyId":{"type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/sdrsProtectedInstanceV1:SdrsProtectedInstanceV1":{"description":"Up-to-date reference of API arguments for SDRS protected instance you can get at\n[documentation portal](https://docs.otc.t-systems.com/storage-disaster-recovery-service/api-ref/sdrs_apis/protected_instance)\n\nManages a SDRS protected instance resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst group1 = new opentelekomcloud.SdrsProtectiongroupV1(\"group_1\", {\n    name: \"group_1\",\n    sourceAvailabilityZone: \"eu-de-01\",\n    targetAvailabilityZone: \"eu-de-02\",\n    domainId: domainId,\n    sourceVpcId: vpcId,\n    drType: \"migration\",\n});\nconst instance1 = new opentelekomcloud.EcsInstanceV1(\"instance_1\", {\n    name: \"server_1\",\n    imageId: imageId,\n    flavor: flavor,\n    vpcId: vpcId,\n    nics: [{\n        networkId: networkId,\n    }],\n    availabilityZone: \"eu-de-01\",\n});\nconst instance1SdrsProtectedInstanceV1 = new opentelekomcloud.SdrsProtectedInstanceV1(\"instance_1\", {\n    name: \"instance_create\",\n    description: \"some interesting description\",\n    groupId: group1.sdrsProtectiongroupV1Id,\n    serverId: instance1.ecsInstanceV1Id,\n    deleteTargetServer: true,\n    tags: {\n        muh: \"value-create\",\n        kuh: \"value-create\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ngroup1 = opentelekomcloud.SdrsProtectiongroupV1(\"group_1\",\n    name=\"group_1\",\n    source_availability_zone=\"eu-de-01\",\n    target_availability_zone=\"eu-de-02\",\n    domain_id=domain_id,\n    source_vpc_id=vpc_id,\n    dr_type=\"migration\")\ninstance1 = opentelekomcloud.EcsInstanceV1(\"instance_1\",\n    name=\"server_1\",\n    image_id=image_id,\n    flavor=flavor,\n    vpc_id=vpc_id,\n    nics=[{\n        \"network_id\": network_id,\n    }],\n    availability_zone=\"eu-de-01\")\ninstance1_sdrs_protected_instance_v1 = opentelekomcloud.SdrsProtectedInstanceV1(\"instance_1\",\n    name=\"instance_create\",\n    description=\"some interesting description\",\n    group_id=group1.sdrs_protectiongroup_v1_id,\n    server_id=instance1.ecs_instance_v1_id,\n    delete_target_server=True,\n    tags={\n        \"muh\": \"value-create\",\n        \"kuh\": \"value-create\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var group1 = new Opentelekomcloud.SdrsProtectiongroupV1(\"group_1\", new()\n    {\n        Name = \"group_1\",\n        SourceAvailabilityZone = \"eu-de-01\",\n        TargetAvailabilityZone = \"eu-de-02\",\n        DomainId = domainId,\n        SourceVpcId = vpcId,\n        DrType = \"migration\",\n    });\n\n    var instance1 = new Opentelekomcloud.EcsInstanceV1(\"instance_1\", new()\n    {\n        Name = \"server_1\",\n        ImageId = imageId,\n        Flavor = flavor,\n        VpcId = vpcId,\n        Nics = new[]\n        {\n            new Opentelekomcloud.Inputs.EcsInstanceV1NicArgs\n            {\n                NetworkId = networkId,\n            },\n        },\n        AvailabilityZone = \"eu-de-01\",\n    });\n\n    var instance1SdrsProtectedInstanceV1 = new Opentelekomcloud.SdrsProtectedInstanceV1(\"instance_1\", new()\n    {\n        Name = \"instance_create\",\n        Description = \"some interesting description\",\n        GroupId = group1.SdrsProtectiongroupV1Id,\n        ServerId = instance1.EcsInstanceV1Id,\n        DeleteTargetServer = true,\n        Tags = \n        {\n            { \"muh\", \"value-create\" },\n            { \"kuh\", \"value-create\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tgroup1, err := opentelekomcloud.NewSdrsProtectiongroupV1(ctx, \"group_1\", &opentelekomcloud.SdrsProtectiongroupV1Args{\n\t\t\tName:                   pulumi.String(\"group_1\"),\n\t\t\tSourceAvailabilityZone: pulumi.String(\"eu-de-01\"),\n\t\t\tTargetAvailabilityZone: pulumi.String(\"eu-de-02\"),\n\t\t\tDomainId:               pulumi.Any(domainId),\n\t\t\tSourceVpcId:            pulumi.Any(vpcId),\n\t\t\tDrType:                 pulumi.String(\"migration\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance1, err := opentelekomcloud.NewEcsInstanceV1(ctx, \"instance_1\", &opentelekomcloud.EcsInstanceV1Args{\n\t\t\tName:    pulumi.String(\"server_1\"),\n\t\t\tImageId: pulumi.Any(imageId),\n\t\t\tFlavor:  pulumi.Any(flavor),\n\t\t\tVpcId:   pulumi.Any(vpcId),\n\t\t\tNics: opentelekomcloud.EcsInstanceV1NicArray{\n\t\t\t\t&opentelekomcloud.EcsInstanceV1NicArgs{\n\t\t\t\t\tNetworkId: pulumi.Any(networkId),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAvailabilityZone: pulumi.String(\"eu-de-01\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewSdrsProtectedInstanceV1(ctx, \"instance_1\", &opentelekomcloud.SdrsProtectedInstanceV1Args{\n\t\t\tName:               pulumi.String(\"instance_create\"),\n\t\t\tDescription:        pulumi.String(\"some interesting description\"),\n\t\t\tGroupId:            group1.SdrsProtectiongroupV1Id,\n\t\t\tServerId:           instance1.EcsInstanceV1Id,\n\t\t\tDeleteTargetServer: pulumi.Bool(true),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"muh\": pulumi.String(\"value-create\"),\n\t\t\t\t\"kuh\": pulumi.String(\"value-create\"),\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.opentelekomcloud.SdrsProtectiongroupV1;\nimport com.pulumi.opentelekomcloud.SdrsProtectiongroupV1Args;\nimport com.pulumi.opentelekomcloud.EcsInstanceV1;\nimport com.pulumi.opentelekomcloud.EcsInstanceV1Args;\nimport com.pulumi.opentelekomcloud.inputs.EcsInstanceV1NicArgs;\nimport com.pulumi.opentelekomcloud.SdrsProtectedInstanceV1;\nimport com.pulumi.opentelekomcloud.SdrsProtectedInstanceV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var group1 = new SdrsProtectiongroupV1(\"group1\", SdrsProtectiongroupV1Args.builder()\n            .name(\"group_1\")\n            .sourceAvailabilityZone(\"eu-de-01\")\n            .targetAvailabilityZone(\"eu-de-02\")\n            .domainId(domainId)\n            .sourceVpcId(vpcId)\n            .drType(\"migration\")\n            .build());\n\n        var instance1 = new EcsInstanceV1(\"instance1\", EcsInstanceV1Args.builder()\n            .name(\"server_1\")\n            .imageId(imageId)\n            .flavor(flavor)\n            .vpcId(vpcId)\n            .nics(EcsInstanceV1NicArgs.builder()\n                .networkId(networkId)\n                .build())\n            .availabilityZone(\"eu-de-01\")\n            .build());\n\n        var instance1SdrsProtectedInstanceV1 = new SdrsProtectedInstanceV1(\"instance1SdrsProtectedInstanceV1\", SdrsProtectedInstanceV1Args.builder()\n            .name(\"instance_create\")\n            .description(\"some interesting description\")\n            .groupId(group1.sdrsProtectiongroupV1Id())\n            .serverId(instance1.ecsInstanceV1Id())\n            .deleteTargetServer(true)\n            .tags(Map.ofEntries(\n                Map.entry(\"muh\", \"value-create\"),\n                Map.entry(\"kuh\", \"value-create\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  group1:\n    type: opentelekomcloud:SdrsProtectiongroupV1\n    name: group_1\n    properties:\n      name: group_1\n      sourceAvailabilityZone: eu-de-01\n      targetAvailabilityZone: eu-de-02\n      domainId: ${domainId}\n      sourceVpcId: ${vpcId}\n      drType: migration\n  instance1:\n    type: opentelekomcloud:EcsInstanceV1\n    name: instance_1\n    properties:\n      name: server_1\n      imageId: ${imageId}\n      flavor: ${flavor}\n      vpcId: ${vpcId}\n      nics:\n        - networkId: ${networkId}\n      availabilityZone: eu-de-01\n  instance1SdrsProtectedInstanceV1:\n    type: opentelekomcloud:SdrsProtectedInstanceV1\n    name: instance_1\n    properties:\n      name: instance_create\n      description: some interesting description\n      groupId: ${group1.sdrsProtectiongroupV1Id}\n      serverId: ${instance1.ecsInstanceV1Id}\n      deleteTargetServer: true\n      tags:\n        muh: value-create\n        kuh: value-create\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nProtected instances can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/sdrsProtectedInstanceV1:SdrsProtectedInstanceV1 instance_1 7117d38e-4c8f-4624-a505-bd96b97d024c\n```\n\n","inputProperties":{"deleteTargetEip":{"description":"Specifies whether to delete the EIP of the DR site server. The default value is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"deleteTargetServer":{"description":"Specifies whether to delete the DR site server. The default value is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"description":{"description":"The description of a protected instance. Changing this creates a new instance. Changing this will create a new resource.\n","type":"string"},"groupId":{"description":"Specifies the ID of the protection group where a protected instance is added. Changing this will create a new resource.\n","type":"string"},"ipAddress":{"description":"Specifies the IP address of the primary NIC on the DR site server.\nThis parameter is valid only when <span pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\">`subnet_id`</span> is specified. Changing this will create a new resource.\n","type":"string"},"name":{"description":"The name of a protected instance.\n","type":"string"},"sdrsProtectedInstanceV1Id":{"description":"ID of the protected instance.\n","type":"string"},"serverId":{"description":"Specifies the ID of the protected ECS instance. Changing this will create a new resource.\n\n> When the API is successfully invoked, the disaster recovery instance will be automatically created.\n","type":"string"},"subnetId":{"description":"Specifies the network ID of the subnet. Changing this will create a new resource.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the instance.\n","type":"object"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FSdrsProtectedInstanceV1Timeouts:SdrsProtectedInstanceV1Timeouts"}},"properties":{"createdAt":{"description":"Specifies the time when a protected instance was created.\n","type":"string"},"deleteTargetEip":{"description":"Specifies whether to delete the EIP of the DR site server. The default value is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"deleteTargetServer":{"description":"Specifies whether to delete the DR site server. The default value is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"description":{"description":"The description of a protected instance. Changing this creates a new instance. Changing this will create a new resource.\n","type":"string"},"groupId":{"description":"Specifies the ID of the protection group where a protected instance is added. Changing this will create a new resource.\n","type":"string"},"ipAddress":{"description":"Specifies the IP address of the primary NIC on the DR site server.\nThis parameter is valid only when <span pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\">`subnet_id`</span> is specified. Changing this will create a new resource.\n","type":"string"},"name":{"description":"The name of a protected instance.\n","type":"string"},"priorityStation":{"description":"Specifies the current production site AZ of the protection group containing the protected instance.\n","type":"string"},"sdrsProtectedInstanceV1Id":{"description":"ID of the protected instance.\n","type":"string"},"serverId":{"description":"Specifies the ID of the protected ECS instance. Changing this will create a new resource.\n\n> When the API is successfully invoked, the disaster recovery instance will be automatically created.\n","type":"string"},"subnetId":{"description":"Specifies the network ID of the subnet. Changing this will create a new resource.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the instance.\n","type":"object"},"targetId":{"description":"Specifies the DR site server ID.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FSdrsProtectedInstanceV1Timeouts:SdrsProtectedInstanceV1Timeouts"},"updatedAt":{"description":"Specifies the time when a protected instance was updated.\n","type":"string"}},"required":["createdAt","groupId","name","priorityStation","sdrsProtectedInstanceV1Id","serverId","targetId","updatedAt"],"requiredInputs":["groupId","serverId"],"stateInputs":{"description":"Input properties used for looking up and filtering SdrsProtectedInstanceV1 resources.\n","properties":{"createdAt":{"description":"Specifies the time when a protected instance was created.\n","type":"string"},"deleteTargetEip":{"description":"Specifies whether to delete the EIP of the DR site server. The default value is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"deleteTargetServer":{"description":"Specifies whether to delete the DR site server. The default value is <span pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\">`false`</span>.\n","type":"boolean"},"description":{"description":"The description of a protected instance. Changing this creates a new instance. Changing this will create a new resource.\n","type":"string"},"groupId":{"description":"Specifies the ID of the protection group where a protected instance is added. Changing this will create a new resource.\n","type":"string"},"ipAddress":{"description":"Specifies the IP address of the primary NIC on the DR site server.\nThis parameter is valid only when <span pulumi-lang-nodejs=\"`subnetId`\" pulumi-lang-dotnet=\"`SubnetId`\" pulumi-lang-go=\"`subnetId`\" pulumi-lang-python=\"`subnet_id`\" pulumi-lang-yaml=\"`subnetId`\" pulumi-lang-java=\"`subnetId`\">`subnet_id`</span> is specified. Changing this will create a new resource.\n","type":"string"},"name":{"description":"The name of a protected instance.\n","type":"string"},"priorityStation":{"description":"Specifies the current production site AZ of the protection group containing the protected instance.\n","type":"string"},"sdrsProtectedInstanceV1Id":{"description":"ID of the protected instance.\n","type":"string"},"serverId":{"description":"Specifies the ID of the protected ECS instance. Changing this will create a new resource.\n\n> When the API is successfully invoked, the disaster recovery instance will be automatically created.\n","type":"string"},"subnetId":{"description":"Specifies the network ID of the subnet. Changing this will create a new resource.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags key/value pairs to associate with the instance.\n","type":"object"},"targetId":{"description":"Specifies the DR site server ID.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FSdrsProtectedInstanceV1Timeouts:SdrsProtectedInstanceV1Timeouts"},"updatedAt":{"description":"Specifies the time when a protected instance was updated.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/sdrsProtectiongroupV1:SdrsProtectiongroupV1":{"description":"Up-to-date reference of API arguments for SDRS protection group you can get at\n[documentation portal](https://docs.otc.t-systems.com/storage-disaster-recovery-service/api-ref/sdrs_apis/protection_group)\n\nManages a SDRS protection group resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst dom1 = opentelekomcloud.getSdrsDomainV1({});\nconst group1 = new opentelekomcloud.SdrsProtectiongroupV1(\"group_1\", {\n    name: \"group_1\",\n    description: \"test description\",\n    sourceAvailabilityZone: \"eu-de-01\",\n    targetAvailabilityZone: \"eu-de-02\",\n    domainId: dom1.then(dom1 => dom1.id),\n    sourceVpcId: vpcId,\n    drType: \"migration\",\n    enable: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ndom1 = opentelekomcloud.get_sdrs_domain_v1()\ngroup1 = opentelekomcloud.SdrsProtectiongroupV1(\"group_1\",\n    name=\"group_1\",\n    description=\"test description\",\n    source_availability_zone=\"eu-de-01\",\n    target_availability_zone=\"eu-de-02\",\n    domain_id=dom1.id,\n    source_vpc_id=vpc_id,\n    dr_type=\"migration\",\n    enable=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var dom1 = Opentelekomcloud.GetSdrsDomainV1.Invoke();\n\n    var group1 = new Opentelekomcloud.SdrsProtectiongroupV1(\"group_1\", new()\n    {\n        Name = \"group_1\",\n        Description = \"test description\",\n        SourceAvailabilityZone = \"eu-de-01\",\n        TargetAvailabilityZone = \"eu-de-02\",\n        DomainId = dom1.Apply(getSdrsDomainV1Result => getSdrsDomainV1Result.Id),\n        SourceVpcId = vpcId,\n        DrType = \"migration\",\n        Enable = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdom1, err := opentelekomcloud.GetSdrsDomainV1(ctx, &opentelekomcloud.GetSdrsDomainV1Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewSdrsProtectiongroupV1(ctx, \"group_1\", &opentelekomcloud.SdrsProtectiongroupV1Args{\n\t\t\tName:                   pulumi.String(\"group_1\"),\n\t\t\tDescription:            pulumi.String(\"test description\"),\n\t\t\tSourceAvailabilityZone: pulumi.String(\"eu-de-01\"),\n\t\t\tTargetAvailabilityZone: pulumi.String(\"eu-de-02\"),\n\t\t\tDomainId:               pulumi.String(dom1.Id),\n\t\t\tSourceVpcId:            pulumi.Any(vpcId),\n\t\t\tDrType:                 pulumi.String(\"migration\"),\n\t\t\tEnable:                 pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetSdrsDomainV1Args;\nimport com.pulumi.opentelekomcloud.SdrsProtectiongroupV1;\nimport com.pulumi.opentelekomcloud.SdrsProtectiongroupV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var dom1 = OpentelekomcloudFunctions.getSdrsDomainV1(GetSdrsDomainV1Args.builder()\n            .build());\n\n        var group1 = new SdrsProtectiongroupV1(\"group1\", SdrsProtectiongroupV1Args.builder()\n            .name(\"group_1\")\n            .description(\"test description\")\n            .sourceAvailabilityZone(\"eu-de-01\")\n            .targetAvailabilityZone(\"eu-de-02\")\n            .domainId(dom1.id())\n            .sourceVpcId(vpcId)\n            .drType(\"migration\")\n            .enable(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  group1:\n    type: opentelekomcloud:SdrsProtectiongroupV1\n    name: group_1\n    properties:\n      name: group_1\n      description: test description\n      sourceAvailabilityZone: eu-de-01\n      targetAvailabilityZone: eu-de-02\n      domainId: ${dom1.id}\n      sourceVpcId: ${vpcId}\n      drType: migration\n      enable: true\nvariables:\n  dom1:\n    fn::invoke:\n      function: opentelekomcloud:getSdrsDomainV1\n      arguments: {}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nProtection groups can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import opentelekomcloud:index/sdrsProtectiongroupV1:SdrsProtectiongroupV1 group_1 7117d38e-4c8f-4624-a505-bd96b97d024c\n```\n\n","inputProperties":{"description":{"description":"The description of a protection group. Changing this creates a new group.\n","type":"string"},"domainId":{"description":"Specifies the ID of an ``active-active domain``. Changing this creates a new group.\nAn ``active-active domain`` id can be extracted from ``data/opentelekomcloud_sdrs_domain_v1`` and shouldn't be confused\nwith tenant `<span pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\">`domain`</span>`.\n","type":"string"},"drType":{"description":"Specifies the deployment model. The default value is migration indicating migration within a VPC.\nChanging this creates a new group.\n","type":"string"},"enable":{"description":"Enables or disables the Protection group.\n","type":"boolean"},"name":{"description":"The name of a protection group.\n","type":"string"},"sdrsProtectiongroupV1Id":{"description":"(String) ID of the protection group.\n","type":"string"},"sourceAvailabilityZone":{"description":"Specifies the source AZ of a protection group. Changing this creates a new group.\n","type":"string"},"sourceVpcId":{"description":"Specifies the ID of the source VPC. Changing this creates a new group.\n","type":"string"},"targetAvailabilityZone":{"description":"Specifies the target AZ of a protection group. Changing this creates a new group.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FSdrsProtectiongroupV1Timeouts:SdrsProtectiongroupV1Timeouts"}},"properties":{"createdAt":{"description":"(String) Time of creation of the protection group.\n","type":"string"},"description":{"description":"The description of a protection group. Changing this creates a new group.\n","type":"string"},"domainId":{"description":"Specifies the ID of an ``active-active domain``. Changing this creates a new group.\nAn ``active-active domain`` id can be extracted from ``data/opentelekomcloud_sdrs_domain_v1`` and shouldn't be confused\nwith tenant `<span pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\">`domain`</span>`.\n","type":"string"},"drType":{"description":"Specifies the deployment model. The default value is migration indicating migration within a VPC.\nChanging this creates a new group.\n","type":"string"},"enable":{"description":"Enables or disables the Protection group.\n","type":"boolean"},"name":{"description":"The name of a protection group.\n","type":"string"},"sdrsProtectiongroupV1Id":{"description":"(String) ID of the protection group.\n","type":"string"},"sourceAvailabilityZone":{"description":"Specifies the source AZ of a protection group. Changing this creates a new group.\n","type":"string"},"sourceVpcId":{"description":"Specifies the ID of the source VPC. Changing this creates a new group.\n","type":"string"},"targetAvailabilityZone":{"description":"Specifies the target AZ of a protection group. Changing this creates a new group.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FSdrsProtectiongroupV1Timeouts:SdrsProtectiongroupV1Timeouts"},"updatedAt":{"description":"(String) Time of last update of the protection group.\n","type":"string"}},"required":["createdAt","domainId","name","sdrsProtectiongroupV1Id","sourceAvailabilityZone","sourceVpcId","targetAvailabilityZone","updatedAt"],"requiredInputs":["domainId","sourceAvailabilityZone","sourceVpcId","targetAvailabilityZone"],"stateInputs":{"description":"Input properties used for looking up and filtering SdrsProtectiongroupV1 resources.\n","properties":{"createdAt":{"description":"(String) Time of creation of the protection group.\n","type":"string"},"description":{"description":"The description of a protection group. Changing this creates a new group.\n","type":"string"},"domainId":{"description":"Specifies the ID of an ``active-active domain``. Changing this creates a new group.\nAn ``active-active domain`` id can be extracted from ``data/opentelekomcloud_sdrs_domain_v1`` and shouldn't be confused\nwith tenant `<span pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\">`domain`</span>`.\n","type":"string"},"drType":{"description":"Specifies the deployment model. The default value is migration indicating migration within a VPC.\nChanging this creates a new group.\n","type":"string"},"enable":{"description":"Enables or disables the Protection group.\n","type":"boolean"},"name":{"description":"The name of a protection group.\n","type":"string"},"sdrsProtectiongroupV1Id":{"description":"(String) ID of the protection group.\n","type":"string"},"sourceAvailabilityZone":{"description":"Specifies the source AZ of a protection group. Changing this creates a new group.\n","type":"string"},"sourceVpcId":{"description":"Specifies the ID of the source VPC. Changing this creates a new group.\n","type":"string"},"targetAvailabilityZone":{"description":"Specifies the target AZ of a protection group. Changing this creates a new group.\n","type":"string"},"timeouts":{"$ref":"#/types/opentelekomcloud:index%2FSdrsProtectiongroupV1Timeouts:SdrsProtectiongroupV1Timeouts"},"updatedAt":{"description":"(String) Time of last update of the protection group.\n","type":"string"}},"type":"object"},"type":"object"},"opentelekomcloud:index/sdrsReplicationAttachV1:SdrsReplicationAttachV1":{"description":"Up-to-date reference of API arguments for SDRS replication pair attachment you can get at\n[documentation portal](https://docs.otc.t-systems.com/storage-disaster-recovery-service/api-ref/sdrs_apis/protected_instance/index.html)\n\nManages a SDRS replication pair attachment resource within OpenTelekomCloud.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opentelekomcloud from \"@pulumi/opentelekomcloud\";\n\nconst domain1 = opentelekomcloud.getSdrsDomainV1({});\nconst group1 = new opentelekomcloud.SdrsProtectiongroupV1(\"group_1\", {\n    name: \"group_1\",\n    sourceAvailabilityZone: \"eu-de-02\",\n    targetAvailabilityZone: \"eu-de-01\",\n    domainId: domain1.then(domain1 => domain1.id),\n    sourceVpcId: vpcId,\n    drType: \"migration\",\n});\nconst instance1 = new opentelekomcloud.EcsInstanceV1(\"instance_1\", {\n    name: \"server_1\",\n    imageId: imageId,\n    flavor: \"s3.medium.1\",\n    vpcId: vpcId,\n    nics: [{\n        networkId: networkId,\n    }],\n    availabilityZone: \"eu-de-02\",\n});\nconst instance1SdrsProtectedInstanceV1 = new opentelekomcloud.SdrsProtectedInstanceV1(\"instance_1\", {\n    name: \"instance_create\",\n    groupId: group1.sdrsProtectiongroupV1Id,\n    serverId: instance1.ecsInstanceV1Id,\n    deleteTargetServer: true,\n});\nconst volume1 = new opentelekomcloud.EvsVolumeV3(\"volume_1\", {\n    name: \"volume_1\",\n    description: \"first test volume\",\n    availabilityZone: \"eu-de-02\",\n    volumeType: \"SATA\",\n    size: 12,\n});\nconst pair1 = new opentelekomcloud.SdrsReplicationPairV1(\"pair_1\", {\n    name: \"replication_1\",\n    groupId: group1.sdrsProtectiongroupV1Id,\n    volumeId: volume1.evsVolumeV3Id,\n    deleteTargetVolume: true,\n});\nconst attach1 = new opentelekomcloud.SdrsReplicationAttachV1(\"attach_1\", {\n    instanceId: instance1SdrsProtectedInstanceV1.sdrsProtectedInstanceV1Id,\n    replicationId: pair1.sdrsReplicationPairV1Id,\n    device: \"/dev/vdb\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opentelekomcloud as opentelekomcloud\n\ndomain1 = opentelekomcloud.get_sdrs_domain_v1()\ngroup1 = opentelekomcloud.SdrsProtectiongroupV1(\"group_1\",\n    name=\"group_1\",\n    source_availability_zone=\"eu-de-02\",\n    target_availability_zone=\"eu-de-01\",\n    domain_id=domain1.id,\n    source_vpc_id=vpc_id,\n    dr_type=\"migration\")\ninstance1 = opentelekomcloud.EcsInstanceV1(\"instance_1\",\n    name=\"server_1\",\n    image_id=image_id,\n    flavor=\"s3.medium.1\",\n    vpc_id=vpc_id,\n    nics=[{\n        \"network_id\": network_id,\n    }],\n    availability_zone=\"eu-de-02\")\ninstance1_sdrs_protected_instance_v1 = opentelekomcloud.SdrsProtectedInstanceV1(\"instance_1\",\n    name=\"instance_create\",\n    group_id=group1.sdrs_protectiongroup_v1_id,\n    server_id=instance1.ecs_instance_v1_id,\n    delete_target_server=True)\nvolume1 = opentelekomcloud.EvsVolumeV3(\"volume_1\",\n    name=\"volume_1\",\n    description=\"first test volume\",\n    availability_zone=\"eu-de-02\",\n    volume_type=\"SATA\",\n    size=12)\npair1 = opentelekomcloud.SdrsReplicationPairV1(\"pair_1\",\n    name=\"replication_1\",\n    group_id=group1.sdrs_protectiongroup_v1_id,\n    volume_id=volume1.evs_volume_v3_id,\n    delete_target_volume=True)\nattach1 = opentelekomcloud.SdrsReplicationAttachV1(\"attach_1\",\n    instance_id=instance1_sdrs_protected_instance_v1.sdrs_protected_instance_v1_id,\n    replication_id=pair1.sdrs_replication_pair_v1_id,\n    device=\"/dev/vdb\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opentelekomcloud = Pulumi.Opentelekomcloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var domain1 = Opentelekomcloud.GetSdrsDomainV1.Invoke();\n\n    var group1 = new Opentelekomcloud.SdrsProtectiongroupV1(\"group_1\", new()\n    {\n        Name = \"group_1\",\n        SourceAvailabilityZone = \"eu-de-02\",\n        TargetAvailabilityZone = \"eu-de-01\",\n        DomainId = domain1.Apply(getSdrsDomainV1Result => getSdrsDomainV1Result.Id),\n        SourceVpcId = vpcId,\n        DrType = \"migration\",\n    });\n\n    var instance1 = new Opentelekomcloud.EcsInstanceV1(\"instance_1\", new()\n    {\n        Name = \"server_1\",\n        ImageId = imageId,\n        Flavor = \"s3.medium.1\",\n        VpcId = vpcId,\n        Nics = new[]\n        {\n            new Opentelekomcloud.Inputs.EcsInstanceV1NicArgs\n            {\n                NetworkId = networkId,\n            },\n        },\n        AvailabilityZone = \"eu-de-02\",\n    });\n\n    var instance1SdrsProtectedInstanceV1 = new Opentelekomcloud.SdrsProtectedInstanceV1(\"instance_1\", new()\n    {\n        Name = \"instance_create\",\n        GroupId = group1.SdrsProtectiongroupV1Id,\n        ServerId = instance1.EcsInstanceV1Id,\n        DeleteTargetServer = true,\n    });\n\n    var volume1 = new Opentelekomcloud.EvsVolumeV3(\"volume_1\", new()\n    {\n        Name = \"volume_1\",\n        Description = \"first test volume\",\n        AvailabilityZone = \"eu-de-02\",\n        VolumeType = \"SATA\",\n        Size = 12,\n    });\n\n    var pair1 = new Opentelekomcloud.SdrsReplicationPairV1(\"pair_1\", new()\n    {\n        Name = \"replication_1\",\n        GroupId = group1.SdrsProtectiongroupV1Id,\n        VolumeId = volume1.EvsVolumeV3Id,\n        DeleteTargetVolume = true,\n    });\n\n    var attach1 = new Opentelekomcloud.SdrsReplicationAttachV1(\"attach_1\", new()\n    {\n        InstanceId = instance1SdrsProtectedInstanceV1.SdrsProtectedInstanceV1Id,\n        ReplicationId = pair1.SdrsReplicationPairV1Id,\n        Device = \"/dev/vdb\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opentelekomcloud/opentelekomcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdomain1, err := opentelekomcloud.GetSdrsDomainV1(ctx, &opentelekomcloud.GetSdrsDomainV1Args{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgroup1, err := opentelekomcloud.NewSdrsProtectiongroupV1(ctx, \"group_1\", &opentelekomcloud.SdrsProtectiongroupV1Args{\n\t\t\tName:                   pulumi.String(\"group_1\"),\n\t\t\tSourceAvailabilityZone: pulumi.String(\"eu-de-02\"),\n\t\t\tTargetAvailabilityZone: pulumi.String(\"eu-de-01\"),\n\t\t\tDomainId:               pulumi.String(domain1.Id),\n\t\t\tSourceVpcId:            pulumi.Any(vpcId),\n\t\t\tDrType:                 pulumi.String(\"migration\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance1, err := opentelekomcloud.NewEcsInstanceV1(ctx, \"instance_1\", &opentelekomcloud.EcsInstanceV1Args{\n\t\t\tName:    pulumi.String(\"server_1\"),\n\t\t\tImageId: pulumi.Any(imageId),\n\t\t\tFlavor:  pulumi.String(\"s3.medium.1\"),\n\t\t\tVpcId:   pulumi.Any(vpcId),\n\t\t\tNics: opentelekomcloud.EcsInstanceV1NicArray{\n\t\t\t\t&opentelekomcloud.EcsInstanceV1NicArgs{\n\t\t\t\t\tNetworkId: pulumi.Any(networkId),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAvailabilityZone: pulumi.String(\"eu-de-02\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance1SdrsProtectedInstanceV1, err := opentelekomcloud.NewSdrsProtectedInstanceV1(ctx, \"instance_1\", &opentelekomcloud.SdrsProtectedInstanceV1Args{\n\t\t\tName:               pulumi.String(\"instance_create\"),\n\t\t\tGroupId:            group1.SdrsProtectiongroupV1Id,\n\t\t\tServerId:           instance1.EcsInstanceV1Id,\n\t\t\tDeleteTargetServer: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvolume1, err := opentelekomcloud.NewEvsVolumeV3(ctx, \"volume_1\", &opentelekomcloud.EvsVolumeV3Args{\n\t\t\tName:             pulumi.String(\"volume_1\"),\n\t\t\tDescription:      pulumi.String(\"first test volume\"),\n\t\t\tAvailabilityZone: pulumi.String(\"eu-de-02\"),\n\t\t\tVolumeType:       pulumi.String(\"SATA\"),\n\t\t\tSize:             pulumi.Float64(12),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpair1, err := opentelekomcloud.NewSdrsReplicationPairV1(ctx, \"pair_1\", &opentelekomcloud.SdrsReplicationPairV1Args{\n\t\t\tName:               pulumi.String(\"replication_1\"),\n\t\t\tGroupId:            group1.SdrsProtectiongroupV1Id,\n\t\t\tVolumeId:           volume1.EvsVolumeV3Id,\n\t\t\tDeleteTargetVolume: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opentelekomcloud.NewSdrsReplicationAttachV1(ctx, \"attach_1\", &opentelekomcloud.SdrsReplicationAttachV1Args{\n\t\t\tInstanceId:    instance1SdrsProtectedInstanceV1.SdrsProtectedInstanceV1Id,\n\t\t\tReplicationId: pair1.SdrsReplicationPairV1Id,\n\t\t\tDevice:        pulumi.String(\"/dev/vdb\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.opentelekomcloud.OpentelekomcloudFunctions;\nimport com.pulumi.opentelekomcloud.inputs.GetSdrsDomainV1Args;\nimport com.pulumi.opentelekomcloud.SdrsProtectiongroupV1;\nimport com.pulumi.opentelekomcloud.SdrsProtectiongroupV1Args;\nimport com.pulumi.opentelekomcloud.EcsInstanceV1;\nimport com.pulumi.opentelekomcloud.EcsInstanceV1Args;\nimport com.pulumi.opentelekomcloud.inputs.EcsInstanceV1NicArgs;\nimport com.pulumi.opentelekomcloud.SdrsProtectedInstanceV1;\nimport com.pulumi.opentelekomcloud.SdrsProtectedInstanceV1Args;\nimport com.pulumi.opentelekomcloud.EvsVolumeV3;\nimport com.pulumi.open